将Pan Gesture添加到UICollectionView Cell - IOS / Swift

时间:2016-08-11 17:04:38

标签: ios swift uicollectionview uipangesturerecognizer

我有一个UICollectionView,我想在其Cells / Items中添加平移手势。当我以通常的方式添加手势时,UICollectionView不会滚动。

这就是我添加手势的方式

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;
}

这里有什么不对吗?有人可以告诉我一种方法来完成我的工作。任何帮助将受到高度赞赏。

2 个答案:

答案 0 :(得分:1)

您应该将手势添加到集合视图中,而不是添加到单元格本身。 有点像...

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

func handlePanGesture(gesture: UIPanGestureRecognizer) {

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

答案 1 :(得分:0)

只是提案,我没有对其进行测试:

创建自定义单元格:

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

您可以使用该委派通知CaptureViewController