2010-08-08 3 views
2

Ceci est une question étrange dans la mesure où j'ai certainement eu des projets qui fonctionnent bien, peut-être parce que j'ai fait quelque chose différemment. Mais maintenant je suis confus.Pourquoi l'application de mon iPad ne démarre-t-elle pas en mode paysage dès sa sortie de l'emballage?

Je crée une nouvelle application iPad basée sur View avec Xcode (3.2.3 fwiw). Cela me donne un contrôleur de vue par défaut avec une vue par défaut qui est désarchivée et affichée au démarrage. Lorsque je démarre l'application alors que le simulateur est en mode paysage, je m'attends à ce que la taille par défaut de la vue soit de 1 024. Mais il est pas-- Si je viens d'ajouter une ligne au projet par défaut:

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib. 
- (void)viewDidLoad { 
    [super viewDidLoad]; 
    NSLog(@"width: %f", [[self view] bounds].size.width); // add this line 
} 

Je vois que la largeur est 768, si l'application démarre en mode portrait ou paysage. Hors de la boîte, le masque autoresize de cette vue par défaut devrait définitivement se relayer pour s'adapter au conteneur. Pourquoi ce numéro n'est pas 1024 quand je commence en mode paysage? Je sais que cela fonctionne dans d'autres projets que j'ai, mais je suis confus par la différence. Qu'est-ce que je rate?

Merci!

Répondre

2

viewDidLoad est appelée immédiatement après le chargement de la vue depuis le xib, avant de passer à l'orientation initiale du périphérique. Essayez ceci:

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation { 
    NSLog(@"rotated to width: %f", self.view.bounds.size.width); 
} 
+0

Oy. Merci. J'ai été distrait par un hareng rouge dans mon débogage et ai fini par retourner aux bases en créant ce projet factice seulement pour me trouver devenir fou. Merci pour la direction. –

Questions connexes