webview监听contentOffset滚动事件

2017-06-06  本文已影响135人  蜗牛锅

之前做了个页面是这样做的:

UIWebView 嵌入在 UIScrollerView上的,UIScrollerView是放在self.view上面的。
按这种UIWebView 嵌入在 UIScrollerView上的,然后执行代理方法,发现UIScrollerView的代理方法没有执行。

后来发现UIWebView 是继承UIview的,但是遵守<NSCoding, UIScrollViewDelegate> 代理
提供的API接口的时候发现,UIWebView 有一个UIScrollerView的属性。

然后自己就设置下

webView.scrollerView.delegate = self。// 这个很重要啊

也就是设置了UIWebView的滚动代理方法,然后再执行,代理方法走通了。

-(UIWebView *)showWebView
{
    if (!_showWebView) {
        _showWebView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT)];
        _showWebView.delegate = self;
        _showWebView.scrollView.delegate = self; 
    }
    return _showWebView;
}

#pragma mark - UIScrollViewDelegate 代理方法
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{    
    NSLog(@"%f",scrollView.contentOffset.y);
//scrollView.contentOffset 会告诉你offset
        
}
下面这行代码是获取web view的实际高度

NSInteger htmlheight = [[self.showWebView stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight"] integerValue];

亲测有用
上一篇 下一篇

猜你喜欢

热点阅读