我使用带有按钮的自定义单元格。在编辑模式下,我需要按钮消失。当编辑状态更改时,我调用此方法:
-(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属性设置为标志的值。