Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS,Swift 2.3-在同一UIView上启用UIPanGesture,但禁用UICapsive_Ios_Uiview_Uitapgesturerecognizer_Uipangesturerecognizer_Swift2.3 - Fatal编程技术网

iOS,Swift 2.3-在同一UIView上启用UIPanGesture,但禁用UICapsive

iOS,Swift 2.3-在同一UIView上启用UIPanGesture,但禁用UICapsive,ios,uiview,uitapgesturerecognizer,uipangesturerecognizer,swift2.3,Ios,Uiview,Uitapgesturerecognizer,Uipangesturerecognizer,Swift2.3,我有一个UIView(蓝色),我想在上面检测手势识别器。我想捕捉这个视图上的平移和点击手势,但当用户点击这个视图时,我想“传递”这个触摸/点击到父视图(绿色) 我的蓝色视野: class SwipeView: UIView, UIGestureRecognizerDelegate { var tap: UITapGestureRecognizer! var pan: UIPanGestureRecognizer! func setup() { tap

我有一个UIView(蓝色),我想在上面检测手势识别器。我想捕捉这个视图上的平移和点击手势,但当用户点击这个视图时,我想“传递”这个触摸/点击到父视图(绿色)

我的蓝色视野:

class SwipeView: UIView, UIGestureRecognizerDelegate {

    var tap: UITapGestureRecognizer!
    var pan: UIPanGestureRecognizer!

    func setup() {
        tap = UITapGestureRecognizer(target: self, action: #selector(Swipe.onTap))
        tap.delegate = self
        tap.enabled = true
        self.addGestureRecognizer(tap)

        pan = UIPanGestureRecognizer(target: self, action: #selector(Swipe.onPan))
        pan.delegate = self
        pan.enabled = true
        self.addGestureRecognizer(pan)

        self.backgroundColor = .blueColor()
    }

    func onTap() {
    }

    func onPan() {
    }

    override func gestureRecognizerShouldBegin(gestureRecognizer: UIGestureRecognizer) -> Bool {
        return false
    }
}

即使我返回GestureRecognitizerShouldBegin=false绿色UIView,也不会捕获任何事件。那么,我怎样才能在功能上做到这一点呢?Thx寻求帮助。

像这样传递给家长:

func onTap(tapGestureRecognizer: UITapGestureRecognizer) {
    self.superview?.gestureRecognizerShouldBegin?(tapGestureRecognizer)
}

有关链接,请参见@Abulhassan,Thx,但主要问题是如何将触摸/事件“传递”到父视图。如果我点击蓝色视图,我希望在绿色视图中接收事件,即蓝色视图下是按钮,所以当我点击按钮所在位置的蓝色时,我将接收操作按钮。然后你应该使用Bringviewtofrontmethod@AbuUlHassan将Subview带到前线不会有任何改变,因为blue view必须捕捉平移手势。您可以通过任何方式将代码发送给我,以便我可以检查问题所在。您可以尝试将superview设置为新的代理