ios – 在点击非可选单元格后取消选择先前选择的UICollectionViewCells

ios – 在点击非可选单元格后取消选择先前选择的UICollectionViewCells,第1张

概述我正在实现一个启用了多个选择的UICollectionView. 我的一些细胞是可选择的,有些则不是.这是一系列事件: >我通过点击它们并选择YES来选择几个单元格 > shouldHighlightItemAtIndexPath: > shouldSelectItemAtIndexPath: >我尝试通过点击它来选择一个不可选择的单元格(通过将NO返回给shouldSelectItemAtInd 我正在实现一个启用了多个选择的UICollectionVIEw.

我的一些细胞是可选择的,有些则不是.这是一系列事件:

>我通过点击它们并选择YES来选择几个单元格

> shouldHighlightItemAtIndexPath:
> shouldSelectItemAtIndexPath:

>我尝试通过点击它来选择一个不可选择的单元格(通过将NO返回给shouldSelectItemAtIndexPath来实现不可选择的方面:)
>结果:取消选择所有选定的单元格,并在它们上调用dIDdeselectItemAtIndexPath:.注意:shoulddeselectItemAtIndexPath:未被调用.

预期结果:没有任何反应.

这是正常的行为吗?我在文档中找不到任何内容.如果是这样,我怎么能不去取消我的细胞呢?

解决方法 我不得不面对完全相同的问题,使用collectionVIEw:shoulddeselectItemAtIndexPath:没有被调用.我的解决方案包括手动重新选择当前选定的单元格,如果我点击一个不可选择的单元格:
- (BOol)collectionVIEw:(UICollectionVIEw *)collectionVIEw shouldSelectItemAtIndexPath:(NSIndexPath *)indexPath{    BOol isSelectable = /* decIDe if currently tapped cell should be selectable */;    NSIndexPath *selectedItemIndexPath = /* NSIndexPath of the current selected cell in the collection vIEw,set in collectionVIEw:dIDSelectItemAtIndexPath: */;    if (!isSelectable) {        // the cell isn't selectable,we have to reselect the prevIoUsly selected cell that has lost selection in the meanwhile        // without reloading first the cell the selection is not working...        [collectionVIEw reloadItemsAtIndexPaths:@[selectedItemIndexPath]];        [collectionVIEw selectItemAtIndexPath:selectedItemIndexPath animated:YES scrollposition:UICollectionVIEwScrollpositionNone];    }    return isSelectable;}

如果您的集合视图正在滚动(隐藏当前选定的单元格),请记住重新选择collectionVIEw:cellForItemAtIndexPath:中的单元格.

我不太喜欢这个解决方案,它太“Hacky”,但它确实有效.我希望在collectionVIEw中执行所有逻辑:shoulddeselectItemAtIndexPath:但它没有被调用,我不明白为什么.

总结

以上是内存溢出为你收集整理的ios – 在点击非可选单元格后取消选择先前选择的UICollectionViewCells全部内容,希望文章能够帮你解决ios – 在点击非可选单元格后取消选择先前选择的UICollectionViewCells所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1114958.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存