gpt4 book ai didi

iphone - UIWebView 调整大小以适应内容

转载 作者:行者123 更新时间:2023-12-03 20:46:25 26 4
gpt4 key购买 nike

这就是我正在尝试做的事情,

我有一个 webView,我将其框架设置为

self.webView.frame = CGRectMake(0, Y,screenWidth,1);

y 坐标是根据动态添加的其他 View 的高度计算的,效果很好。

屏幕宽度设置为 320 或 480,具体取决于设备方向,这也可以正常工作。

现在我希望我的 webView 将其宽度设置为 screenWidth,并单独调整其高度以适应内容。

内容可以是纯文本,我加载为

        NSData* data=[msgBody dataUsingEncoding:NSUTF8StringEncoding];             
if (data)
[self.webView loadData:data MIMEType:@"text/plain" textEncodingName:@"UTF-8" baseURL:nil];

或我加载的 HTML

        [self.webView loadHTMLString:htmlMsgBody baseURL:nil]; 

在我的 WebViewDidFinishLoad 方法中,我正在这样做,

- (void)webViewDidFinishLoad:(UIWebView *)webview {

CGRect frame = self.webView.frame;
CGSize fittingSize = [self.webView sizeThatFits:CGSizeZero];
frame.size = fittingSize;
self.webView.frame = frame;

CGFloat totalHeight = self.webView.frame.origin.y+self.webView.frame.origin.height+30;

//the webView is scrolllocked and put on a scrollView so I do this

[self.theScrollView setContentSize:CGSizeMake(screenWidth, totalHeight)];
}

我的webView所在的scrollView可以水平滚动。无论如何,我的 webView 是滚动锁定的。因此,我必须始终根据设备方向保持 webView 宽度与 self.view.frame.size.width 相同,并且 webView 宽度应该更改以适应内容。我相应地设置了scrollView contentSize 以允许垂直滚动。

但问题是, self.webView sizeThatFits 方法返回奇怪的值,当我的 screenWidth 为 320 时,我得到的fittingSize.width为408,并且我的内容水平离开屏幕,我无法显示内容正确。即使我强行设置了 self.webView.frame.size.width = screenWidth 的框架,部分内容仍然在屏幕之外。

遇到这种情况该如何处理?

最佳答案

根据文档,适合的尺寸:

Resizes and moves the receiver view so it just encloses its subviews.

这不会为您提供有关将 webView 放入其包含 View 中的任何信息。您的 webView 是否可能尝试显示比 screenWidth 更宽的内容,并且由于您已将其滚动锁定,因此它显示了整个宽度?

关于iphone - UIWebView 调整大小以适应内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5914472/

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