collectionView超过一屏后,选择/去选的问题

出问题的代码:

1
2
3
4
5
for item in (self.collectionView?.indexPathsForSelectedItems())!
{
let cell = self.collectionView!.cellForItemAtIndexPath(item)
cell.selected = false
}

故障描述:设置后,单元格确实处于非选中状态了;但滚动一下滚动条,部分单元格又恢复成选中状态……

优化代码:

1
2
3
4
for item in (self.collectionView?.indexPathsForSelectedItems())!
{
self.collectionView?.deselectItemAtIndexPath(item, animated: false)
}

问题分析:cell类似于局部变量,滚动到屏幕外,cell就会被释放了,所以设置的selected属性就失效了。
而collectionView因为一直处于前台,所以不会被释放

Contents
,