gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-10-31 23:44:03 25 4
gpt4 key购买 nike

UICollectionView 出现,无需滚动触摸其中一个单元格即可在 collectionView(_:didSelectItemAtIndexPath:) 中立即识别。

然而,当滚动 UICollectionView 并点击一个单元格以停止滚动运动时,后续对该单元格的点击将不再被识别,并且 collectionView(_:didSelectItemAtIndexPath:) 是未触发。

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

我已经设置好了

collectionView.delaysContentTouches = false
collectionView.canCancelContentTouches = false

override func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool {
return true
}

旁注:

  • 单元格包含一个 UIImageView subview 作为完整覆盖。
  • UICollectionView 位于 UITabelViewCell 内,而 UITabelViewCell 位于 UIScrollView 内,但是对于两者我都设置了 scrollEnabled = falsecanCancelContentTouches = false

设置 collectionView.allowsSelection = false 并向单元格添加 UITapeGestureRecognizer 时会发生相同的行为。

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

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

最佳答案

此行为的原因是 Collection View 位于 View Controller 的 View 内,该 View Controller 呈现(简化,不要介意强制解包):

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

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

关于swift - 在滚动期间点击时,UICollectionView 不再识别点击单元格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36676314/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com