2015-11-06 24 views
0

当UICollectionView单元格被选中时,App需要获取屏幕位置(x,y)。如何检测UICollectionView上的屏幕位置?

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

任何方式来获得两个行动在同一时间工作?

谢谢。

+0

你是什么意思的“手势或窃听”?另一个手势是什么? – beyowulf

+0

@beyowulf这意味着当手势'shouldReceiveTouch'设置为true,手势被调用,并且收集单元'didSelectItemAtIndexPath'不会。当它被设置为false时,收集单元格'didSelectItemAtIndexPath'被调用,手势不会。 – jdleung

回答

0

我不知道为什么你需要这两个人才能射击。无论你在做什么,你都可以将代码移到另一个。但要回答你的问题,你可以做类似的事情。

请勿使用didSelectItemAtIndexPath。将该代码移动到gestureRecognizer中。如果您需要为龙头的indexPath这样说:

let tapLocation = gesture.locationInView(self.view) 
let indexPath = collectionView.indexPathForItemAtPoint(tapLocation) 

如果你不喜欢,你可以尝试实现

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

并返回true,看看是否能允许这两种方法是调用。

+0

第二个不起作用,但第一个很好!非常感谢! – jdleung