iOS 摇一摇手势 - 双摇

标签 ios swift xcode core-motion shake

我按如下方式实现了正常的摇动手势:

 import CoreMotion

 override func motionEnded(_ motion: UIEventSubtype, with event: UIEvent?) {
      if motion == .motionShake {'
         print ("SHAKE GESTURE DETECTED")
      }
 }

我注意到这有时有点麻烦,例如,如果您突然放下设备,上面的代码就会调用。

有没有“Double Shake”这种东西,摇两下调用?

最佳答案

没有官方的“Double Shake”手势,但您可以使用一个简单的计数器变量来实现:

var shakeCount = 0
override func motionEnded(_ motion: UIEventSubtype, with event: UIEvent?) {
    if motion == .motionShake {
        shakeCount += 1
        if shakeCount == 2 {
            shakeCount = 0
            print ("SHAKE GESTURE DETECTED")
        }
    }
}

我还建议在第一次摇动后添加一个 NSTimer,这将在一定时间后重置 shakeCount。

关于iOS 摇一摇手势 - 双摇,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44534572/

相关文章:

swift - 如何将数据从 View Controller 传递到弹出 View Controller (swift/ios)

ios - 如何在iOS中将\u00e2\u0080\u0099这个字符串替换成'

ios - 跳转到 Xcode 中的定义

ios - 如何创建带删除线文本的 UILabel?

ios - 如何从以前的应用程序版本中删除 Settings.bundle?

ios - 如何在 Swift 中从模态弹出窗口调用 Controller ?

ios - 当 ViewController 不在屏幕上时,它如何识别

ios - 在惰性 var 属性中调用异步函数

ios - 在 Swift 中禁用向后滑动手势

swift - 可能是指针错误 Midi sysEx