如何向dequeueReusableCellWithReuseIdentifier返回的UICollectionViewCell子视图添加点击手势

时间:2014-05-26 19:22:44

标签: ios objective-c uicollectionview

有效地将点按手势添加到UICollectionViewCell的子视图的最佳方法是什么?dequeueReusableCellWithReuseIdentifier已经附加了一堆默认手势识别器(例如UIScrollView)。我是否需要检查并查看我的一个自定义手势是否已附加(scrollView.gestureRecognizers),如果没有,则添加它?我需要我的应用程序滚动尽可能顺利,因此检查的性能和已创建资源的有效重用是关键。此代码全部发生在cellForItemAtIndexPath内。感谢。

2 个答案:

答案 0 :(得分:6)

我找到了一种方法,只需要一个共享的轻击手势识别器对象,并将设置代码从cellForItemAtIndexPath(用户滚动后频繁调用)移动到{{1} (在加载视图时调用一次)。这是代码:

viewDidLoad

答案 1 :(得分:1)

以下是可能的设计解决方案的粗略,非常简单的概述:您可以继承UICollectionViewCell并覆盖其初始化方法,以将手势识别器添加到其子视图中。此外,如果您不希望单元格“知道”手势识别器,则可以创建数据源对象符合的协议。单元对象将在适当的时间调用“设置”协议方法。

希望这有帮助!