问题
我们都用过UIwebView或者WKWebView来显示html的文本,但是通常我们一般都会计算的内容的实际高度,而计算内容的高度
有很多种
1、加载完成的webview的回调,中利用js获取内容的高度,具体js自行百度
- (void)webViewDidFinishLoad:(UIWebView *)webView
2.利用KVO监听webview中scrollview的contentSize的变化
//添加监听
[webview.scrollView addObserver:self forKeyPath:@"contentSize" options:NSKeyValueObservingOptionNew context:nil];
//contentSIze变化执行的方法
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context{
if ([keyPath isEqualToString:@"contentSize"]) {
CGSize size = _webview.scrollView.contentSize;
_cellWebhight = size.height;
[self reloadRow:0 inSection:0 withRowAnimation:UITableViewRowAnimationNone];
}
}
我们今天遇到的是我设置了webview的高度是0.并且采用了第二种方法KVO来监听,问题出现了,我的这个observeValueForKeyPath方法一直没有回调
原因
原因太简单了 我设置了webview的高度为0了,contentsize监听方法不回调了,但是不知道什么原因,期待哪位老铁解释
解决方案
设置webview的高度为1就行但是不嗯呢该小于等于0的任意数字