Ios 检测UIScreenedGegestureRecognitor和失败的UIPangestureRecognitor

Ios 检测UIScreenedGegestureRecognitor和失败的UIPangestureRecognitor,ios,uitableview,swift,uigesturerecognizer,Ios,Uitableview,Swift,Uigesturerecognizer,在我的ViewController中,我有一个用于切换视图的UIScreenedGegestureRecognitor,还有一个带有自定义UITableViewCell的UITableView。在这个定制的UITableViewCell是一个用于扫描单元格的uipangestruerecognizer 我添加了手势识别器:应与手势识别器同时识别:,这样两种手势都能工作,手势识别器应开始,以防止垂直滚动的冲突 问题是,我如何赋予UIScreenedGegestureRecognitor优先级?当我

在我的ViewController中,我有一个用于切换视图的
UIScreenedGegestureRecognitor
,还有一个带有自定义
UITableViewCell
UITableView
。在这个定制的
UITableViewCell
是一个用于扫描单元格的
uipangestruerecognizer

我添加了
手势识别器:应与手势识别器同时识别:
,这样两种手势都能工作,
手势识别器应开始
,以防止垂直滚动的冲突

问题是,我如何赋予
UIScreenedGegestureRecognitor
优先级?当我在屏幕边缘滑动时,我希望在不平移单元格的情况下切换视图。我想我应该使用委托方法,但到目前为止,我读得越多,就越感到困惑

自定义UITableViewCell中的代码

override func viewDidload() {
    var recognizer = UIPanGestureRecognizer(target: self, action: "handlePan:")
    recognizer.delegate = self
    addGestureRecognizer(recognizer)
}

override func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool {
    return true
}

override func gestureRecognizerShouldBegin(gestureRecognizer: UIGestureRecognizer) -> Bool {
    if let panGesture = gestureRecognizer as? UIPanGestureRecognizer {
        let velocity = panGesture.velocityInView(superview!)
        if fabs(velocity.x) > fabs(velocity.y) { return true }
        return false
    }
    return false
}
视图控制器:

override func viewDidLoad() {
    let rightScreenEdgeRecognizer = EdgePanGesture(target: self, action: "changeView:")
    rightScreenEdgeRecognizer.edges = .Right
    view.addGestureRecognizer(rightScreenEdgeRecognizer)
}
我还尝试通过以下方式识别识别器:

gestureRecognizer.isKindOfClass(UIScreenEdgePanGestureRecognizer)


但是都失败了。

结果证明我用
手势识别器看的方向是正确的?UIScreenedGepangEstureRecognitizer
,但我应该使用
其他GestureRecognitizer
而不是
GestureRecognitizer

override func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRequireFailureOfGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool {
    if let recognizer = otherGestureRecognizer as? UIScreenEdgePanGestureRecognizer {
        return true
    }
    return false
}
override func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRequireFailureOfGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool {
    if let recognizer = otherGestureRecognizer as? UIScreenEdgePanGestureRecognizer {
        return true
    }
    return false
}