2013-03-12 7 views
7

Ich versuche, die UIRefreshControl zu meinem UIScrollView hinzuzufügen, aber das Problem ist, dass es Bereich ist zu klein, so dass es für den Benutzer fast unmöglich ist, auf das erforderliche Niveau zu ziehen.Ändern Sie den Pfad für UIRefreshControl zu UIControlEventValueChanged gehen

Gibt es eine Möglichkeit, den Status dieses Steuerelements auszulösen oder die Länge der erforderlichen Ziehgeste zu ändern?

Ich weiß, dass diese Kontrolle neu ist und es vielleicht keinen direkten Weg gibt, das zu erreichen, aber vielleicht hat jemand einen Hack gefunden?

+0

ähnliches Konzept: http://www.cocoacontrols.com/controls/pull-to-refresh-tableview – Mrunal

+0

@mrunal ich uns nur wollte integrierte Lösung für dass –

+0

Dann verweisen Sie dies: http://www.techrepublic.com/blog/ios-app-builder/ios-6-best-practices-in-troducing-the-uirefreshcontrol/314 – Mrunal

Antwort

7

eine Lösung gefunden: einen Vertreter Ihrer Scroll machen und in - (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate erfrischt die Steuerung bei einigen

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

Versand für nicht hinkt die Schnittstelle gemacht wird, während Informationen vom Server zu bekommen. Wenn Sie dann etwas in Ihrer Benutzeroberfläche aktualisieren, verwenden dispatch_async(dispatch_get_main_queue(), ^{//update UI code});

+0

Hallo, ich frage mich, warum verwenden Sie dispatch_sync hier ? –

+0

@XhackerLiu das asynchrone –