2009-01-12 33 views
6

我試圖展示一個充滿twitter狀態的表格(是的,這是Stanford Presence 2賦值),它的大小是可變的。我可以相對容易地確定爲我行適當高度的代碼近似(從accompanying lecture 9):實現可變大小的多行UITableCell的最佳方式是什麼?

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *) indexPath 
{ 
    NSString *text = ...; 
    UIFont *font = [UIFont systemFontOfSize:...]; 
    CGSize withinSize = CGSizeMake(tableView.width, 1000]; 
    CGSize size = [text sizeWithFont:font constrainedToSize:withinSize lineBreakMode:UILineBreakModeWordWrap]; 

    return size.height + somePadding; 
} 

我已經嘗試了兩種方法(和一些調整兩者)得到的多行文字環繞場文字放入我的表格中。

  1. 添加一個UILabel作爲一個子視圖到我的自定義UITableCell子類,並且所述numberOfLines屬性設置爲基於上面的高度(比如,6),或爲0(理論上無限)計算出的數量。 numberOfLines被忽略;我看到1或2行,並沒有更多。

  2. 添加一個只讀的UITextView作爲子視圖。這有問題,UITextView吃我的滾動;我最終在UITextView行內滾動,而不是逐行移動。如果我禁用UITextView滾動,我最終無法滾動。

這是一件很常見的事情;完成它的最佳方式是什麼?

回答

3

您可能想要查看UITextViewuserInteractionEnabled屬性。這應該允許將輸入傳遞到UITableView,以便滾動。

+0

這似乎工作,禁用滾動。我認爲我的UITextView雖然沒有得到適當的大小。 – 2009-01-13 02:57:25

0

在使用userInteractionEnabled = NO時,scrollEnabled = NO,並且在IB中設置了正確的自動調整參數,我認爲使用帶有numberOfLines = 0的UILabel和相同的自動調整參數最終是一個更好的主意,對於下一個人。

相關問題