UICollectionView中的UIWebview,如何在滚动集合视图时停止重新加载Webview

时间:2019-05-24 15:29:01

标签: ios swift uicollectionview uiwebview uicollectionviewcell

每当我滚动集合视图时,我都会在UICollectionViewCell内拥有UIWebView,而我的webview会重新加载。这要花很多时间。

如果该单元格的Webview已经加载,我保留了一些布尔值以停止重新加载Webview。但这会导致单元格不匹配的问题(单元格中显示了最后加载的或其他单元格Webview数据)

我正在使用html字符串加载webview。

cell.webView.loadHTMLString(updatedString, baseURL: nil)

我的用户界面看起来像... enter image description here

1 个答案:

答案 0 :(得分:0)

您可以检查html内容在Web视图中是否可用。如果html字符串为空,则在cellForRow方法中,调用loadHTMLString方法。

if let htmlString = self.webView1.stringByEvaluatingJavaScript(from: "document.body.innerHTML") {
    if htmlString.isEmpty {
        self.webView1.loadHTMLString("<p>asda</p><b>asdg</b>", baseURL: nil)
    } else {
        print("html already loaded")
    }
}

使用WKWebViewUIWebView已弃用

let webView = WKWebView()

self.webView.evaluateJavaScript("document.body.innerHTML", completionHandler: { (string, error) in
    if let htmlString = string as? String{
        if htmlString.isEmpty {
            self.webView.loadHTMLString("<p>asda</p><b>asdg</b>", baseURL: nil)
        } else {
            print("html already loaded")
        }
    }
})