使用UICollectionView
并将allowsMultipleSelection
设置为YES时,只能选择十几个项目。 UICollectionViewDelegate
停止致电collectionView:didSelectItemAtIndexPath:
。
似乎非常随机。您可以选择一些项目,向下滚动,再选择一些项目,在某些时候您无法再选择任何项目。
当单元格较小时,您似乎可以选择更多项目。单元格越大,在停止工作之前就可以选择的项目越少。
答案 0 :(得分:16)
我发现虽然我之前的回答有效,但可能是因为没有打电话给超级。虽然UICollectionReusableView
的文档未提及此问题,但UITableViewCell
的文档具有相同的方法。
- (void)prepareForReuse
{
[super prepareForReuse]
// Your code here.
}
旧答案:
这可能是UICollectionView
的错误。
正在发生的事情是先前选择的单元格正在被重用并保持选定的状态。集合视图未将selected
设置为“NO”。
解决方案是重置单元格prepareForReuse
中的选定状态:
- (void)prepareForReuse
{
self.selected = NO;
}
如果选择了重复使用的单元格,则在调用selected
后,集合视图会将prepareForReuse
设置为“YES”。
这是UICollectionView
应该自己做的事情。谢天谢地,解决方案很简单。不幸的是,我通过跟踪自己的选择状态花了很多时间来解决这个bug。在我使用较小的单元格进行另一个项目之前,我没有意识到为什么正在发生。