在滚动期间点击时,UICollectionView不再识别单元格?

时间:2016-04-17 12:12:38

标签: swift uicollectionview uigesturerecognizer uitapgesturerecognizer

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 = falsecollectionView.allowsSelection = false

设置UICollectionView并向单元格添加UITapeGestureRecognizer时会出现相同的行为。

为什么单元格上的点击无法识别?

更新:另一个奇怪的效果是,当 this.source = context.createMediaElementSource(song); this.source.connect(context.destination); } MyAudio.prototype.play = function(){ this.source.mediaElement.play(); }; return MyAudio; }); 滚动到其内容之外的区域以便它会反弹时,它不会反弹但会停止滚动并停止在释放平底锅后快速轻拍细胞时查看。在该状态下,没有识别出抽头,因此这基本上与上述相同。

1 个答案:

答案 0 :(得分:0)

这种行为的原因是集合视图位于视图控制器的视图内部(简化,更不用说强制解包)了:

UIApplication.sharedApplication().windows.last?.makeKeyAndVisible()
let parentViewController = UIApplication.sharedApplication().keyWindow!.rootViewController
parentViewController.presentViewController(self, animated: true, completion: nil)

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