UICollectionView与多选不选择除项目的十几家(UICollectionView wit

2019-07-04 03:16发布

当使用UICollectionViewallowsMultipleSelection设置为YES只有十几个人的项目是可选的。 UICollectionViewDelegate停止调用collectionView:didSelectItemAtIndexPath:

这似乎很随意。 您可以选择几个项目,向下滚动,选择更多一些,并在某些时候你没能选择任意多个项目。

当细胞变小,你似乎能够选择更多的项目。 该小区越大,较少的项目你能停止工作之前选择。

Answer 1:

我发现,虽然我以前的答复工作,可以通过调用不超引起的。 虽然文件UICollectionReusableView没有提到这一点,文档UITableViewCell ,它具有相同的方法,确实。

- (void)prepareForReuse
{
    [super prepareForReuse]
    // Your code here.
}

老答案:


这可能与一个bug UICollectionView

发生了什么事是先前选定的被重复使用和维护的选中状态的细胞。 收集观点并没有设定selected为“NO”。

解决的办法是在所选择的状态在复位prepareForReuse细胞:

- (void)prepareForReuse
{
    self.selected = NO;
}

如果选择重用细胞,集合视图将设置selected为“YES”后prepareForReuse被调用。

这是后话了UICollectionView应该做它自己。 值得庆幸的解决办法很简单。 不幸的是我通过跟踪我自己的选择状态度过解决此bug的工作了大量的时间。 我不知道为什么发生,直到我工作的较小的细胞另一个项目。



文章来源: UICollectionView with multi-select won't select more than a dozen of items