ios - UIWebView动态高度

标签 ios swift uiwebview

我想根据 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)

委托(delegate)方法

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

谁能帮我摆脱这个麻烦吗?

提前致谢......

最佳答案

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

关于ios - UIWebView动态高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52930150/

相关文章:

ios - 我可以在 Apple 文档的何处找到 Set<Calendar.Component> 的选项?

ios - 核心数据 - "days"和 "tasks"(对多关系) - 如何获取一天的所有任务?

ios - 更改 WKWebView 中的键盘返回键

ios - 从 Swift 转换为 Objective-c 的工具

ios - Swift iOS 9 二维码扫描仪

ios - 带有自定义动画的 UINavigationViewControllerDelegate 会破坏默认行为吗?

ios - 将免费应用程序和付费应用程序上传到Apple AppStore

ios - 以编程方式将按钮约束到选项卡栏的底部中心

ios - Split View Controller 和 UIWebView

objective-c - UIWebView iOS5 改变用户代理