这里就是我试图做的,的UIWebView调整以适应内容
我有一个webView的坐标是基于其他的高度计算,其帧我设置为
self.webView.frame = CGRectMake(0, Y,screenWidth,1);
在y动态添加的视图可以正常工作。
screenWidth设置为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是scrollLocked。所以我必须始终保持我的webView宽度与基于设备方向的self.view.frame.size.width相同,并且应该更改webView宽度以适应内容。我相应地设置scrollView的contentSize允许垂直滚动。
但事情是,self.webView sizeThatFits方法返回奇怪的值,会发生什么情况是,当我的screenWidth是320我得到fittingSize.width为408,我的内容水平离开屏幕,我无法显示内容正确。即使我强制设置self.webView.frame.size.width = screenWidth的框架,部分内容仍然不在屏幕上。
如何处理这种情况?
有可能myWebView试图显示大于屏幕宽度的东西。现在的问题是,即使我在webView中加载的html/CSS显式声明的宽度大于webView宽度,是否有一种方法可以围绕screenwidth执行textWrap? – SayeedHussain 2011-05-07 03:29:47
我怀疑它 - 封闭的视图不会知道webView内部发生了什么。 – Rayfleck 2011-05-07 12:05:50
无封闭视图。我想要webView的内容包围webView的宽度。我在哪里说附上UIWebView的观点? – 2011-05-07 12:13:03