2016-08-11 133 views
2

我有一個UICollectionView,我想將平移手勢添加到它的Cells/Items。當我以通常的方式添加手勢UICollectionView沒有滾動。將平移手勢添加到UICollectionView單元 - IOS/Swift

這是我的錯在這裏添加手勢

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { 

    let cell:UICollectionViewCell = collectionView.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath) 

    let panGesture = UIPanGestureRecognizer(target: self, action: #selector(CaptureViewController.pagesCollectionViewItemPanEvent(_:))) 
    cell.addGestureRecognizer(panGesture) 

    return cell; 
} 

有什麼事?有人可以告訴我一種方法來完成我的工作。任何幫助將不勝感激。

+0

檢查這個答案我希望它幫你:) [斯威夫特的手勢(http://stackoverflow.com/a/18848817/6628878) –

+0

嘗試擴展您的收藏視圖對象從,有實現觸摸開始觸摸事件的方法。然後處理您的pan事件,然後實現[super touchevents]方法,以便現有的collectionview滾動不會產生影響。 – Bharath

回答

0

只是一個建議,我沒有測試:

創建一個自定義單元格:

class PanCell: UICollectionViewCell { 
    override func awakeFromNib() { 
     let panGesture = UIPanGestureRecognizer(target: self, action: #selector(self.pagesCollectionViewItemPanEvent(_:))) 
     self.addGestureRecognizer(panGesture) 
    } 
} 

,您可以使用代表團向CaptureViewController

+0

爲單元格創建自定義類將解決我的問題?對不起,我沒有得到這個。你能解釋一下:) – GMHSJ

+0

創建一個自定義的單元格,你可以管理單元格內的手勢,我不知道是否要解決你的問題,但我會幫助你區分類的行爲,這是一個很好的開始點你的問題。 –

+0

好的明白了。將嘗試它。謝謝bro – GMHSJ

1

您應該將手勢添加到集合視圖而不是單元本身。 喜歡的東西...

let panGesture = UIPanGestureRecognizer(target: self, action: "handlePanGesture:") 
collectionView.addGestureRecognizer(panGesture) 

func handlePanGesture(gesture: UIPanGestureRecognizer) { 

    let locationInView = gesture.locationInView(collectionView) 
    ... 
}