2011-05-06 58 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

相關問題