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