我以编程方式创建了一个UICollectionView。它的单元格还包含以编程方式创建的UILabel,UIView和UIImageView。包含此集合视图的视图也是以编程方式创建的。我已经设置了它的数据源并委托给自己。 label,view和image视图的userInteractionEnabled属性也已设置为false。 collection视图的allowsMultipleSelection属性也设置为true。
问题是每当我触摸单元格时都会调用didSelectItemAtIndexPath函数。但是从未调用didDeselectItemAtIndexPath函数。我试图根据需要将cell.selected属性设置为true / false,但没有帮助解决我的问题。
请帮忙!!我花了很多时间搜索它,但没有结果! 谢谢你的回复。
答案 0 :(得分:0)
嗯,这两个函数都是根据符合它的对象中的UICollectionViewDelegate调用的。我强烈建议你检查这一点:
-collectionView:didSelectItemAtIndexPath:
或-collectionView:didDeselectItemAtIndexPath:
并将简单NSLog()
输出或断点allowsSelection
设置为YES
重要提示
1.如果您调用诸如-selectItemAtIndexPath:animated:scrollPosition:
或-deselectItemAtIndexPath:animated:
之类的UICollectionView方法,则任何此操作都不会被触发,也不会收到通知。如您所记,与UITableViewClass相同
2. UICollectionView属性allowsMultiplySelection
允许您在收集单元状态之间切换
3.创建元素的位置无关紧要。它只需要正确设置。
希望这可以帮到你。