ps : 以下 WKWebView 我精簡(jiǎn)縮寫(xiě)為wk
WKWebView是蘋(píng)果在WWDC 2014上推出的新一代webView組件,用以替代UIKit中笨重難用,內(nèi)存泄漏的UIWebView.WKWebView擁有60fps滾動(dòng)刷新率,和safari相同的JavaScript引擎等優(yōu)勢(shì)。
簡(jiǎn)單的適配方法本文不再贅述
今天主要來(lái)說(shuō)說(shuō)適配wk過(guò)程中iOS11和iOS11以下的差異(如果你也遇到相同的情況)
場(chǎng)景需求:在tableView中嵌套webview webview需要根據(jù)內(nèi)容高度進(jìn)行高度自適應(yīng)
在iOS11下,一切顯示正常,但在iOS10下,當(dāng)前屏幕區(qū)域顯示正常,但往上滑動(dòng)tableView時(shí),發(fā)現(xiàn)下面一片空白,wk的后半部分沒(méi)有顯示,調(diào)試了好久,也百度了WKWebView的一些使用問(wèn)題,最后在CSDN上看到有人也遇到同樣的問(wèn)題,可能是wk在滑動(dòng)過(guò)程中不會(huì)自動(dòng)刷新屏幕內(nèi)容,所以需要在滑動(dòng)tableView時(shí)強(qiáng)制刷新WKWebView,才能完全顯示wk的內(nèi)容,以下是代碼:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
if (self.tableView == scrollView) {
for (UIView *cell in self.tableView.visibleCells) {
if ([cell isKindOfClass:[DetailsWebViewCell class]]) {
[((DetailsWebViewCell *)cell).webView setNeedsLayout];
}
}
}
}
更多坑可參考:騰訊Bugly