在Collectionview.reloaddata()之后无法选择UICollectionViewcell

时间:2017-08-31 09:48:36

标签: ios swift uicollectionview

我有一个包含三个数据源的集合视图以及您可以选择或取消选择的项目。

"act_date >='2016-10-01'"

我首先选择一个类别,然后为collectionview加载一个数据源和switch atIndex { case 0: print("Fashion Category") datasource = categories as! [Category] categoryIndex = 0 //update states for data from Firebase depending on category checkCategorieStates(category: "fashion") categories = Categories().categories headerView.categoryButton.setTitle("Fashion", for: .normal) case 1: print("Food Category") datasource = foodCategories as! [Category] categoryIndex = 1 //update states for data from Firebase depending on category checkCategorieStates(category: "food") categories = foodCategories headerView.categoryButton.setTitle("Food", for: .normal) case 2: print("Bar Cateogry") datasource = barCategories as! [Category] categoryIndex = 2 //update states for data from Firebase depending on category checkCategorieStates(category: "drinks") categories = barCategories headerView.categoryButton.setTitle("Drinks", for: .normal) default: print("Some other category") } 。 然后我选择几个项目或取消选择它们。

reloadData()

然后我回去。创建一个空的数据源和collectionview.reloadData() collectionview.isScrollEnabled = true ,以便它不显示任何项目。

然后我选择另一个类别并加载另一个数据源,并为collectionview加载reloadData()以显示这些项目。

但现在我不能再选择新项了。

我认为问题在于重用UICollectionviewcells,因为我第一次选择的单元格越多,reloadData()

之后我就不能再选择的单元格了。

Example

1 个答案:

答案 0 :(得分:0)

以下是

中的解决方案

collectionView(_ collectionView: UICollectionView,cellForItemAt indexPath: IndexPath) -> UICollectionViewCell

我添加了以下两行来取消选择要重复使用的单元格:

cell.isSelected = false
collectionView.deselectItem(at: indexPath, animated: true)