iOS: Ermitteln Sie, ob UIWebView den oberen oder unteren Rand erreicht

7

Wie kann ich erkennen, dass UIWebView den oberen oder unteren Rand erreicht? Weil ich eine Aktion auslösen muss, wenn ich den Boden erreiche.

So ist das machbar?

    
Mohamed Emad Hegab 02.03.2012, 14:55
quelle

5 Antworten

21

Zunächst sollten Sie Ihre UIWebView nicht in eine UIScrollView einfügen, wie in der UIWebView -Dokumentation erwähnt.

  

Wichtig: Sie sollten UIWebView- oder UITableView-Objekte nicht in UIScrollView-Objekte einbetten. Wenn Sie dies tun, kann unerwartetes Verhalten auftreten, da Berührungsereignisse für die zwei Objekte verwechselt und falsch behandelt werden können.

Stattdessen können Sie auf UIScrollView über die UIWebView -Eigenschaften zugreifen. Ihr View-Controller kann UIScrollViewDelegate implementieren.

%Vor%

Dann können Sie den UIScrollView:

%Vor%

Dann erkenne endlich das Erreichen von Oben und Unten:

%Vor%

Voila, Sie können erkennen, wenn oben und unten erreicht werden.

    
gfrigon 05.04.2013 19:19
quelle
2

Wenn Sie iOS 5 als Ziel verwenden, verfügt UIWebView über eine schreibgeschützte Eigenschaft scrollView , mit der Sie auf das zugrunde liegende UIScrollView zugreifen können.

Von dort können Sie in die delect-Methode scrollViewDidScroll: der scrollView einhaken, um Informationen zu Scroll-Ereignissen zu erhalten.

    
gregheo 02.03.2012 15:00
quelle
2

Sie können dies ausprobieren -

%Vor%

Was hier gemacht wird, ist jedes Mal, wenn der Benutzer scroll WebView, berechnen Sie die% scrolled & amp; Wenn das% scrolling zum Ende kommt (sagen Sie irgendetwas & gt; 90%), tun Sie, was immer Sie vorhaben zu tun.

    
Srikar Appalaraju 02.03.2012 15:03
quelle
0

Sie könnten UIWebView in ein UIScrollView einfügen (das Bouncen ist deaktiviert, so dass das Bounce-Verhalten der Ansichten nicht in Konflikt gerät) und wenn UIWebView nach unten scrollt, übernimmt das obige UIScrollView das Scrollen und Sie kann auf seine Scroll-Ereignisse hören.

Scratch das.

Scheint, dass es nicht so einfach ist.

Sie können UIScrollView unter den Unteransichten von UIWebView finden und auf seine Scroll-Delegate-Methoden tippen.

%Vor%

Wenn UIWebView den Web-Inhalt lädt, sollte UIScrollView seine contentSize-Eigenschaft ändern. Sie können damit bestimmen, ob Sie bereits unten oder oben sind oder nicht.

    
macbirdie 02.03.2012 15:47
quelle
0

Sie könnten KVO verwenden, um Änderungen in der Eigenschaft contentOffset Ihrer UIWebView -Instanz zu erkennen.

Warnung: Seien Sie vorsichtig, da sich diese Eigenschaft beim Scrollen sehr oft ändert und die Ereignisse im folgenden Beispiel sehr häufig auftreten. Implementieren oder rufen Sie keine kostenintensive Funktion bei jeder contentOffset-Änderung auf!

Hier ist ein Codebeispiel, um es in einer UIView Unterklasse zu machen, die ein UIWebView enthält:

%Vor%

Wie von Apple in der UIWebview-Dokumentation dokumentiert, sollten Sie es vermeiden, Ihre UIWebview-Instanz in eine UIScrollView zu platzieren, um das Ende / Beginn des Scrollens zu erkennen.

    
dulgan 16.06.2016 09:39
quelle

Tags und Links