出问题的代码:1
2
3
4
5for item in (self.collectionView?.indexPathsForSelectedItems())!
{
let cell = self.collectionView!.cellForItemAtIndexPath(item)
cell.selected = false
}
故障描述:设置后,单元格确实处于非选中状态了;但滚动一下滚动条,部分单元格又恢复成选中状态……
优化代码:1
2
3
4for item in (self.collectionView?.indexPathsForSelectedItems())!
{
self.collectionView?.deselectItemAtIndexPath(item, animated: false)
}
问题分析:cell类似于局部变量,滚动到屏幕外,cell就会被释放了,所以设置的selected属性就失效了。
而collectionView因为一直处于前台,所以不会被释放