如何处理不同单元格高度的UITableView?

时间:2011-07-28 02:12:47

标签: uitableview delegates height

我表格中的每个单元格都有一个标签,最多有三行,所以单元格高度取决于标签的高度,我知道返回特定单元格高度的委托方法(NSIndexPath),但我需要得到实际的单元格,以确定高度,如果我调用cellForRow:atIndexPath:在heightForCell:,它无限循环,我想cellForRow也调用heightForCell。那么有什么方法可以解决这个问题吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

您可以在heightForRow:delegate方法中使用NSStrings大小作为字符串,例如

CGSize maxSize = CGSizeMake(300, 800); //max x width and y height
NSString *cellTitle = @"Lorem ipsum";
UIFont *stringFont = [UIFont systemFontOfSize:14]; // use the same font your using on the cell
CGSize cellStringSize = [myString sizeWithFont:stringFont constrainedToSize:maximumSize lineBreakMode: UILineBreakModeWordWrap];

这将为您提供CGSize,然后您可以使用此处的高度并添加一点填充。您可以在此处找到更多信息:http://developer.apple.com/library/ios/#documentation/UIKit/Reference/NSString_UIKit_Additions/Reference/Reference.html

答案 1 :(得分:0)

使用– sizeWithFont:constrainedToSize:lineBreakMode:的{​​{1}}(您可以在此门户网站上找到更多内容)或使用包含每个NSString高度的数组,如本例所示(SectionInfo类){{ 3}}