iOS 摇晃手势 - 双重摇晃



我得到了如下正常的摇晃手势:

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

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

有没有"双摇"这样的东西,摇两次才能调用?

没有官方的"双重摇晃"手势,但您可以使用简单的计数器变量来实现这一点:

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,它将在一定时间后重置摇晃计数。

相关内容

  • 没有找到相关文章

最新更新