每次我向上或向下滚动时,已经绘制的单元格都会被重绘,因为当该单元格进入视图时会再次调用“cellForRowAtIndexPath”。
有没有办法不为已经被调用的单元格调用“cellForRowAtIndexPath”。
一旦为索引路径调用了cellForRowAtIndexPath,它就不应该在用户滚动时再次调用它。
我可以在一个标志数组中设置标志并手动完成,但有更直接的方法吗?
我绝对是一个导致性能问题的设计。我不能解释设计,也不能改变它,因此我在问。
答案 0 :(得分:2)
如果你不让“cellForRowAtIndexPath”方法再次调用,可能会产生性能问题, 但是,您可以通过为每行分配不同的单元标识符来完成此操作,如下所示。
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:[NSString stringWithFormat:@"Cell%d%d", indexPath.row, indexPath.section]];
答案 1 :(得分:0)
//尝试在创建新内容之前删除所有内容。
//使用“cellForRowAtIndexPath”方法
for(UIView *view in cell.contentView.subviews){
if ([view isKindOfClass:[UIView class]]) {
[view removeFromSuperview];
}
}