具有多选的UICollectionView不会选择十几个项目

时间:2012-11-25 23:00:07

标签: ios ios6 uicollectionview uicollectionviewcell

使用UICollectionView并将allowsMultipleSelection设置为YES时,只能选择十几个项目。 UICollectionViewDelegate停止致电collectionView:didSelectItemAtIndexPath:

似乎非常随机。您可以选择一些项目,向下滚动,再选择一些项目,在某些时候您无法再选择任何项目。

当单元格较小时,您似乎可以选择更多项目。单元格越大,在停止工作之前就可以选择的项目越少。

1 个答案:

答案 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。在我使用较小的单元格进行另一个项目之前,我没有意识到为什么正在发生。