99 votes

Application iPhone en mode paysage, systèmes 2008

Veuillez noter que cette question date de 2008 et n'a plus qu'un intérêt historique.


Quelle est la meilleure façon de créer une application iPhone qui fonctionne en mode paysage dès le départ, quelle que soit la position de l'appareil ?

Aussi bien par programme qu'à l'aide de l'Interface Builder.

6 votes

Pour tous les futurs lecteurs, veuillez noter que ce fameux problème est maintenant résolu par Apple à partir de 2011. Notez le projet de test dans la réponse ci-dessous.

6voto

Arlen Anderson Points 946

Je suis surpris que personne n'ait encore trouvé cette réponse :

Dans tous mes tests, lors du rejet d'un contrôleur de vue modal, l'orientation préférée du contrôleur de vue parent, définie dans le fichier shouldAutorotateToInterfaceOrientation est respectée même si elle fait partie d'un UINavigationController. La solution à ce problème est donc simple :

Créez un UIViewController fictif avec un UIImageView comme arrière-plan. Définissez l'image à l'image default.png que votre application utilise au démarrage.

Cuando viewWillAppear est appelé dans votre contrôleur de vue racine, présentez simplement le contrôleur de vue factice sans animation.

quand viewDidAppear est appelé dans votre contrôleur de vue fictif, et le contrôleur de vue est renvoyé avec une belle animation de dissolution croisée.

Non seulement cela fonctionne, mais cela a l'air bien ! BTW, juste pour clarifier, j'ai fait le contrôleur de vue racine de viewWillAppear comme ça :

- (void)viewWillAppear:(BOOL)animated
{
 if ( dummy != nil ) {
  [dummy setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];
  [self presentModalViewController:dummy animated:NO];
  [dummy release];
  dummy = nil;
 }
...
}

5voto

Le dernier Guide de programmation de l'iPhone OS contient une section complète sur ce sujet, avec des exemples de code. Je suis sûr que c'est un ajout récent, donc peut-être l'avez-vous manqué. Il explique toutes les conditions que vous devez respecter ; en gros...

  • définir les propriétés d'Info.plist (cela change la position de la barre d'état, mais pas la vue)
  • faites pivoter votre vue manuellement autour de son centre, soit par la méthode viewDidLoad : de votre UIViewController, soit par la méthode applicationDidFinishLaunching :, ou implémentez la rotation automatique ("Comportements de redimensionnement automatique", page 124)

Consultez la rubrique "Lancement en mode paysage", page 102.

4voto

nicc Points 175

Voir cette réponse : Mode paysage UNIQUEMENT pour iPhone ou iPad

  1. ajouter l'orientation à la liste
  2. shouldAutorotateToInterfaceOrientation = YES dans tous les fichiers

Cependant, si vous utilisez des modes mixtes, il est préférable d'opter pour

[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationLandscapeRight];

2voto

SeungUn Ham Points 919

device_orientation

Il suffit de cliquer sur l'orientation du dispositif que vous souhaitez.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X