9 Stimmen

ScrollOffset in UIWebView?

Ich habe eine wirklich harte Zeit, Delegierte und Objektvererbung zu verstehen (wenn ich dieses Wort verwenden darf) und ich denke, ich brauche eine einfache (oder so denke ich) Sache: fangen scrollViewDidScroll Ereignis in UIWebView und erhalten Offset (im Grunde nur zu wissen, wenn Scroll nicht auf oben/unten, so dass ich Navigation und Registerkartenleisten ausblenden könnte).

Gibt es eine Möglichkeit, wie ich das tun kann? Ich verwende bereits UIWebviewDelegate in meinem Viewcontroller zu "shouldStartLoadWithRequest". Vielleicht könnte ich irgendwie UIScrollViewDelegate auch für scrollViewDidScroll verwenden? Wenn ja, dann wie?

Ich habe wirklich Schwierigkeiten, Delegierte zu verstehen. Ich habe einige Artikel gelesen, aber in der Praxis schaffe ich es trotzdem nicht, sie zu verwenden.

Jede Hilfe oder Information wäre schön.

Vielen Dank im Voraus!

1voto

No Surprises Punkte 4771

Das ist eine gute Frage. UIWebView ist keine Unterklasse von UIScrollView, obwohl ich verstehen kann, warum man das denken könnte. Das bedeutet, dass die Verwendung der UIScrollViewDelegate-Methoden keine Option ist, um das zu tun, was Sie wollen, und das UIWebViewDelegate-Protokoll reagiert nicht auf diese Scroll-Ereignisart von Nachrichten. Ich glaube nicht, dass es eine einfache Möglichkeit gibt, Scrolling-Ereignisse in einer Webansicht zu erkennen.

1voto

Wombat Punkte 316

Ich habe die Delegate-Methode ermüdet und festgestellt, dass sie verhindert, dass die Ansicht scrollt, wenn die Tastatur angezeigt wird. Ich fand, dass durch Hinzufügen eines Beobachters Sie den aktuellen Delegaten nicht überschreiben und verhindern, dass Sie die Webview-Leistung auswirken.

for (UIView* subView in myAccountWebView.subviews) {
    if ([subView isKindOfClass:[UIScrollView class]]) 
    {
        NSLog(@"found scroll view");
        [((UIScrollView*)subView) addObserver:self forKeyPath:@"contentOffset" options:NSKeyValueObservingOptionNew context:nil];
    }
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X