UIWebView动态高度

时间:2018-10-22 13:06:06

标签: ios swift uiwebview

我想根据WebView的内容将动态高度添加到UIWebView

我正在将HTML文件加载到我的webView中。

我也参考了以下链接。

UIWebView dynamic content size

但是没有得到结果。

这是我的代码。...

self.mapWebView.delegate = self
let mapHtmlFile = Bundle.main.path(forResource: "map", ofType: "html")
let html = try? String(contentsOfFile: mapHtmlFile!, encoding: String.Encoding.utf8)
self.mapWebView.loadHTMLString(html!, baseURL: nil)

代理方法

func webViewDidFinishLoad(_ webView: UIWebView) {
    webView.frame.size.height = 1
    webView.frame.size = webView.sizeThatFits(.zero)
    webView.scrollView.isScrollEnabled=false;
    self.cnDirectionWebViewHeight.constant = webView.scrollView.contentSize.height
    webView.scalesPageToFit = true

   // tried following code. Doesn't work
   //webView.frame.size.height = 1
   //webView.frame.size = webView.sizeThatFits(CGSize.zero)
}

有人可以帮我解决这个麻烦吗?

提前谢谢。...

1 个答案:

答案 0 :(得分:0)

一种快速的解决方案是使用框架而不是约束来实现它。将此替换为func webViewDidFinishLoad(_ webView: UIWebView) {}的当前实现:

func webViewDidFinishLoad(_ webView: UIWebView) {
    webView.scrollView.isScrollEnabled=false;
    let height = webView.scrollView.contentSize.height
    webView.scalesPageToFit = false
    webView.frame.size.height = height
}

使用约束:

    func webViewDidFinishLoad(_ webView: UIWebView) {
       webView.scrollView.isScrollEnabled=false
       webView.scalesPageToFit = false
       self.cnDirectionWebViewHeight.constant = 
       webView.scrollView.contentSize.height
       webView.layoutIfNeeded()
    }