如果我正在自定義UITableViewCell
,我需要它有一個變量高度取決於輸入的長度(例如,對於Twitter閱讀器或某物),我怎麼能做到這一點工作?heightForRowAtIndexPath與自定義單元格和標籤
我發現了很多其他的例子,可以爲標準的非自定義單元格設置它,但是我的單元格的主要文本標籤更小等等,所以當我嘗試使用這些方法中的任何一種時我的單元格,他們給出了各種奇怪的結果(文本重疊在單元格的底部等)
是否有一個標準化的單元設計方法(例如,我應該在Interface Builder中做多大?) ,假設我的標籤是單元格寬度的一半。我將如何去計算單元格需要顯示加載到該標籤中的字符串的高度?這裏有一個我在這裏找到的方法,它可以在正常單元格上正常工作,但是會將怪異高度,重疊文本等自定義單元擰緊:(我完全不知道300/200000在這裏做什麼,如果有人能解釋我' d是感激,太!)
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
CGSize textSize = {300.f, 200000.0f};
CGSize size = [[_quoteStringsFromPlist objectAtIndex: indexPath.row] sizeWithFont: [UIFont systemFontOfSize:12.0f] constrainedToSize: textSize lineBreakMode: NSLineBreakByWordWrapping];
size.height += 5.0f;
float result = MAX(size.height, 32.0f);
return result;
}
您可以在界面生成器中完成所有操作(如果您使用的話)。在IB中選擇tableview並更改行高。然後選擇單元格並選擇自定義單元格高度並輸入相同的數字。希望能幫助到你! – Groot 2013-02-15 12:36:21
恐怕這沒有奏效。細胞似乎處於不同的高度,但短小的細胞上方/下方有大量空間,而較長的細胞正在被切斷。我在兩個地方將行高設置爲90。 – Luke 2013-02-15 12:43:26