2016-01-22 80 views
1

我想雙擊UICollectionViewCell以像OkCupid App這樣的配置文件。我已經在集合視圖上應用了Tap Gesture,但它不起作用。雙擊UICollectionViewCell上的手勢?

當我嘗試每次都嘗試雙擊單元格時didSelectCollectionViewCell方法調用。

回答

1

您是否已將UITapGestureRecognizer屬性numberOfTapsRequired:設置爲2?

4

您必須將雙擊手勢識別器添加到集合視圖而不是單元格。在它的行動選擇,你可以決定哪些細胞是雙敲擊

override func viewDidLoad() { 
    var doubleTapGesture: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: "didDoubleTapCollectionView:") 
    doubleTapGesture.numberOfTapsRequired = 2 // add double tap 
    self.collectionView.addGestureRecognizer(doubleTapGesture) 
} 

func didDoubleTapCollectionView(gesture: UITapGestureRecognizer) { 
    var pointInCollectionView: CGPoint = gesture.locationInView(self.collectionView) 
    var selectedIndexPath: NSIndexPath = self.collectionView(forItemAtPoint: pointInCollectionView) 
    var selectedCell: UICollectionViewCell = self.collectionView.cellForItemAtIndexPath(selectedIndexPath) 
    // Rest code 
} 
+1

上面的代碼提供了一個錯誤,無法調用非功能型的價值「UICollectionView!」 –

+0

聽起來像你的collectionview中的錯誤檢查你的collectionview –

+0

以上這些方法不存在,請在回覆時提供有效的可編譯代碼,以免混淆其他初學者開發者。 –

-1

應用UITapGestureUICollectionviewcell代替UIcollectionView和處理定製UICollectionViewCell選擇和設置屬性numberofTapsRequired等於2 .. ...

2

你得到的錯誤:無法調用非函數類型的值'UICollectionView!'是因爲你試圖使用錯誤的方法。

請儘量使用這一個:

var selectedIndexPath: NSIndexPath = self.collectionView.indexPathForItemAtPoint(pointInCollectionView) 
+0

感謝您的幫助 –

+0

真正的天才.... –