亲爱的朋友们,您好!我遇到了细胞重用的问题。在实践中,我选择多个单元格。在“didSelected”方法中,我将名为“isSelectedCell”的属性修改为true并添加绿色边框(以指示选择);在“didDeselect”方法中,我将其带到false并删除边框的颜色。但是,当我向下滚动一些单元格时,从未选中,似乎被选中,属性为真。因为?我如何防止这种情况发生。似乎当一个单元被重用时,这些属性取决于旧单元而不是它们自己的属性。
答案 0 :(得分:3)
如果您使用的是自定义单元格,请覆盖prepareForReuse并将所有属性重置为默认值
override func prepareForReuse() {
super.prepareForReuse()
// reset custom properties to default values
}
答案 1 :(得分:0)
单元格用于重用意味着它们只是固定数量的视图,可以再次使用。您必须使用collectionView cellForItemAtIndexPath
方法更新要在该单元格中显示的每个项目的单元格。您必须将其放在数据源中,如对象数组,以便为每个项返回正确的值。因此它会记住在项目上显示哪个属性。
可重复使用的单元是必要的,不会使设备内存膨胀并重用相同的视图。
答案 2 :(得分:0)