iOS WKWebView获取h5页面的实际高度

#pragma mark - observer

- (void)addWebViewObserver {
    [self.wkWebView.scrollView addObserver:self forKeyPath:@"contentSize" options:NSKeyValueObservingOptionNew context:nil];
}

- (void)removeWebViewObserver {
    [self.wkWebView.scrollView removeObserver:self forKeyPath:@"contentSize"];
}

#pragma mark ------ < KVO > ------

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
    /**  防止滚动一直刷新,出现闪屏  */
    if ([keyPath isEqualToString:@"contentSize"]) {
        CGRect webFrame = self.wkWebView.frame;
        //webFrame.size.height为h5页面的实际高度
        webFrame.size.height = self.wkWebView.scrollView.contentSize.height;
        self.wkWebView.frame = webFrame;
    }
}

- (void)dealloc
{
    [self removeWebViewObserver];
}

用法:在需要监听的地方调用 addWebViewObserver 方法

 可以根据自己的需求灵活运用该方法

 

你可能感兴趣的:(IOS)