UIScrollView内的水平平移手势

时间:2016-05-12 08:01:08

标签: objective-c swift uiscrollview uicollectionview swipe

我有一个带有垂直scrollView的UIcollectionView,每行包含一个UIView,在uiview中我已经以这种方式附加了一个平移手势:

let swipe = UIPanGestureRecognizer(target: self, action: "swipe:")
cell.addGestureRecognizer(swipe)

这是方法:

func swipe(sender: UIPanGestureRecognizer) {
        let point = sender.velocityInView(sender.view!)
        switch sender.state {
        case .Ended:
            if point.x < 0 {
                selectedMessageForDetails = sender.message!
                self.performSegueWithIdentifier("newView", sender: nil)
            }
        default:break
        }
}

一切正常,但是当我在单元格中水平滑动时,会调用滑动方法,但如果我垂直滑动,滚动视图不起作用,我该如何解决?

我想要whatsapp消息的相同方面,如果我在泡泡中从右向左滑动我可以打开消息详细信息,但如果我向右滑动我可以滚动滚动视图!

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

你可以给自己的手势。不要查看单个单元格

    let swipe = UIPanGestureRecognizer(target: self, action: "swipe:")
    self.view.addGestureRecognizer(swipe)

标识您可以在操作方法中使用的当前单元格

let point = swipe .locationInView(self.view)

let indexPath = collectionview.indexPathForItemAtPoint(point)