2017-06-14 68 views
0

我作为执行正常摆动姿态如下:的iOS摆动姿态 - 双摇

import CoreMotion 

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

我注意到这是一个讨厌有些有时,例如,如果你把设备突然降下,上面的代码调用。

是否有这样的事情,“双摇”,动摇两次调用?

回答

1

没有一个正式的“双重防抖”的手势,但你可以通过使用一个简单的计数器变量实现这一目标:

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。