有没有更好的方法来确定UITableViewCell的正确大小?

dre*_*ewh 9 iphone cocoa-touch uitableview

我有一个UITableView单元格,根据其内容(可能是几行文本)将具有可变大小.

看来我在布局单元格之前调用了heightForRowAtIndexPath ,我只是通过在我的文本字符串上调用[NSString sizeWithFont]来猜测正确的高度.我在单元格中放置文本后,是否有更好的方法来设置高度,并且知道它应该具有什么尺寸?

Oli*_*lie 8

这听起来很愚蠢,但是......呃......"在退出heightForRowAtIndexPath之前布局你的单元格";)

但是说真的 - 操作系统只会在需要时调用它(例如:它即将创建单元并在屏幕上显示它),因此将其放置并准备好显示并不是浪费精力.

请注意,你不会有单独做你的布局,逻辑明智的.只需在heightForRowAtIndexPath例程中调用[self prepLayoutForCellAtIndex:index]即可.

如果数据是静态的,您可以创建高度表并缓存信息.

if (0 == heightTable[index]) {
    heightTable[index] = [self prepLayoutForCellAtIndex:index];
}
return (heightTable[index]);
Run Code Online (Sandbox Code Playgroud)

哎呀,即使数据发生变化,您也可以在更改数据的方法中重新计算表值,或者清除为0,以便在下次需要时重新计算.