有没有办法告诉UITableView预加载所有行?
tableView应该显示多条评论(最多80条评论)。
所以我的CommentCell使用Setter来调整单元格的特定注释。
-(void)setComment:(Comment *)newComment {
if (newComment != comment) {
[comment release];
comment = [newComment retain];
/*
* set the cells view variables here
*/
}
}
这个特定的setter占用了大量的处理资源,滚动变得有点滞后。
我在调用
时使用特定于注释的reuseIdentifier而不是静态cellIdentifierdequeueReusableCellWithIdentifier:
为了确保“newComment”等于旧的“评论” 事实上,当滚动已经加载的单元格时,这确实很有效。
但是当第一次滚动评论时,它仍然落后于地狱。
这引出了我的问题:
有没有办法告诉tableview预加载所有单元格? (我怀疑)
或
我是否必须实现自己的缓存而不是依赖“dequeueReusableCellWithIdentifier:”?
答案 0 :(得分:2)
请记住,您的评论特定的reuseIdentifier可能是导致一切变慢的原因(或者至少,它没有帮助)。我们为UITableViewCells使用reuseIdentifier的原因是因为如果你每次需要时都尝试分配一个新的单元格,那么它就像你只能重用已经制作的单元格那样高效。
我建议您预先计算您的评论,这样您就可以设置细胞的属性,并在滚动桌面视图后重复使用单元格。
答案 1 :(得分:1)
不,您必须在dataSource
中预加载数据。只需将您需要的所有内容放入数组中,然后从预先加载的对象数组中填充表格的单元格。