我有一个 UITableView 单元格,该单元格的大小将根据其内容(可能是几行文本)而变化。
既然看起来 heightForRowAtIndexPath 被调用before我布局单元格,我只是通过在文本字符串上调用 [NSString sizeWithFont] 来猜测正确的高度。有没有更好的方法来设置高度after我已经在单元格中布置了文本,并且知道它的大小到底应该是多少?
这听起来很愚蠢,但是......呃......“在退出 heightForRowAtIndexPath 之前布局你的单元格”;)
不过,说真的——操作系统只有在需要时才会调用它(例如:它将创建单元格并将其显示在屏幕上),因此布置它并准备显示并不是浪费精力。
注意,你这样做not必须按逻辑单独进行布局。只需在 heightForRowAtIndexPath 例程中调用 [self prepLayoutForCellAtIndex:index] 即可。
如果数据是静态的,您可以创建一个高度表并缓存信息。
if (0 == heightTable[index]) {
heightTable[index] = [self prepLayoutForCellAtIndex:index];
}
return (heightTable[index]);
哎呀,即使数据发生变化,您也可以在更改数据的方法中重新计算表值,或者清除为 0,以便下次需要时重新计算。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)