我得到了如下正常的摇晃手势:
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,它将在一定时间后重置摇晃计数。