当我打开我的 View Controller 时,我有 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
}
关于ios - swift:当我打开 View Controller 并第一次按下手势识别器时,它说我按下了两次。如何解决这个问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38701389/