Par défaut, une application est définie en mode portrait et effectue une rotation en fonction de la position de l’iPhone/iPodTouch.
Cependant il peut arriver que l’on ait besoin de forcer le mode d’affichage de l’application en mode paysage et empêcher sa rotation.
Plusieurs solutions existent pour définir le mode d’affichage.
Par exemple, il est tout à fait possible d’effectuer une rotation de chaque vue lors de leur chargement comme j’ai déjà pu le voir… Mais cela implique plusieurs inconvénients :
- il est très fastidieux voir impossible de définir correctement la disposition des éléments sur la vue (label, bouton, etc…) en mode paysage à partir du visuel en mode portrait.
- l’application risque de manquer de fluidité et dégrader fortement l’expérience utilisateur.
Une meilleure solution consiste à utiliser les directives de configuration disponible dans XCode et le SDK ainsi que d’utiliser au mieux Interface Builder (IB) :
- ConfigurationDans le fichier « .plist » de votre application, ajoutez la directive suivante :
Initial interface orientation / Landscape (right home button)
Ceci aura pour effet de lancer l’application en mode paysage dès son chargement. - Interface Builder (IB)Créez vos interfaces directement en mode paysage.
Pour faire une rotation de la vue, cliquez sur la flèche en haut à droite de la fenêtre de votre vue : - XCodeVous devez surcharger la méthode suivante dans chaque classe ViewController pour spécifier si l’interface doit effectuer une rotation ou non en fonction de l’orientation de votre iPhone/iPodTouch :
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{ if(interfaceOrientation == UIInterfaceOrientationLandscapeRight) { return YES; } return NO;}
Voila, votre application restera toujours en mode paysage.
This article was originally created by Emilien Vuillaume