UITableView是否可重复使用单元格

时间:2012-09-07 11:00:37

标签: uitableview selected didselectrowatindexpath

我正在使用带有自定义UITableViewCell的UITableView开发一个代表大量数据的应用。

当tableView设置为编辑模式时,它支持多种选择,以进一步使用所选数据集。

使用-tableView:didSelectRowAtIndexPath:didDeselect我将行UIImageViews图像更改为一个小刻度并将选择存储到数组中。选择一个单元格时,它会变成浅蓝色背景(iOS标准)。

当我现在再次向下滚动时,单元格背景仍为浅蓝色,但图像重置为默认值,单元格isSelected属性为NO。再次选择它会调用-tableView:didSelectRowAtIndexPath:方法。

经过一段时间的调试后发现可重复使用的标识符是错误的。但是当我纠正它时,向下滚动一遍又一遍地重复相同的12个单元格。 isSelected属性仍然重置为NO

如何在滚动tableView时维护选定的行?!并且:为什么单元格蓝色突出显示(或标记为已选中)但isSelected属性重置为No

感谢您的帮助,亲切的问候,Julian

1 个答案:

答案 0 :(得分:0)

不要使用单元格来保持持久控制器状态。而是保留NSArray并将每个选定单元格的NSIndexPath添加到数组中(如果/当用户取消选择单元格时,将其删除)。

然后在cellForRowAtIndexPath:中确保根据索引路径是否在所选单元格的数组中正确配置单元格。