2016-04-30 5 views
-2


Je veux savoir comment détecter si un iPhone est déplacé dans le dernier 60 sec à l'aide rapide
comment détecter si le téléphone a été déplacé

Je suis tombé sur ce code ci-dessous, mais ne fonctionne que lorsque le téléphone est secoué.
Est-il possible de détecter quand le téléphone est déplacé mais pas vigoureusement secoué?

override func motionEnded(motion: UIEventSubtype, 
          withEvent event: UIEvent?) { 
     if motion == .MotionShake { 
      let controller = UIAlertController(title: "Shake", 
              message: "The device is shaken", 
              preferredStyle: .Alert) 

      controller.addAction(UIAlertAction(title: "OK", 
       style: .Default, 
       handler: nil)) 

      presentViewController(controller, animated: true, completion: nil) 

     } 

} 
+0

Pouvez-vous décrire plus en détail ce qui compte comme étant «déplacé»? Quelle est la quantité minimale de mouvement qui devrait être déclenchée? – nhgrif

+0

Vous pouvez avoir accès à l'accéléromètre ou gyroscope, etc. https://developer.apple.com/library/ios/documentation/EventHandling/Conceptual/EventHandlingiPhoneOS/motion_event_basics/motion_event_basics.html – Gruntcakes

+0

par déplacé, je veux dire n'est pas sur le bureau , table ou etc. – borna

Répondre

1

Je pense que vous allez avoir besoin d'utiliser l'accéléromètre et d'appliquer un filtre passe-bas modéré à la sortie de sorte que vous ignorez le changement très progressif, mais prendre une accélération modérée. Vous devriez pouvoir régler le seuil.

Je suggère une recherche sur "ios accellerometer filtre passe-bas". Vous allez devoir écrire votre propre code.