如何清楚地区分手势?

时间:2017-06-12 12:22:52

标签: ios iphone swift uigesturerecognizer uitapgesturerecognizer

首先,我对迅捷很新。

我正在做一个应用程序,我必须识别很多手势(向上,向下,向左,向右,单击,双击,用两根手指单击,用两根手指双击,旋转等) 。

我能够识别每个手势,但是当我正在进行双击时我的问题就出现了。 该应用程序在双击之前识别单击(看起来合乎逻辑......),但由于每个手势专用于一个动作,因此它是一个问题:它在链接到双击的动作之前发送链接到单击的动作。

你知道我怎么能摆脱这个吗? 我在这里显然不知道:/

谢谢。

祝你有个愉快的一天。

// SINGLE TAP
@IBOutlet var oneFingerTap: UITapGestureRecognizer!

@IBOutlet var twoFingersTap: UITapGestureRecognizer!

// DOUBLE TAP

@IBOutlet var doubleTapOneFinger: UITapGestureRecognizer!

@IBOutlet var doubleTapTwoFinger: UITapGestureRecognizer!

// SINGLE TAP

@IBAction func oneFingerTap(_ sender: UITapGestureRecognizer) {
    statusLabel.text = "single Tap"
}

@IBAction func twoFingersTap(_ sender: UITapGestureRecognizer) {
    statusLabel.text = "Two fingers Tap"
}
// DOUBLE TAP

@IBAction func doubleTapOneFinger(_ sender: UITapGestureRecognizer) {
    statusLabel.text = "Double Tap 1 finger"
}

@IBAction func doubleTapTwoFingers(_ sender: UITapGestureRecognizer) {
    statusLabel.text = "Double Tap 2 fingers"
}

编辑: 我尝试了[UITapGestureRecognizer - 单击并双击

] 1但没有任何效果。

以下是我的尝试:

doubleTapOneFinger.require(toFail: oneFingerTap);

这样做会给我一个错误“致命的错误:在解开一个Optional值时意外地发现了nil”,所以我改变了我声明变量的方式以避免使用这样的可选变量:

let oneFingerTap = UITapGestureRecognizer(target: self, action: #selector(self.oneFingerTap))
oneFingerTap.numberOfTapsRequired = 1
oneFingerTap.numberOfTouchesRequired = 1
self.view.addGestureRecognizer(oneFingerTap)

let twoFingerTap = UITapGestureRecognizer(target: self, action: #selector(self.twoFingersTap))
twoFingerTap.numberOfTapsRequired = 1;
twoFingerTap.numberOfTouchesRequired = 2;
self.view.addGestureRecognizer(twoFingerTap)

没有更多错误,但没有发生任何事情......你知道我能做什么吗?

0 个答案:

没有答案