2012-08-23 74 views
1

我在視圖中添加了UIWebView,並在ScrollView中添加了該視圖。如何獲得正確的UIWebView內容高度?

我想獲取UIWebView內容的框架。那麼我可以設置框架來查看和滾動視圖?

我知道我們可以通過使用javascript來獲得高度。如下提到:

float height = [[webView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight;"] floatValue]; 

但是當我旋轉視圖,並重新計算的UIWebView內容的高度didRotateFromInterfaceOrientation::(UIInterfaceOrientation)fromInterfaceOrientation方法,那麼內容高度增加。

所以請建議我如何在旋轉方向時獲得適當的高度?

謝謝。

回答

5

採用這種方法:

- (void) webViewDidFinishLoad:(UIWebView *)webView{ 
    CGRect frame = wvContent.frame; 
    CGSize fittingSize = [wvContent sizeThatFits:CGSizeZero]; 
    frame.size = fittingSize; 
    wvContent.frame = frame; 
} 

然後調用該方法,每次設備旋轉:

- (void) reloadContent 
{ 
    CGRect frame = wvContent.frame; 
    frame.size.height = 1; 
    frame.size.width = wvContent.frame.size.width; // you should change webview's width here. 
    wvContent.frame = frame; 

    [wvContent loadHTMLString:yourHTML baseURL:nil]; // reload webview 
} 

希望能夠幫助:)

+0

我使用autoresizingMask重置框架的方法。但問題保持不變.. –

+0

這裏是我的代碼看看:http://files.myopera.com/minesh1/Demo_Source/tableViewTest.zip –

+0

在這個Web視圖中有設備旋轉後在底部有額外的空白空間。 –

0

確保您檢索高度時,所有的內容被加載。

您可以添加計算高度UIWebView的代表法

- (void)webViewDidFinishLoad:(UIWebView *)webView{ 
    float height = [[webView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight;"] floatValue]; 
} 
相關問題