注释掉在UITableView中重用单元格的代码是否有害?
// if (cell == nil)
// {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier] autorelease];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
// }
感谢。
编辑:根据@jrturton的回复,我决定不这样做。
答案 0 :(得分:7)
它会增加内存使用并影响滚动性能。如果你只有10个细胞,它可能没有任何区别。有1000,这将是非常明显的。
您还需要注释掉对tableView的出列调用。
我不得不问 - 你为什么这么担心?您的问题可能有更好的解决方案。
根据您的评论,您可能仍希望每行重复使用一个单元格 - 否则当某些内容在屏幕上滚动并返回时,您必须重新创建它。您可以将indexPath行和节合并到单元格重用字符串中以实现此目的:
NSString *cellIdentifier = [NSString stringWithFormat:@"cell%d.%d",indexPath.section,indexPath.row];
答案 1 :(得分:1)
除非您有非常具体/唯一的原因,否则应使用模板方法cellForRowAtIndexPath中提供的对单元格进行排队和解除排队的机制。这将使您的内存占用尽可能低并保持滚动顺畅。
请注意,您可以在每次出现时修改单元格的各个方面,因此如果您想分享您在尝试避免重复使用单元格时的动机,那么我的建议也许会有所不同。