2013-03-12 12 views
7

Sto cercando di aggiungere lo UIRefreshControl al mio UIScrollView, ma il problema è che l'area è troppo piccola, quindi è quasi impossibile per l'utente raggiungere il livello richiesto.Cambiare il percorso necessario per UIRefreshControl per passare a UIControlEventValueChanged

Quindi esiste un modo per attivare lo stato di questo controllo o modificare la lunghezza del gesto di pull richiesto?

Lo so, questo controllo è nuovo e potrebbe non esserci un modo semplice per raggiungere questo obiettivo, ma forse qualcuno ha trovato un trucco?

+0

concetto simile: http://www.cocoacontrols.com/controls/pull-to-refresh-tableview – Mrunal

+0

@mrunal volevo solo noi soluzione integrata per la che –

+0

Quindi riferirsi a questo: http://www.techrepublic.com/blog/ios-app-builder/ios-6-best-practices-introducing-the-uirefreshcontrol/314 – Mrunal

risposta

7

trovato una soluzione: fare un delegato del vostro ScrollView e - (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate aggiornare il controllo ad un certo compensato

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate 
{ 
    if (scrollView.contentOffset.y < -70) { 
    [refreshControl beginRefreshing]; 
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{ 
     [self handleRefresh:refreshControl]; 
    }); 
    } 
} 

La spedizione è fatta per non ritardo l'interfaccia mentre ottenere informazioni dal server. Se quindi aggiornare qualcosa nella vostra interfaccia utente, utilizzare dispatch_async(dispatch_get_main_queue(), ^{//update UI code});

+0

Ciao, mi chiedo perché usare dispatch_sync qui ? –

+0

@XhackerLiu che asincrono –

Problemi correlati