2017-06-14 4 views
0

ich die normale Schüttelbewegung wie folgt umgesetzt habe:iOS Schüttelbewegung - Doppel schütteln

import CoreMotion 

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

Ich bemerke dies manchmal etwas ein Ärgernis ist, zum Beispiel, wenn Sie das Gerät setzen plötzlich nach unten, oben Code aufruft .

Gibt es so etwas wie "Double Shake", zweimal schütteln, um aufzurufen?

Antwort

1

Es gibt keine offizielle „Double Shake“ Geste, aber Sie können dies erreichen, indem Sie eine einfache Zählvariable mit:

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") 
     } 
    } 
} 

Ich würde auch eine NSTimer nach dem ersten shake empfiehlt das Hinzufügen, die zurückgesetzt werden der shakeCount nach einer gewissen Zeit.

Verwandte Themen