2017-08-04 5 views
0

En fonction du mouvement de l'appareil, j'ai besoin de définir les images sur la vue. J'avais essayé d'utiliser le mouvement du noyau, là j'obtiens des valeurs x, y, z, mais je n'arrive pas à obtenir la distance déplacée par le périphérique en fonction de ces coordonnées.Comment déplacer la vue en fonction du mouvement de l'appareil dans xcode

[self.manager startDeviceMotionUpdatesToQueue:[NSOperationQueue mainQueue] withHandler:^(CMDeviceMotion * _Nullable motion, NSError * _Nullable error) { 

    xValue = motion.userAcceleration.x; 
    yValue = motion.userAcceleration.y; 
    zValue = motion.userAcceleration.z; 

}]; 
+0

Avez-vous envisagé d'utiliser le lacet, le tangage et le roulis au lieu de seulement x, y et z? Ces données peuvent provenir de la propriété 'attitude' de' CMDeviceMotion'. – valcanaia

+0

Oui j'ai essayé avec ceux aussi, mais incapable de calculer. – Bhuvaneswar

+0

Vérifie ma réponse. Pour ce que je comprends de votre question, vous voulez calculer la distance elle-même comme cm, pouces ou autre et c'est "pas possible". – valcanaia

Répondre

0

Ce qui se passe est que vous pouvez essayer de calculer cette distance, mais vous aurez trop d'erreur, voir this video.

Vous n'avez pas indiqué ce que vous essayez vraiment de faire, donc si vous essayez de créer l'effet de parallaxe, vous pouvez utiliser UIInterpolatingMotionEffect.

+0

Merci, vous avez absolument raison – Bhuvaneswar

+0

Juste pour le garder documenté, avez-vous essayé de créer l'effet de parallaxe ou la vidéo a répondu à votre question? Aussi, si la réponse est correcte pour vous, veuillez accepter la réponse, afin que nous puissions continuer à améliorer la communauté :) – valcanaia