前言
當時覺得這挺簡單的,無論是獲取WKWebView的ScrollView的內容高度還是調用JS,但是后面很容易出現網頁高度獲取不完的情況
解決思路
KVO監(jiān)聽scrollView.contentSize
實現
[self.webView addObserver:self forKeyPath:@"scrollView.contentSize" options:NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld context:@"DJWebKitContext"];
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context{
if([keyPath isEqualToString:@"scrollView.contentSize"])
{
CGFloat webViewContentHeight = self.webView.scrollView.contentSize.height;
if (webViewContentHeight != 50) {
CGRect frame = self.webView.frame;
frame.size.height = webViewContentHeight;
self.webView.frame = frame;
[self.webView sizeToFit];
self.height = self.webView.maxY + 10;
// 刷新自身高度
if (self.delegate && [self.delegate respondsToSelector:@selector(mouoDiaryDetailHeaderViewWebDidFinish)]) {
[self.delegate mouoDiaryDetailHeaderViewWebDidFinish];
}
}
}
}
- (void)dealloc{
[self.webView removeObserver:self forKeyPath:@"scrollView.contentSize" context:@"DJWebKitContext"];
}