2010-06-11 77 views
1

我在iPhone應用程序中遇到問題。表格視圖單元格中標籤或textview的自動高度

應用程序具有帶自定義表格視圖單元格的表格視圖控制器。每個單元格都有一個標籤(如果我需要使用文本視圖等,請糾正我)。我正在從Web服務調用中動態獲取文本,但我不知道文本會有多長。

現在的問題是,我想根據我收到的文本調整表格視圖單元格高度。如何在表格視圖單元格內增加Label或TextView高度,以便它可以包含所有文本,並有效地增加表格視圖單元格高度。

有誰知道如何處理這種設計問題?

感謝

回答

0

答案取決於您顯示的信息的大小和複雜性。

對於少量文本,可以使用NSString UIKit Additions來計算顯示的字符串的大小,然後在將單元格返回到tableview之前調整單元格的標籤或其他控件的大小。這可以讓你微調每個單元的顯示。

對於大量的文本,我建議一個詳細視圖,如果可能的話。在表格中顯示少量文本,然後選擇表格打開包含全文的另一個視圖。我認爲大多數用戶很難在桌面視圖中閱讀大量文本。

+0

是的,我也在考慮這個設計邏輯。我的案例中的文字不會超過500個字符。在這種情況下你認爲什麼? – Leo 2010-06-11 12:39:11

+0

如果表格視圖的大小佔用了垂直屏幕區域的三分之一或更多,它會停止看起來像一張表格,用戶會對如何操作它感到困惑。我認爲你必須始終有至少三個可見的細胞。另一種方法是在詳細信息視圖中顯示文本,即左側和右側頁面,如照片庫詳細信息視圖。這一切都取決於實際數據以及人們將如何使用它。 – TechZen 2010-06-11 17:17:10

2

你可以從下面的功能

-(float)getHeightByWidth:(NSString*)myString:(UIFont*)mySize:(int)myWidth { 

    CGSize boundingSize = CGSizeMake(myWidth, CGFLOAT_MAX); 
    CGSize requiredSize = [myString sizeWithFont:mySize constrainedToSize:boundingSize lineBreakMode:UILineBreakModeWordWrap]; 

    return requiredSize.height; 

} 

基於上述功能,您可以在那裏它去設置標籤的高度以及細胞傳遞的字符串的高度使用..

+0

如果在單元格中顯示,請確保在文本框架中添加一些填充。 – 2011-02-12 17:39:19

相關問題