iOS détecter le mouvement de l'user

Je souhaite créer une application simple qui dessine une ligne simple à l'écran lorsque je déplace mon téléphone sur l'axe Y d'un sharepoint départ à un point final, par exemple du point a (0,0) au point b (0, 10) s'il vous plaît aide

démo:

entrez la description de l'image ici

Vous devez initialiser le gestionnaire de mouvement, puis vérifier la valeur motion.userAcceleration.y pour get une valeur d'accélération appropriée (mesurée en mètres / seconde / seconde).

Dans l'exemple ci-dessous, je vérifie pour 0.05 que j'ai trouvé est un mouvement avant assez décent du téléphone. J'attends aussi que l'user ralentisse significativement (valeur -Y) avant de dessiner. Ajuster l'appareil MotionUpdateInterval va déterminer la réactivité de votre application aux changements de vitesse. En ce moment, il échantillonne à 1/60 secondes.

 motionManager = [[CMMotionManager alloc] init]; motionManager.deviceMotionUpdateInterval = 1.0/60.0; [motionManager startDeviceMotionUpdatesToQueue:[NSOperationQueue currentQueue] withHandler:^(CMDeviceMotion *motion, NSError *error) { NSLog(@"Y value is: %f", motion.userAcceleration.y); if (motion.userAcceleration.y > 0.05) { //a solid move forward starts lineLength++; //increment a line length value } if (motion.userAcceleration.y < -0.02 && lineLength > 10) { /*user has abruptly slowed indicating end of the move forward. * we also make sure we have more than 10 events */ [self drawLine]; /* writing drawLine method * and quartz2d path code is left to the * op or others */ [motionManager stopDeviceMotionUpdates]; } }]; 

Notez que ce code suppose que le téléphone est à plat ou légèrement incliné et que l'user pousse vers l'avant (loin d'eux-mêmes, ou se déplace avec le téléphone) en mode portrait.