我按如下方式实现了正常的摇动手势:
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/