2012-05-23 60 views
0

我有一個類名爲Announcement,它有一個TitleNSString),一個Publishing DateNSString)和BodyNSString與HTML內容)。計算UIWebView的高度取決於其內容

我想以類似的方式在電子郵件應用程序中顯示它。當你閱讀電子郵件時,你有前三個「行」(From,To,Title [日期]),然後是電子郵件的內容。

我想創建只有「標題[日期]」行,然後正文。我想它是一個UITableView,它在第一個單元上有我的Title,在第二個單元上有一個UIWebView

但好像電池有UIWebView的確切高度,所以我的問題是這樣的:

如何計算我的UIWebView的高度對我Body根據?因爲基本上當您垂直滾動時,滾動整個UITableView,而當您水平滾動時,只滾動UIWebView內容。

感謝

+0

可能重複[如何確定UIWebView的內容大小?](http://stackoverflow.com/questions/3936041/how-to-determine-the-content-size-of-a-uiwebview) –

回答

4

在web視圖的委託方法,只需用下面的代碼試試:

- (void)webViewDidFinishLoad:(UIWebView *)webView{ 
    [webviewTopicDesc sizeToFit]; 
    [webviewTopicDesc setFrame:CGRectMake(webviewTopicDesc.frame.origin.x, webviewTopicDesc.frame.origin.y, 300.0, webviewTopicDesc.frame.size.height)]; 
} 

在此之前,讓web視圖高度5.0。

希望它對你有幫助。

在這裏,你可以獲得基於字符串的動態高度。

-(CGSize)getDynemicHeight:(int)pintFixWidth :(NSString *)pstrText 
{ 
CGSize maximumSize=CGSizeMake(pintFixWidth, g_Max_Width); 
UIFont *myFont = [UIFont fontWithName:g_Default_Font_Name size:g_Default_Font_Size];// font used for label 
myFont=[UIFont boldSystemFontOfSize:g_Default_Font_Size]; 

CGSize sizeS = [pstrText sizeWithFont:myFont 
        constrainedToSize:maximumSize 
         lineBreakMode:UILineBreakModeWordWrap]; 

sizeS.height=sizeS.height+39; 

return sizeS; 
} 

在這裏,你必須用font-style來修正寬度和字體大小。

可能對你有幫助。

+0

它的工作原理,但我想要的最小內容大小(或縮放比例)。基本上,當我加載Web視圖時,我想顯示完整的內容。 – Cosmin

+0

我已經更新我的答案並添加函數來獲取基於字符串長度的動態高度。希望它對你有所幫助。 –

0

有找到一個UIWebView的內容的高度的幾種方法。

這裏有幾個指針開始:

How to determine UIWebView height based on content, within a variable height UITableView?

How to determine the content size of a UIWebView?

iPhone - get the Content Size of UIWebView

注意,在一個UITableView使用UIWebView不一定是一個很好的主意,特別是如果您有多個Announcements在相同的UITableView中滾動瀏覽。如果您只按UITableView顯示一個公告,您應該能夠避開它,但對於包含大量單元格滾動的表格,在單元格中使用Web視圖可能會導致性能問題。

蘋果還建議不要使用嵌入UIWebViews/UITableViews/UIScrollViews

UIWebView Class Reference

重要:你不應該嵌入的UIWebView或UITableView的對象 UIScrollView的對象。如果這樣做,可能會導致意外的行爲 ,因爲兩個對象的觸摸事件可能混淆並且錯誤地處理了 。

我的2美分:)

+0

我想要最小的內容大小(或縮放比例)。基本上,當我加載Web視圖時,我想顯示完整的內容。 – Cosmin

+0

在這種情況下,您需要將UIWebView的'scalesPageToFit'屬性設置爲'TRUE' – Mutix

+0

我希望我的UIWebView具有以下框架= CGRectMake(0,0,320,高度),並且我希望內容是具有完全相同的「寬度」(320)並相應地調整其高度。例如,如果我禁用scalesPageToFit,並且爲我的UIWebView創建一個框架(0,0,320,480),則內容將水平修復,我只能垂直滾動。我想要類似的東西,只是希望根據內容的高度來設置高度。另外,我希望能夠縮放,但是如果我設置了scalesPageToFit,那麼最初的內容不適合我的寬度。請不要讓自己清楚。 – Cosmin