2013-03-12 10 views
7

Próbuję dodać UIRefreshControl do mojego UIScrollView, ale problemem jest to, że jego obszar jest zbyt mały, więc prawie niemożliwe jest, aby użytkownik przeszedł na wymagany poziom.Zmień ścieżkę potrzebną do UIRefreshControl, aby przejść do UIControlEventValueChanged

Czy istnieje sposób wyzwolenia stanu tej kontroli lub zmiany długości wymaganego gestu pociągnięcia?

Wiem, że ta kontrola jest nowa i może nie być prostego sposobu osiągnięcia tego, ale może ktoś znalazł hack?

+0

Podobny pomysł: http://www.cocoacontrols.com/controls/pull-to-refresh-tableview – Mrunal

+0

@mrunal ja po prostu chciał nas wbudowana w rozwiązanie to –

+0

Odwołaj to: http://www.techrepublic.com/blog/ios-app-builder/ios-6-best-practices-introducing-the-uirefreshcontrol/314 – Mrunal

Odpowiedz

7

znalazł rozwiązanie: uczynić delegata swojego Scrollview aw - (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate odświeżyć kontroli na niektóre przesunięcie

- (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]; 
    }); 
    } 
} 

Dispatch jest dla nie tyle interfejsu podczas pobierania informacji z serwera. Jeśli następnie aktualizować coś w swoim interfejsie, należy dispatch_async(dispatch_get_main_queue(), ^{//update UI code});

+0

Cześć, zastanawiam się, po co używać dispatch_sync tutaj ? –

+0

@XhackerLiu to asynchroniczne –

Powiązane problemy