WKWebView无法在iOS 10中正确呈现

win*_*int 28 wkwebview ios10

我在UITableViewCell里面有WKWebView.Web视图加载请求,然后在完成加载后,我将Web视图高度的大小调整为等于其内容高度,然后调整表视图单元格高度以相应地适应.

发生了什么是Web视图只显示适合屏幕大小的区域.当我向下滚动时,一切都是白色的.但是我看到以正确的高度呈现的Web视图,点击并按住Web视图上的白色区域仍然可以看到选择.使用缩放进行缩放可使屏幕上显示的Web视图区域可见,但其他区域有时会变为白色.

它在iOS 8和9上运行良好.我已经创建了一个示例项目来演示此行为:https: //github.com/pawin/strange-wkwebview

Open Radar:https://openradar.appspot.com/radar? id = 4944718286815232

更新:此问题已在iOS11中解决

小智 26

您需要WKWebViewUITableView滚动时强制进行布局.

// in the UITableViewDelegate
func scrollViewDidScroll(scrollView: UIScrollView) {
    if let tableView = scrollView as? UITableView {
        for cell in tableView.visibleCells {
            guard let cell = cell as? MyCustomCellClass else { continue }
            cell.webView?.setNeedsLayout()
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 请编辑更多信息.不鼓励使用仅限代码和"尝试此"的答案,因为它们不包含可搜索的内容,也不解释为什么有人应该"试试这个". (3认同)