這裏就是我試圖做的,的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