swift:当我打开视图控制器并第一次按下手势识别器时,它说我按下了两次。如何解决这个问题?

swift: when I open the view controller and press the gesture recognizer for the first time it says that i pressed it twice. how to fix this?

当我打开我的视图控制器时,我有 4 个手势识别器,当我点击两次时,会发生这样的喊叫:

@IBOutlet var doubleTap: UITapGestureRecognizer!
@IBAction func doubleTapAction(sender: AnyObject) {
    doubleTap.numberOfTapsRequired = 2
    print("Button was 2x")
}

但是当我第一次按下 4 个按钮中的一个时(我只按下了一次。)它打印出我点击了两次。第一次后它工作正常。

谁能告诉我如何解决这个问题?

感谢阅读我的问题我希望有人能帮助我。

如果你不明白我的问题,请评论。

这是因为第一次将手势识别器设置为识别单击。你把它改成敲击两次,但是你把它设置在错误的地方,因为你已经敲击了一次,所以它进入了动作并执行了那里的代码:

self.doubleTap.numberOfTapsRequired = 2 // This is wrong here!
print("Button was 2x")

因此它更改了识别器以识别两次点击,但它已经识别了一次(这就是执行该代码的原因)所以它也打印该文本。

设置每次点击一次就没意义了。这样做的好地方是 viewDidLoad.

您还可以在界面生成器中设置所需的点击次数。

代码示例:

@IBOutlet var doubleTap: UITapGestureRecognizer!
@IBAction func doubleTapAction(sender: AnyObject) {
    print("doubleTap was 2x")
}

override func viewDidLoad() {
    super.viewDidLoad()

    self.doubleTap.numberOfTapsRequired = 2
}