我在
进行比较- (CGFloat)tableView:(UITableView *)tblView heightForRowAtIndexPath:(NSIndexPath *)indexPath
当我检查cell.detailTextLabel.text isEqualTo:@"None";
进行比较和设置单元格高度的更好方法是什么?
答案 0 :(得分:5)
UITableView
实现了一个复杂的缓存结构,可以根据需要重用单元,因为为绘图管理重新创建底层缓冲区是很昂贵的。更改单元格高度将需要重新分配这些缓冲区,并且您将失去从缓存机制中获得的任何性能。
更好的实现方法是将按照高度分配的单元格划分为多个组,并根据单元格的高度要求重复使用单元格。这样就不需要重新分配缓冲区了,你将获得UITableView
所期望的性能。
答案 1 :(得分:3)
在创建单元格期间正在使用heightForRowAtIndexPath,因此不应访问单元格。不要检查单元格的内容,而是检查用于设置单元格内容的相同源。