2011-05-06 133 views
2

这里就是我试图做的,的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的框架,部分内容仍然不在屏幕上。

如何处理这种情况?

回答

3

根据该文档,大小以适合:

尺寸并移动接收器视图,它只是围绕其子视图

这不会给你任何有关将webView安装到其包含视图的信息。 是否有可能您的webView试图显示比screenWidth更宽的东西,并且由于您已将其滚动锁定,它显示的是整个宽度?

+0

有可能myWebView试图显示大于屏幕宽度的东西。现在的问题是,即使我在webView中加载的html/CSS显式声明的宽度大于webView宽度,是否有一种方法可以围绕screenwidth执行textWrap? – SayeedHussain 2011-05-07 03:29:47

+0

我怀疑它 - 封闭的视图不会知道webView内部发生了什么。 – Rayfleck 2011-05-07 12:05:50

+0

无封闭视图。我想要webView的内容包围webView的宽度。我在哪里说附上UIWebView的观点? – 2011-05-07 12:13:03

1

我也遇到了从横向切换到纵向时UIWebView内容的尺寸不正确的问题。

打猎了一段时间之后,我发现我的回答:“我发现处理这一种方法是重装调整大小后的内容。当我说‘

重装,’我不是这个意思UIWebView中的内置重载功能,我的意思是实际调用loadHTMLString:baseURL :(或者最初用来加载内容的任何方法)。“ Agent Gold's post on Apple Support forum

+0

优秀的答案。解决了我的问题!谢谢! :) – 2014-05-21 10:59:58

相关问题