2

每次我向上或向下滚动时,已经绘制的单元格会被重新绘制,因为当该单元格进入视图时会再次调用“cellForRowAtIndexPath”。

有没有办法不为已调用的单元格调用“cellForRowAtIndexPath”。

也就是说,一旦为 indexpath 调用 cellForRowAtIndexPath ,当用户滚动时它不应该再次调用它。

我可以在标志数组中设置标志并手动进行,但有更直接的方法吗?

我绝对有一个导致性能问题的设计。我不能解释设计也不能改变它,所以我问。

4

2 回答 2

2

如果您不让“cellForRowAtIndexPath”方法再次调用,可能会产生性能问题,但您可以通过为每行分配不同的单元格标识符来做到这一点,如下所示。

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:[NSString stringWithFormat:@"Cell%d%d", indexPath.row, indexPath.section]];
于 2012-11-16T06:59:17.140 回答
0

//尝试在创建新内容之前删除所有内容。

//在“cellForRowAtIndexPath”方法中使用

 for(UIView *view in cell.contentView.subviews){
        if ([view isKindOfClass:[UIView class]]) {
            [view removeFromSuperview];
        }
    }
于 2012-11-16T08:13:08.177 回答