Application iPhone en mode paysage, systèmes 2008

Remarque : cette question date de 2008 et n'a plus qu'un intérêt historique.

Quel est le meilleur moyen de créer une application iPhone qui s'exécute en mode paysage dès le départ, quelle que soit la position de l'appareil ?

À la fois par programmation et à l'aide d'Interface Builder.

请先 登录 后评论

3 réponses

Michael Pryor

Depuis le site de développement d'Apple :

Pour démarrer votre application en paysage mode pour que la barre d'état soit dans le position appropriée immédiatement, modifiez votre fichier Info.plist pour ajouter le Clé UIInterfaceOrientation avec la valeur appropriée (UIInterfaceOrientationPaysageDroite ou UIInterfaceOrientationLandscapeLeft), comme indiqué dans la liste 2.

Liste 2 : Démarrage de votre application en mode paysage

<key>UIInterfaceOrientation</key>
<string>UIInterfaceOrientationLandscapeRight</string>
请先 登录 后评论
samvermette

J'ai d'abord défini dans info.plist

<key>UIInterfaceOrientation</key>
<string>UIInterfaceOrientationLandscapeRight</string>

puis j'ai mis ce code dans applicationDidFinishLaunching :

CGAffineTransform rotate = CGAffineTransformMakeRotation(1.57079633);
[window setTransform:rotate];

CGRect contentRect = CGRectMake(0, 0, 480, 320); 
window.bounds = contentRect; 
[window setCenter:CGPointMake(160.0f, 240.0f)]; 

De cette façon, je peux travailler sur la vue dans Interface Builder en mode paysage.

请先 登录 后评论
Arlen Anderson

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

Dans tous mes tests, lors de la suppression d'un contrôleur de vue modale, l'orientation préférée du contrôleur de vue parent définie dans shouldAutorotateToInterfaceOrientation est honorée même lorsqu'elle fait partie d'un UINavigationController. La solution est donc simple :

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

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

lorsque viewDidAppear est appelé dans votre contrôleur de vue factice, fermez le contrôleur de vue avec une belle animation de fondu enchaîné.

Non seulement ça marche, mais ça a l'air bien ! BTW, juste pour clarifier, je fais le viewWillAppear du contrôleur de vue racine comme ceci :

- (void)viewWillAppear:(BOOL)animated
{
 if ( dummy != nil ) {
  [dummy setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];
  [self presentModalViewController:dummy animated:NO];
  [dummy release];
  dummy = nil;
 }
...
}
请先 登录 后评论
  • 12 abonnés
  • 0 favoris,584 Feuilleter
  • Michiel de Mare posée à 2022-12-11 04:39