2015-11-06 72 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