Swift 在滚动过程中点击UICollectionView时,是否不再识别点击单元格?

Swift 在滚动过程中点击UICollectionView时,是否不再识别点击单元格?,swift,uicollectionview,uigesturerecognizer,uitapgesturerecognizer,Swift,Uicollectionview,Uigesturerecognizer,Uitapgesturerecognizer,此时会显示一个UICollectionView,在collectionView(uuuxSelectItemAtIndexPath:)中,如果不滚动,则会立即识别其中一个单元格 但是,当滚动UICollectionView并点击某个单元格以停止滚动移动时,将无法再识别该单元格上的后续点击,并且不会触发collectionView(uuux0:didSelectItemAtIndexPath:) 只有当滚动在没有点击的情况下自行停止时,才能识别后续点击 我已经准备好了 collectionView

此时会显示一个
UICollectionView
,在
collectionView(uuuxSelectItemAtIndexPath:)
中,如果不滚动,则会立即识别其中一个单元格

但是,当滚动
UICollectionView
并点击某个单元格以停止滚动移动时,将无法再识别该单元格上的后续点击,并且不会触发
collectionView(uuux0:didSelectItemAtIndexPath:)

只有当滚动在没有点击的情况下自行停止时,才能识别后续点击

我已经准备好了

collectionView.delaysContentTouches = false
collectionView.canCancelContentTouches = false

旁注:

  • 单元格包含一个
    UIImageView
    子视图作为完整封面
  • UICollectionView
    位于
    UITableViewCell
    内的
    UIScrollView
    内,但是对于这两个视图,我都设置了
    scrollEnabled=false
    canCancelContentTouches=false
设置
collectionView.AllowSelection=false
并将UITapegestureRecognitor添加到单元格时,也会发生相同的行为

为什么对细胞的点击不被识别


更新:另一个奇怪的效果是,当
UICollectionView
滚动到其内容之外的区域时,它不会反弹,但会停止滚动,并在释放平移后快速点击单元格时停止查看。在该状态下,无法识别抽头,因此这与上述行为基本相同。

此行为的原因是集合视图位于视图控制器的视图内,该视图显示为(简化,更不用说强制展开):

解决方案是删除整个第一行
makeKeyAndVisible

override func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool {
    return true
}
UIApplication.sharedApplication().windows.last?.makeKeyAndVisible()
let parentViewController = UIApplication.sharedApplication().keyWindow!.rootViewController
parentViewController.presentViewController(self, animated: true, completion: nil)