我按照以下方式实现了正常的摇晃手势:
import CoreMotion
override func motionEnded(_ motion: UIEventSubtype, with event: UIEvent?) {
if motion == .motionShake {'
print ("SHAKE GESTURE DETECTED")
}
}
我注意到这有点令人讨厌,例如,如果你突然放下设备,上面的代码会调用。
是否有“Double Shake”之类的东西,请两次调用?
答案 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。