访问表视图中的所有单元格(Xcode、iPhone)



我使用带有按钮的自定义单元格。在编辑模式下,我需要按钮消失。当编辑状态更改时,我调用此方法:

-(void)setButtonsVisibility:(BOOL)visibility {
    UIButton *currButton;
    for (int i = 0; i <= [array count] - 1; i++) {
        currButton = (UIButton *)[_tableView viewWithTag:10000+i];
        if (currButton) {
            [currButton setAlpha:visibility];
        }
    }
}

它非常有效。但这种方法不适用于现在不可见的细胞。例如,当表中有10个以上的单元格时。

如果正确地重用这些单元格,那么内存中唯一存在的UITableViewCells将是可见的10个。

最简单的解决方案是在UITableViewDataSource实例中添加一个BOOL标志,指示是显示还是隐藏按钮。然后,您现有的方法将正确更新可见的~10,在滚动后将调用的tableView:cellForRowAtIndexPath:中,您可以将按钮上的alpha属性设置为标志的值。

最新更新