更新约束常数后,WebView高度未更改

我正在uicollectionview单元格内使用webview。加载html后,我更新了webview高度约束常量。以下列方式。

public func webView(_ webView: WKWebView,didFinish navigation: WKNavigation!) {
        print("Load Completed")
        webView.evaluateJavaScript("document.readyState",completionHandler: { (complete,error) in
            if complete != nil {
                self.webview.evaluateJavaScript("document.body.offsetHeight",completionHandler: { (height,error) in

                    DispatchQueue.main.async {
                        self.webviewHeightConstraint.constant = height as! CGFloat
                        print("Height ",height as! CGFloat)
                        self.webview.setNeedsUpdateConstraints()
                    }
                })
            }
        })
    }

它给出正确的高度值,但是直到我滚动很少时ui才改变。但我开始滚动,webview的高度正确更改。这是什么问题。请帮助我。

谢谢

realqishangbaxia 回答:更新约束常数后,WebView高度未更改

替换

self.webview.setNeedsUpdateConstraints()

使用

self.view.layoutIfNeeded()
,

迁移到WKWebView

WKWebView的完整代码如下:

func webView(_ webView: WKWebView,didFinish navigation: WKNavigation!) {
    webView.frame.size.height = 1
    webView.frame.size = webView.scrollView.contentSize
}
本文链接:https://www.f2er.com/2816321.html

大家都在问