UIWebView的KVO監聽方法沒有執行原因

問題

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

以上僅供參考,歡迎其他建議
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章