任务
向UICollectionView
添加单击手势,不妨碍单元格选择。
我想在 collectionView 的无单元格部分进行一些其他点击。
代码
使用 XCode8、Swift 3。
override func viewDidLoad() {
...
collectionView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(tap)))
}
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
print(indexPath)
}
func tap(sender: UITapGestureRecognizer){
print("tapped")
}
结果
是的,它现在妨碍了。当您点击单元格时,它会记录“已点击”。
分析
- 我检查了 collectionView 和单元格的 hitTest 返回值。两者都返回了被点击的 cell,这意味着它们形成了 Cell -> CollectionView 的响应者链
- 手机上没有手势
- collectionView 上的 3 个手势,似乎没有人使用单元格选择
- UIScrollViewDelayedTouchesBeganGestureRecognizer
- UIScrollViewPanGestureRecognizer
- UITapGestureRecognizer
- callStack,似乎单元格选择具有与手势的目标 Action 模式不同的堆栈跟踪。
- 双击手势与单元格选择一起使用。
问题
找不到更多踪迹。关于如何实现细胞选择或完成此任务的任何想法?
最佳答案
每当你想添加一个手势识别器,但又不想从目标 View 中窃取触摸时,你应该设置 UIGestureRecognizer.cancelsTouchesInView
为您的 gestureRecognizer
实例设置为 false。
关于ios - 如何在保持单元格选择的同时向 UICollectionView 添加点击手势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40365971/