【发布时间】:2016-04-17 12:12:38
【问题描述】:
UICollectionView 出现,并且无需滚动触摸其中一个单元格即可立即在 collectionView(_:didSelectItemAtIndexPath:) 中识别。
但是,当滚动 UICollectionView 并点击单元格以停止滚动移动时,不再识别单元格上的后续点击,并且不会触发 collectionView(_:didSelectItemAtIndexPath:)。
只有在没有点击的情况下滚动自行停止时,才会识别后续点击。
我已经设置好了
collectionView.delaysContentTouches = false
collectionView.canCancelContentTouches = false
和
override func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool {
return true
}
旁注:
- 单元格包含一个
UIImageView子视图作为完整封面。 -
UICollectionView位于UITabelViewCell内部,后者位于UIScrollView内部,但我已经设置了scrollEnabled = false和canCancelContentTouches = false。
在设置 collectionView.allowsSelection = false 并向单元格添加 UITapeGestureRecognizer 时会发生相同的行为。
为什么无法识别单元格上的点击?
更新:另一个奇怪的效果是,当UICollectionView 滚动到其内容之外的区域以使其反弹时,它不会反弹而是停止滚动并停止查看释放平底锅后快速敲击一个单元格。在那种状态下,不会识别任何水龙头,因此这与上述行为基本相同。
【问题讨论】:
标签: swift uicollectionview uigesturerecognizer uitapgesturerecognizer