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

如果您的要求是在用户滚动时继续加载 webview,那么您应该将代码粘贴到

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