2

多くのテキスト コンテンツを含む UIWebView があります。UIWebView が移動するたびにその場所を取得できるようにする必要があります。ポイントを取得するためにこのコードを使用しています:

pageYOffset = [[webView stringByEvaluatingJavaScriptFromString:@"window.pageYOffset"] intValue];

UIWebViewの位置が移動するたびに、またはスクロールがあるたびに、この変数の値が更新されるようにする必要があります。UIWebView がスクロールするたびにメソッドを呼び出すことは可能ですか?

4

4 に答える 4

6

以下のようにUIWebViewを拡張する必要があります

@implementation UIWebView(CustomScroll)
- (void) scrollViewDidScroll:(UIScrollView *)scrollView{
    [self.delegate scrollViewDidScroll: scrollView];
}
@end

次のように、コントローラーにscrollViewDidScrollを実装します。

- (void) scrollViewDidScroll:(UIScrollView *)scrollView{
    NSLog("webview scrolled");
}

コントローラをUIWebViewのデリゲートプロパティに設定することを忘れないでください。

于 2010-10-30T19:11:28.927 に答える
2

ヘッダーにVCがUIScrollViewDelegateとしてリストされている場合は、この -(void)scrollViewDidScroll:(UIScrollView *)scrollViewメソッドを使用して、いつスクロールするかを確認できると思います。

于 2010-10-29T03:11:44.587 に答える
1

これは正しくありません。使用する場合:

@implementation UIWebView(CustomScroll)
- (void) scrollViewDidScroll:(UIScrollView *)scrollView{
    [self.delegate scrollViewDidScroll: scrollView];
}
@end

iOS7 などでページにデータを入力しようとするとフォーカスが失われる

UIWevView のカスタム クラスを実装し、scrollViewDidScroll を上書きする必要があります。

- (void) scrollViewDidScroll:(UIScrollView *)scrollView{
[super scrollViewDidScroll:scrollView];
[((id<UIScrollViewDelegate>)self.delegate) scrollViewDidScroll:scrollView];
}
于 2015-01-20T09:34:54.797 に答える
0

ユーザーがスクロールするときにWebビューをロードし続けることが要件である場合は、コードを貼り付ける必要があります

- (void)webViewDidStartLoad:(UIWebView *)webView
于 2010-10-29T07:41:16.167 に答える