UICollectionView:使用其他手势后未调用 didSelectItemAtIndexPath

Posted

技术标签:

【中文标题】UICollectionView:使用其他手势后未调用 didSelectItemAtIndexPath【英文标题】:UICollectionView: didSelectItemAtIndexPath not called after other gestures are used 【发布时间】:2015-02-27 15:38:18 【问题描述】:

我有一个带有 PinchLongPress 手势的 UICollectionViewController。手势的委托是 UICollectionViewController。

加载视图时,如果我选择了一个单元格,则按预期调用 didSelectItemAtIndexPath。

但是,如果我然后捏或“长按”一个单元格,现在 didSelectItemAtIndexPath 不再被调用

我的临时解决方案是用一个Tap手势识别器来代替didSelectItemAtIndexPath,效果很好。

没有办法让 didSelectItemAtIndexPath 工作吗? 当 UICollectionView 已经处理了它时,添加一个手势只是感觉不对。

谢谢

【问题讨论】:

【参考方案1】:

确保在将手势识别器添加到视图之前,请确保布尔属性“cancelTouchesInView”设置为 false。这可能是因为手势已被识别,因此它忽略了传递到视图的触摸,导致单元格选择方法不被调用。 Link to property.

【讨论】:

我应该提到我已经尝试过了。没有更好的效果:/

以上是关于UICollectionView:使用其他手势后未调用 didSelectItemAtIndexPath的主要内容,如果未能解决你的问题,请参考以下文章

重新加载数据后未调用 UICollectionView 数据源方法

重新加载数据后根据要求更新后未显示 uicollectionview 单元格

在 numberOfItemsInSection 返回非零项目编号后未调用 UICollectionView cellForItemAtIndexPath

如何禁用 UICollectionView 的手势滑动

如何捕捉 UICollectionView 上的手势?

通过捏合手势缩放 UICollectionView