繁体   English   中英

在编程创建的UICollectionView中未调用didDeselectItemAtIndexPath函数

[英]didDeselectItemAtIndexPath function is not being called in programmatically created UICollectionView

我已经以编程方式创建了UICollectionView。 它的单元格还包含以编程方式创建的UILabel,UIView和UIImageView。 包含此集合视图的视图也已通过编程方式创建。 我已经将其数据源设置为self。 标签,视图和图像视图的userInteractionEnabled属性也已设置为false。 集合视图的allowMultipleSelection属性也设置为true。

问题是,每当我触摸单元格时,就会调用didSelectItemAtIndexPath函数。 但是didDeselectItemAtIndexPath函数从不调用。 我试图根据需要将cell.selected属性设置为true / false,但对我的问题没有帮助。

请帮忙!! 我花了很多时间搜索它,但没有结果! 感谢您的回复。

好吧,这两个函数都是根据符合它的对象中的UICollectionViewDelegate调用的。 我强烈建议您检查以下几点:

  1. 创建自定义collectionView后,不要忘记为其设置委托属性。
  2. 在您的委托对象中实现此方法。 -collectionView:didSelectItemAtIndexPath:-collectionView:didDeselectItemAtIndexPath:并放置简单的NSLog()输出或断点
  3. 不要忘记将UICollectionView属性的allowsSelection设置为YES
  4. 面对结果

重要笔记
1.如果调用UICollectionView方法,例如-selectItemAtIndexPath:animated:scrollPosition:-deselectItemAtIndexPath:animated: 则不会触发任何此操作, 也不会收到通知。 您还记得,它与UITableViewClass中的一样
2. UICollectionView属性allowsMultiplySelection允许您在收集单元状态之间切换
3.在哪里创建元素都没有关系。 只需正确设置即可。

希望这对您有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM