获取webView总高度

2018-07-13  本文已影响0人  wg刚

我们要获取webView内容页的总高度,而因为可能网速,图片这些原因,他每次的contentsize是实时变化的,所以我们通过 KVO 监听 WKWebView 的 scrollView 的 contentSize,这样每当页面内容发生改变时,我们都能获取到最新的页面高度:

//注册监听
- (void)addObserverForWebViewContentSize{
    [self.webss.scrollView addObserver:self forKeyPath:@"contentSize" options:0 context:nil];
}

//移除监听
- (void)removeObserverForWebViewContentSize{
    [self.webss.scrollView removeObserver:self forKeyPath:@"contentSize"];
}

-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context{
    if ([keyPath isEqualToString:@"contentSize"]) {
        //获取新高度
        CGFloat newHeight = _wkwebview.scrollView.contentSize.height;
        //比较存储高度和新高度
        if (_webViewHeight<newHeight) {
            _webViewHeight = newHeight;
            //获取最新高度,然后做对应处理
            ......
        }
    }
}
PS:设置webview滚动属性为NO,这样通知的时候肯定会获取正确的高度

_wkwebview.scrollView.scrollEnabled = NO;

上一篇 下一篇

猜你喜欢

热点阅读