[Objective-c] iPhone et accéléromètre
mai 11, 2009
Aujourd’hui on va voir comment utilisez l’accéléromètre de l’iPhone, afficher les infos, et détecter une petite secousse.
Créez une application de type « View-Based » et donnez lui le nom de accel par exemple. Les fichiers qui vont nous intéresser sont accelViewController.h et accelViewController.m.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | //accelViewController.h #import @interface accelViewController : UIViewController { IBOutlet UILabel *x; IBOutlet UILabel *y; IBOutlet UILabel *z; IBOutlet UILabel *shake; } @property (nonatomic, retain) IBOutlet UILabel *x; @property (nonatomic, retain) IBOutlet UILabel *y; @property (nonatomic, retain) IBOutlet UILabel *z; @property (nonatomic, retain) IBOutlet UILabel *shake; @end |
Nous allons donc ajouter à notre vu 4 labels, x , y, z et shake et reliez les dans IB. Notez le UIAccelerometerDelegate dans la déclaration de l’interface.
Pour le 2ème fichier :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | //accelViewController.m #import "accelViewController.h" @implementation accelViewController @synthesize x,y,z, shake; - (void)viewDidLoad { UIAccelerometer *accel = [UIAccelerometer sharedAccelerometer]; accel.delegate = self; [shake setText:@"calme"]; accel.updateInterval = 10.0f/60.0f; [super viewDidLoad]; } - (void)accelerometer:(UIAccelerometer *)acel didAccelerate:(UIAcceleration *)aceler { if (fabsf(aceler.x) > 1.5 || fabsf(aceler.y) > 1.5 || fabsf(aceler.z) > 1.5) { [shake setText:@"secousse"]; } x.text=[NSString stringWithFormat:@"%f",aceler.x]; y.text=[NSString stringWithFormat:@"%f",aceler.y]; z.text=[NSString stringWithFormat:@"%f",aceler.z]; } |
Ligne 8 et 9 on déclare l’accéléromètre et on définit le delegate, qui sera lui même. Ligne 10 on définit l’intervalle de rafraîchissement des données.
La méthode accelerometer:didAccelerate est donc exécutée dès que l’iPhone détecte un mouvement. Si on détecte un mouvement brusque on va afficher un texte particulier, par exemple secousse. Pour le reste, on va afficher les valeurs en temps réel des capteurs lignes 23, 24, 25.
J’espère que ce petit tutorial vous aura été utile !
Catégorie(s): Développement, Iphone, Objective-C | Comments (9)
Yo !! merci encore, j’ai implémenté ça dans mon application et ça marche bien !!
(elle est aussi multilingue grâce à toi)
Encore merci pour ces tutos !!!!!!
Héhé, tant mieux! Fait nous partager ton appli !
sympa en effet et simple !
bravo !
Très intéressant ce petit tutos.
Est-ce que tu pourrais faire un tuto pour nous expliquer comment fonctionne la boussole iiphone par exemple. Récupération des valeurs et des données de localisation etc…
Merci
Bonjour ,
j ai essayer ce tuto ca marche ,mais je n arrive pas a afficher les valeurs en temps reel.
j affiche :calme,X,Y,Z mais sans les valeurs devant.
merci d avance et merci pour tout ce ke tu fais pour nous programmeur debuttant en Objective-c
sandy
Salut,
Merci beaucoup pour le tuto, c’est vraiment sympa. Je débute en objective-c et je rencontre quelques difficultés…lorsque je veux compiler ça me dit :
‘gt’ undeclared
Je ne suis pas sur d’avoir déclaré « UIAccelerometerDelegate » au bon endroit. Est-ce que ça peut être ça?
Merci
Florent
Salut mec!
merci pour ce tuto, très bien fait.
Je commence aujourd’hui le dev sur iphone et ça m’aide bien 😉
simple et utile
Merci pour l’exemple
[…] récents laurent colas (athlete-endurance.com) (1 comments) dans [Objective-c] iPhone et accéléromètreyassine (2 comments) dans [PHP] Serveur de WebServices SOAPArnaud Casella (2 comments) dans [PHP] […]