iOS : erkennen UIWebView erreichen der oberen oder unteren
Woran kann ich erkennen, UIWebView erreichen der oberen oder unteren?
Da brauche ich, um eine Aktion auszulösen, wenn ich den Boden erreichen.
Ist das also machbar?
- Sie sollten erwägen, die Genehmigung, eine Antwort und wenn es einer ist, der für Sie arbeitet
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erste von allen, sollten Sie nicht setzen Sie Ihre
UIWebView
innerhalb einerUIScrollView
als wissen in dieUIWebView
Dokumentation.Stattdessen können Sie den Zugriff auf die
UIScrollView
durch dieUIWebView
Eigenschaften. Ihr view-controller implementieren können, dieUIScrollViewDelegate
.Dann können Sie Haken an dem UIScrollView:
Dann endlich erkennen, die oben und unten erreicht wird:
Voila, Sie können erkennen, Wann oben und unten erreicht werden.
contentOffset
Vermögen des KindesscrollView
statt. Es muss nicht sicher sein, ändern Sie die Delegaten-Eigenschaft desUIScrollView
seitUIWebView
kann es intern.Wenn Sie eine Ausrichtung auf iOS 5
UIWebView
hat ein nur-lese -scrollView
Eigenschaft ermöglicht den Zugriff auf die zugrunde liegendenUIScrollView
.Dort können Sie den Haken in der scrollView ist
scrollViewDidScroll:
delegate-Methode erhalten Sie Informationen über die scroll-Ereignisse.Können Sie ihm eine Chance geben -
Was wird getan, hier ist jedesmal, wenn der Benutzer scrollt webView, die Berechnung der % gescrollt & wenn die % gescrollt kommt bis zum Ende (nichts sagen > 90%) tun, was Sie zu tun geplant.
Könnte Sie UIWebView innerhalb eines UIScrollView (das hat bouncing deaktiviert, so das bounce-Verhalten der Ansichten nicht im Widerspruch in irgendeiner Weise) und dann, wenn UIWebView scrollt nach unten, das UIScrollView oben übernehmen scrollen und Sie können hören Sie Ihre scrolling-events.
Scratch, dass.
Scheint, dass es nicht so einfach, nachdem alle.
Finden Sie die UIScrollView unter UIWebView ist Untersichten und Tippen Sie in der scroll-delegate-Methoden.
Als die UIWebView lädt die web-Inhalte, Ihrer UIScrollView ändern sollte seinen contentSize Eigenschaft. Sie können es benutzen, um zu bestimmen, ob Sie am unteren oder am oberen Rand schon oder nicht.
Könnten Sie KVO zu erkennen, jede änderung in der
contentOffset
Eigentum IhrerUIWebView
Instanz.Warnung : Seien Sie vorsichtig, da diese Eigenschaft verändert sich sehr oft beim scrollen, und die Ereignisse in dem folgenden Beispiel wird pop wirklich Häufig. Nicht implementieren oder rufen hohe Kosten-Funktion an jedem contentOffset ändern !
Hier ist ein code Beispiel für das tun es in einer
UIView
Unterklasse mit einerUIWebView
:Dokumentiert, wie von Apple im UIWebview Dokumentation, sollten Sie vermeiden, platzieren Sie Ihre UIWebview-Instanz in einem UIScrollView zu erkennen, die Ende/Anfang scrollen.
Wenn Sie Wkwebview:
Ich bin etwas spät dran, ich implementiert delegieren von wkwebview zu überprüfen scrollview erreicht oben oder unten.Ich verwendet, um zu Lesen javascript-code durch evaluateJavaScript Funktion. Vor der Verwendung legen Sie scrollview-delegate of Ihre webview und implementieren scrollViewDidEndDragging delegieren Funktion UIScrollViewDelegate