WKWebView没有在"屏幕下方"显示内容

Ode*_*gev 11 uitableview uiscrollview ios wkwebview

我必须在UITableView中集成WKWebView(请不要质疑).

我确保WKWebView滚动被禁用,这样我就避免在可滚动视图(UITableView)中有可滚动视图.

但是,当WKWebview中的HTML内容很大时,让我们说两次屏幕,我发现屏幕下方的内容没有显示给用户,即当用户滚动表格视图时,只有白色\空屏幕,其中WKWebView是......

我根据以下内容更新了WebViewTableViewCell的高度:

public func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {

    let height = webView.scrollView.contentSize.height
    ...
    ...
    delegate.updateWebViewCellHeight(height: self.cellHeight)
}
Run Code Online (Sandbox Code Playgroud)

我想这可能是WKWebView上的一些优化的结果,它允许它仅在屏幕上显示时才呈现DOM.

我的问题是,为了确保在滚动表格视图时向用户显示WKWebView中的所有内容,我该怎么办?

PS UIWebView渲染所有内容都很好,它似乎只在WKWebView中发生

见下图:

在此输入图像描述

小智 10

你可以在WKWebView上调用setNeedsLayout,(Swift):

请注意,这是UITableView的scrollView.

func scrollViewDidScroll(_ scrollView: UIScrollView) {
    // use IndexPath for row/section with your WKWebView
    if let cell = tableView.cellForRow(at: IndexPath(row: 1, section: 0)) as? WKWebViewCell { // Here we take our cell
        cell.wkWebView?.setNeedsLayout()
    }
}
Run Code Online (Sandbox Code Playgroud)

请参阅在iOS 10中无法正确呈现WKWebView