gpt4 book ai didi

ios - UIWebView sizeToFit() 变小

转载 作者:行者123 更新时间:2023-11-28 11:05:40 26 4
gpt4 key购买 nike

似乎在 UIWebView 上使用 sizeToFit() 不会将大小更改为更小,只会更大。这是一些设置代码:

var scrollView: UIScrollView!
var webView: UIWebView!

override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.

scrollView = UIScrollView()
scrollView.frame = CGRect(x: 50.0, y: 50.0, width: 800.0, height: 1200.0)

webView = UIWebView()
webView.frame = CGRect(x: 50.0, y: 50.0, width: 800.0, height: 1.0)
webView.scrollView.scrollEnabled = false
webView.delegate = self
webView.scalesPageToFit = false
webView.loadHTMLString("Test", baseURL: nil)

self.view.addSubview(scrollView)
scrollView.addSubview(webView)
}

这是我的测试代码。它会在 3 秒后将内容的大小更改为非常大,然后再过 3 秒后将内容的大小更改为非常小:

    dispatch_after_delay_main(3) {

self.webView.loadHTMLString("Test Test Test Test ", baseURL: nil)
// Much longer string abbreviated here

dispatch_after_delay_main(3, block: {

self.webView.loadHTMLString("Test", baseURL: nil)

})
}

这是在加载 HTML 后调用的。目标是根据内容的大小更改 webView 的大小。注意:我已经用 .sizeToFit() 和 sizeThatFits() 完成了同样的尺寸结果。

func webViewDidFinishLoad(webView: UIWebView) {

webView.frame.size.height = 0.0 // Just in case
webView.sizeToFit()

}

我省略了 webViewDidFinishLoad(webView: UIWebView) 末尾的打印语句,但它们输出的大小在增加,但没有减少。换句话说,它会变大,但是一旦 "Test" 被加载,它的大小就不会减小。

(800.0, 1.0)  // "Test" (before sizeToFit() called)
(800.0, 1976.0) // "Test Test .... Test "
(800.0, 1976.0) // "Test"

最佳答案

您需要将 webview 嵌入到 scrollView 中吗?我认为不是。

尝试将您的 HTML 字符串更改为 "<div id='main-html'>Your text</div>"然后在 webViewDidFinishLoad 上委托(delegate)函数你会做这些事情:

首先,您通过以下方式获取内容高度:

var result : Float = NSString (webView.stringByEvaluatingJavaScriptFromString("document.getElementById('main-html').offsetHeight").floatValue

其次,使用结果值更改 webview 高度。

并尝试使用相同的结果值更改 webView.scrollView.contentSize 的高度。

最后,使用 webView.sizeToFit()

干杯

编辑:

正如您所说,您可以使用:

func webViewDidFinishLoad(webView: UIWebView) {

webView.frame.size.height = 1.0 // Value needs to be > 0.0 and < of the current height
webView.sizeToFit()

}

关于ios - UIWebView sizeToFit() 变小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37846103/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com