因為項目數據要求,加載的html數據量太大,用原始的UIWebView加載,導致內存暴漲————崩潰
改用WKWebView,但是加載的時候頁面的行高顯示的是正確的,但是里面的數據一直顯示不全;
? 1》 WKWebView放置的位置,在加載cell的時候,直接放在cell的contentView
2》? 設置觀察者
? ? ? ? [self.detailWebView.scrollView addObserver:self forKeyPath:@"contentSize" options:NSKeyValueObservingOptionNew context:nil];
3》在觀察方法中設置為WKWebView的frame
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary*)change context:(void *)context {
CGSize websize = [[change objectForKey:@"new"] CGSizeValue];
self.detailWebView.frame = CGRectMake(0, 0, ScreenWidth, websize.height);
[self.cellHeightArr replaceObjectAtIndex:1 withObject:@(websize.height)];
NSIndexPath*index=[NSIndexPath indexPathForRow:0 inSection:self.saveCellArrM.count-1];
[self.tableView reloadRowsAtIndexPaths:@[index] withRowAnimation:UITableViewRowAnimationNone];
}
?3》 每次值改變的時候,重新設置加載cell,設置cell的高度
?4》 結論:cell的行高是頁面內容的高度,可是在加載后,頁面中的數據有時能顯示完整,有時顯示不完整
解決辦法:
1》 在cell上加載一個scrollView,再將WKWebView加載到scrollView上,讓后在每次加載cell的時候,設置scrollView的高度為頁面的高度(最主要的就是不能將WKWebView直接放在cell上)
2》其它的設置不變
3》結論:哈哈哈,正常的加載顯示。