iOS Shake Gesture - 双摇

时间:2017-06-14 02:45:38

标签: 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”之类的东西,请两次调用?

1 个答案:

答案 0 :(得分:1)

没有正式的“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。