如何在UICollectionView上检测屏幕位置?

时间:2015-11-06 02:58:48

标签: ios uicollectionview touch gesture tap

当选择UICollectionView单元格时,应用程序需要获取屏幕位置(x,y)。

我曾尝试touchesBegan,但无法正常工作。我还使用UITapGestureRecognizergestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldReceiveTouch touch: UITouch) -> Bool进行了测试,当设置truefalse时,它可以使用手势或点击单元格,而不是两者。

任何方法可以让两个动作同时发挥作用吗?

感谢。

1 个答案:

答案 0 :(得分:0)

我不确定为什么你需要两个人开火。无论你在做什么,你都可以将代码移到另一个代码上。但要回答你的问题,你可以做类似的事情。

不要使用didSelectItemAtIndexPath。将该代码移动到gestureRecognizer中。如果你需要tapPath的indexPath,请说:

let tapLocation = gesture.location(in: self.view)
let indexPath = collectionView.indexPathForItem(at: tapLocation)

如果您不喜欢,可以尝试实施

optional func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer,
shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool

返回true以查看是否允许调用这两种方法。