【问题标题】:Horizontal pan gesture inside UIScrollViewUIScrollView 内的水平平移手势
【发布时间】:2016-09-07 22:12:56
【问题描述】:

我有一个带有垂直滚动视图的 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消息的相同方面,如果我在气泡中从右向左滑动我可以打开消息详细信息,但如果我垂直滑动我可以滚动滚动视图!

有什么想法吗?

【问题讨论】:

  • 您可以将滑动添加到 self.view 无需为每个视图添加
  • 我如何识别当前单元格?

标签: objective-c swift uiscrollview uicollectionview swipe


【解决方案1】:

您可以将 Gesture 赋予 self .view 而不是单个单元格

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

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

let point = swipe .locationInView(self.view)

let indexPath = collectionview.indexPathForItemAtPoint(point)

【讨论】:

    猜你喜欢
    • 2013-08-22
    • 2012-09-23
    • 1970-01-01
    • 2011-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-20
    • 1970-01-01
    相关资源
    最近更新 更多