gpt4 book ai didi

ios - 如何确定 UIWebView 的内容大小?

转载 作者:IT王子 更新时间:2023-10-29 07:28:21 26 4
gpt4 key购买 nike

我有一个包含不同(单页)内容的 UIWebView。我想找出内容的 CGSize 以适本地调整我的父 View 的大小。显而易见的 -sizeThatFits: 不幸的是只返回 webView 的当前帧大小。

最佳答案

事实证明,我使用 -sizeThatFits: 的第一个猜测并非完全错误。它似乎有效,但前提是在发送 -sizeThatFits: 之前将 webView 的框架设置为最小尺寸。之后我们可以通过合适的尺寸来修正错误的车架尺寸。这听起来很糟糕,但实际上并没有那么糟糕。由于我们紧接着进行两个框架更改,因此 View 不会更新并且不会闪烁。

当然,我们必须等到内容加载完毕,所以我们将代码放在-webViewDidFinishLoad:委托(delegate)方法中。

Obj-C

- (void)webViewDidFinishLoad:(UIWebView *)aWebView {
CGRect frame = aWebView.frame;
frame.size.height = 1;
aWebView.frame = frame;
CGSize fittingSize = [aWebView sizeThatFits:CGSizeZero];
frame.size = fittingSize;
aWebView.frame = frame;

NSLog(@"size: %f, %f", fittingSize.width, fittingSize.height);
}

swift 4.x

func webViewDidFinishLoad(_ webView: UIWebView) {
var frame = webView.frame
frame.size.height = 1
webView.frame = frame
let fittingSize = webView.sizeThatFits(CGSize.init(width: 0, height: 0))
frame.size = fittingSize
webView.frame = frame
}

我应该指出有 another approach (感谢@GregInYEG)使用 JavaScript。不确定哪种解决方案性能更好。

在两个 hacky 解决方案中,我更喜欢这个。

关于ios - 如何确定 UIWebView 的内容大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3936041/

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