我一直试图让我的UICollectionView
对单击和双击的反应不同,但我发现的所有答案似乎都表明这不可行,因为首先会识别单击。它适用于非常慢的水龙头,但任何更快的东西总是启动默认的手势识别器(如果有人让这个工作,我很想知道)......
所以无论如何,我现在已经在我的UICollectionViewCell
(它有自己的类和NIB文件)中放置了按钮。
问题是:
在collectionView的UIViewController
中使用按钮的最佳方法是什么?
我目前在UICollectionViewCell
的子类的标头中有一个协议,并将我的viewController声明为委托并实现了所需的协议功能。
在collectionView:cellForItemAtIndexPath:
中,我将VC设置为单元格的委托。
一切正常,但似乎有点啰嗦,也许不是一个好方法。
我想到的另一种方式是,而不是使用代理人只需在addTarget:Action:
中的UICollectionViewCell
的属性上调用collectionView:cellForItemAtIndexPath:
。
这似乎更简单,但代表模式在我看来更合适。
任何和所有建议都会更好,为什么,以及任何更合适的替代方案受到欢迎!
感谢。
答案 0 :(得分:2)
你正在使用委托模式做正确的思考。视图的任何操作的最终负责对象是显示这些视图的viewController。因此,将它用作您单元格协议的委托是恰到好处。
答案 1 :(得分:-1)
创建UICollectionViewCell
的自定义子视图,并将您的按钮放在initWithFrame
方法中。声明该按钮是公开的,以便您稍后可以在uicollectionviewcontroller
或uicollectionview
中使用它,如果以编程方式创建的话。