2011-09-02 8 views
2

J'essaye d'ajouter l'autorotation à mon application, mais avoir la difficulté. Je peux tout redimensionner (un TableView et quelques étiquettes), mais la barre d'état et le reste de ma fenêtre (par exemple: une barre d'onglets et un contrôleur de navigation) restent en mode portrait. J'ai une hiérarchie de trois vue de la fenêtre vers le haut ViewController et j'ai tout dans shouldAutorotateToInterfaceOrientation mis à YES, j'ai aussi tout sauf à l'envers sélectionné dans la section Summary des propriétés de la cible, mais il refuse de bouger. Cela se passe sur le simulateur et sur un iPhone 4. Les deux sont en 4.3 sur XCode 4. J'ai parcouru les docs de la pomme sur les orientations de la vue mais y a-t-il quelque part d'autre que j'ai besoin de régler?iOS ne tourne pas

Dans mon Info.plist, je donne les résultats suivants:

<key>UISupportedInterfaceOrientations</key> 
<array> 
    <string>UIInterfaceOrientationPortrait</string> 
    <string>UIInterfaceOrientationLandscapeLeft</string> 
    <string>UIInterfaceOrientationLandscapeRight</string> 
</array> 
+2

iOS ne tourne pas, ou, vues ne tourne pas? – EmptyStack

+0

@EmptyStak Je suppose que l'OP signifiait "iOS ne tournera pas mes vues" – Yuji

+0

Je sais que mes vues ne seront pas autorotées, mais les iOs ne sont pas en autorotation. J'avais l'impression que la barre d'onglets et les barres d'état tourneraient, mais les composants seraient écrasés au format portrait. – Echilon

Répondre

5

J'ai finalement découvert que si vous avez un UITabBarController, toutes les vues à onglets doivent prendre en charge la rotation. Devrait sauver quelqu'un quelque temps en se souvenant:

  • Rien tournera jusqu'à ce que tous les onglets dans une rotation de support UITabBarController
  • Si vous essayez de redimensionner manuellement les choses lors de la rotation de vue, il est beaucoup plus facile pour définir les propriétés de dimensionnement de chaque contrôle de votre plume. Définir les positions d'ancrage et les règles d'étirement et la plupart des choses semblent «juste fonctionner».
  • contrôles segmentés semblent avoir besoin Redimensionnement manuel dans la méthode - (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
0

Dans votre question, vous dire

J'ai tout shouldAutorotateToInterfaceOrientation ensemble YES

mais je ne suis pas sûr de ce que vous voulez dire par là. Si vous soutenez toutes les orientations puis retourner simplement YES

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    return YES; 
} 

Il se peut que tout ce que vous avez passe ici (depuis que vous avez pas signalé votre code) ne fonctionne pas comme prévu.

+0

C'est ce que je voulais dire. Dans la méthode 'shouldAutorotateToInterfaceOrientation', je retourne juste YES, et le code est appelé, ce que je peux voir depuis le débogage, mais la vue ne tourne pas. – Echilon

+0

Si vous ouvrez votre ' -info.plist' manuellement (* avec un éditeur de code, pas l'éditeur de liste de propriétés *) quelles orientations sont listées sous la clé' UISupportedInterfaceOrientations'? –