問題
我們都用過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的任意數字