Frage

Ich bin Codierung eine App, die viel wie Apples Weather.app funktioniert: Es gibt eine UIPageControl am Boden und ein UIScrollView in der Mitte des Bildschirms. In meinem Code implementierte ich die - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView Methode, um herauszufinden, wenn der Benutzer Umzug in eine neue Seite tat. Wenn sie auf eine neue Seite zu verschieben, lade ich die Daten der benachbarten Seiten als weitere Seite vermittelnde schneller zu machen. (In einem von Apple Beispielen wird die - (void)scrollViewDidScroll:(UIScrollView *)sender verwendet, aber das bewirkt, dass mein App in Kürze hängen, wenn eine neue Seite geladen wird, so dass es nicht geeignet ist.) Dieser Code funktioniert sehr gut.

Ich verwende scrollRectToVisible:: programmatisch innerhalb des Scroll scrollen, wenn der Benutzer die UIPageControl klickt. Das Problem ist, dass der scrollRectToVisible: nicht eine Benachrichtigung an die UIScrollViewDelegate nicht posten, wenn es Scrollen getan -. So den Code verantwortlich für das Laden benachbarte Seiten nie die aufgerufen werden, wenn die UIPageControl mit

Gibt es eine Möglichkeit die UIScrollView benachrichtigen seine Delegierten zu machen, wenn es durch die scrollRectToVisible: Methode aufgerufen wird? Oder muss ich zu verwenden Threads, um meine Anwendung zu verhindern, dass das Einfrieren?

Danke!

- Ry

War es hilfreich?

Lösung

Wie wäre es? -scrollViewDidEndScrollingAnimation: ?

Wenn es nicht funktioniert, versuchen Sie, die UITextSelectionDidScroll Benachrichtigung zu hören. (Natürlich ist es nicht dokumentiert.)

Alternativ kann eine SDK-sichere Methode ist, die Zeit für die Animation genommen messen und eine verzögerte Benachrichtigung an der Aufrufstelle von -scrollRectToVisible: senden.

Andere Tipps

Sie können diese Delegatmethode hinzufügen:

- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView

Die Scroll-Ansicht ruft diese Methode am Ende seiner Ausführungen des UIScrollView und setContentOffset: animierte: und scrollRectToVisible: animiert. Methoden, aber nur, wenn Animationen werden gebeten,

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top