我有一个包含大量文本内容的UIWebView。我需要能够在每次移动时获取UIWebView的位置。我正在使用此代码来说明问题:
pageYOffset = [[webView stringByEvaluatingJavaScriptFromString:@"window.pageYOffset"] intValue];
现在我只需要这样做,以便每次UIWebView位置移动时更新此变量值,或者有任何滚动。是否可以在UIWebView滚动时调用方法?
答案 0 :(得分:6)
您应该扩展UIWebView,如下所示
@implementation UIWebView(CustomScroll)
- (void) scrollViewDidScroll:(UIScrollView *)scrollView{
[self.delegate scrollViewDidScroll: scrollView];
}
@end
并在控制器上实现scrollViewDidScroll,如:
- (void) scrollViewDidScroll:(UIScrollView *)scrollView{
NSLog("webview scrolled");
}
并且不要忘记将控制器设置为UIWebView的委托属性。
答案 1 :(得分:2)
我相信如果你的标题将你的VC列为UIScrollViewDelegate,你可以使用
-(void)scrollViewDidScroll:(UIScrollView *)scrollView
方法找出滚动的时间。
答案 2 :(得分: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];
}
答案 3 :(得分:0)
如果您的要求是在用户滚动时继续加载webview,那么您应该将代码粘贴到
中- (void)webViewDidStartLoad:(UIWebView *)webView