WKWebView果然是个坑爹的货,升级到iOS10后,发现原来在UITableviewCell中iOS8,iOS9显示正常的WKWebview到了iOS10只能显示一部分,研究发现这个是WK在rendering的时候出现了问题,需要滑动的时候重新刷新webview进行处理。直接贴代码:
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
if (!tempOffset || ABS(scrollView.contentOffset.y - tempOffset) > SCREEN_HEIGHT/2)
{
[self.h5Cell.webView setNeedsLayout];
tempOffset = scrollView.contentOffset.y;
}
}
上面的方法通过滚动距离来控制render,但是对于滚动区间条件之外的会同样出现显示问题,解决方案,对scrollview的drag事件进行捕获:
- (void)scrollViewDidEndDragging:(UIScrollView*)scrollView willDecelerate:(BOOL)decelerate;
{
if([UIDevicecurrentDevice].systemVersion.floatValue>=10) {
[self.h5Cell.webViewsetNeedsLayout];
}
}