collectionView中的单元重用错误

时间:2017-06-08 12:21:56

标签: ios uicollectionviewcell

亲爱的朋友们,您好!我遇到了细胞重用的问题。在实践中,我选择多个单元格。在“didSelected”方法中,我将名为“isSelectedCell”的属性修改为true并添加绿色边框(以指示选择);在“didDeselect”方法中,我将其带到false并删除边框的颜色。但是,当我向下滚动一些单元格时,从未选中,似乎被选中,属性为真。因为?我如何防止这种情况发生。似乎当一个单元被重用时,这些属性取决于旧单元而不是它们自己的属性。

3 个答案:

答案 0 :(得分:3)

如果您使用的是自定义单元格,请覆盖prepareForReuse并将所有属性重置为默认值

override func prepareForReuse() {
    super.prepareForReuse()
    // reset custom properties to default values
}

答案 1 :(得分:0)

单元格用于重用意味着它们只是固定数量的视图,可以再次使用。您必须使用collectionView cellForItemAtIndexPath方法更新要在该单元格中显示的每个项目的单元格。您必须将其放在数据源中,如对象数组,以便为​​每个项返回正确的值。因此它会记住在项目上显示哪个属性。 可重复使用的单元是必要的,不会使设备内存膨胀并重用相同的视图。

答案 2 :(得分:0)

这是由于CollectionView的单元重用。

你可以在this article

中看到

当一个细胞消失时,它会被重新用作将要出现的新细胞。