【发布时间】:2018-01-09 23:38:00
【问题描述】:
好吧,我的collectionView:didSelectItemAtIndexPath: 没有被调用。
我已经阅读了很多答案,没有一个对我有帮助。
没有视图可以触摸并阻止点击(我已经仔细检查)
于是我开始探索:
集合视图有 3 个 GestureRecognizers:
UIScrollViewDelayedTouchesBeganGestureRecognizerUIScrollViewPanGestureRecognizer_UIDragAutoScrollGestureRecognizer
如您所见,它们都不是UITapGestureRecognizer
根据docs:
当用户成功选择集合视图中的一个项目时,集合视图调用此方法。当您以编程方式设置选择时,它不会调用此方法。
好吧,我应该自己添加一个 TapGesture 识别器吗?并调用委托方法?我不这么认为。 Apple 做了一些事情,但那件事不起作用!
【问题讨论】:
-
您不需要自己添加点击手势识别器并手动调用委托方法。您必须采取措施阻止集合视图不响应选择。也许发布更多实际的设置代码,以便我们检查。
-
“TapGesture 识别器我自己”正如上面所说的那样。
-
@UpholderOfTruth 我知道我会发布代码,但你会看到我没有做任何事情来阻止点击 collectionView 单元格
-
一定有什么东西阻止了收集单元的选择。您无需添加自己的手势识别器即可使其工作,如果您添加了任何可能导致问题的方法。您需要做的就是连接数据源(以查看单元格)并连接代理(以响应操作)。
-
@UpholderOfTruth 我已经连接了委托和数据源,它们工作得很好,为了证明这一点,我使用了 collectionView 的 scrollViewDelegate 方法,这也很有效,collectionView 滚动和显示数据,只是选择不起作用,我没有添加任何手势识别器,我希望明天有时间用相关信息和代码更新问题
标签: ios swift uicollectionview uigesturerecognizer selection