使用ios swift中的autolayot基于html文本更改webview高度

问题描述 投票:-4回答:2

创建了一个加载html文本的webview。

var html_string = "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book."

self.webView.loadHTMLString(html_string, baseURL: nil)

我想将webview高度设置为其内容。无需在webView中滚动

ios swift xcode uiwebview wkwebview
2个回答
0
投票

请注意,该组件是WKWebView,Webview已成为过去。

试试这个功能:

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

记得为myWebViewHeightConstraint和updateConstrain创建一个插座。

你有美好的一天!


0
投票

使用以下代码,我希望这对您有所帮助。

注意: - 在iOS 12.0中不推荐使用'UIWebView':不再支持,所以请使用WKWebView而不是UIWebView

对于UIWebView

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

对于WKWebView

如果您想使用WKWebView,则需要执行以下操作。

1)导入WebKit

2)使您的ViewController继承自WKNavigationDelegate

3)挂钩WKWebView的委托:webView.navigationDelegate = self

4)实现以下协议功能:

func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
    webView.frame.size.height = 1
    webView.frame.size = webView.scrollView.contentSize
}
© www.soinside.com 2019 - 2024. All rights reserved.