【问题标题】:UIWebView Dynamic heightUIWebView 动态高度
【发布时间】:2018-10-22 13:06:05
【问题描述】:

我想根据WebView的内容给UIWebView添加动态高度。

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

我也参考了以下链接。

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)
}

谁能帮我解决这个问题?

提前谢谢....

【问题讨论】:

  • 试试这个? webView.scrollView.isScrollEnabled=true;

标签: ios swift uiwebview


【解决方案1】:

一个快速的解决方案是使用框架而不是约束来实现它。将您当前的 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()
    }

【讨论】:

  • 它应该适用于框架。约束可能存在问题。但是第一帧肯定会起作用
  • 我对框架的回答有效吗?第一个代码块
  • 不,我没有尝试使用框架......但是,我正在使用情节提要。所以不想使用框架
猜你喜欢
  • 1970-01-01
  • 2015-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-11
  • 2014-05-12
相关资源
最近更新 更多