UICollectionView选择不会持续

Zap*_*hod 2 objective-c selection ios uicollectionview uicollectionviewcell

我有一个UICollectionView像工具选择容器一样使用的东西.你有很多工具(单元格),当你选择一个工具时,取消选择前一个选择,依此类推......你一次只能选择一个工具.

问题是我无法设法选择单元格.当我点击单元格时,collectionView:didSelectItemAtIndexPath:会调用它.然后我重新加载选定的单元格来改变它的外观(我改变alpha了图像)[collectionView reloadItemsAtIndexPaths:@[indexPath]].

好吧,重新加载单元格确定,除了一个该死的东西:在collectionView:cellForItemAtIndexPath:单元格中永远不会将selected属性设置为YES!所以我永远不能改变它,alpha因为我不知道什么时候我必须画一个选定的单元格.

更糟糕的[collectionView indexPathsForSelectedItems]是:永远是空的!

我甚至没有提到collectionView:didDeselectItemAtIndexPath:从未被称为......

好吧,如果有人能帮我理解发生的事情,请提前感谢...

dal*_*ook 6

当您调用reloadItemsAtIndexPaths:集合视图时,会丢弃这些单元格并创建新单元格,从而丢弃单元格的选定状态.

我建议几个不同的选择:

1.)在collectionView:didSelectItemAtIndexPath:调用cellForItemAtIndexPath:中获取对所选单元格的引用并在那里更新它的外观.

2.)(我最喜欢的)UICollectionViewCell如果你还没有,请使用自定义子类,并覆盖该方法setSelected:.在选择单元格时,您将收到通知,您可以从子类中更新外观.