有效地将点按手势添加到UICollectionViewCell
的子视图的最佳方法是什么?dequeueReusableCellWithReuseIdentifier
已经附加了一堆默认手势识别器(例如UIScrollView
)。我是否需要检查并查看我的一个自定义手势是否已附加(scrollView.gestureRecognizers
),如果没有,则添加它?我需要我的应用程序滚动尽可能顺利,因此检查的性能和已创建资源的有效重用是关键。此代码全部发生在cellForItemAtIndexPath
内。感谢。
答案 0 :(得分:6)
我找到了一种方法,只需要一个共享的轻击手势识别器对象,并将设置代码从cellForItemAtIndexPath
(用户滚动后频繁调用)移动到{{1} (在加载视图时调用一次)。这是代码:
viewDidLoad
答案 1 :(得分:1)
以下是可能的设计解决方案的粗略,非常简单的概述:您可以继承UICollectionViewCell
并覆盖其初始化方法,以将手势识别器添加到其子视图中。此外,如果您不希望单元格“知道”手势识别器,则可以创建数据源对象符合的协议。单元对象将在适当的时间调用“设置”协议方法。
希望这有帮助!