Question

J'ai un problème d'orientation vraiment étrange. J'ai une séquence de contrôleurs de vue sous un contrôleur de navigation. L'un d'eux peut prendre n'importe quelle orientation. Lorsque je quitte l'orientation, je dois utiliser la setorientation. Ce qui est drôle, c'est que la rotation se déroule au fur et à mesure que la transition se produit à la page suivante. Ce n'est normalement pas un problème, sauf pour un seul cas - de UideviceOrientationPortraitUpSidedown vers normal, tous mes éléments les plus élevés migrent vers le haut environ une huitième de page.

Il y a trois façons dont je pense que je pourrais le réparer:

  1. En quelque sorte, séparez la setorientation de mon appel PushViewController (donc la nouvelle vue n'a pas besoin de retourner)
  2. Définissez mes articles pour être ancrés en haut de l'appareil d'une manière mieux (j'ai vérifié et ils semblent l'être)
  3. Réinitialisez la dimension Y sur les éléments de la méthode ViewDidload, mais cela semble mal.

Voici mon push la nouvelle vue sur le code de pile:

[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationPortrait]; 

ResultSelect_ViewController *resultSelect = [[ResultSelect_ViewController alloc] initWithNibName:@"ResultSelect" bundle:nil];
[self.navigationController pushViewController:resultSelect animated:YES];

Quelqu'un d'autre trouve-t-il étrange que le simulateur ne vous permette pas de tester le comportement à la hausse du portrait?

Était-ce utile?

La solution 3

Le moyen d'éviter le bug de rotation lors de la rotation de l'envers au portrait est de ne pas le faire. Au lieu de cela, tournez deux fois en vous arrêtant à mi-chemin (disons UIDeviceOrientationLandscapeRight). La question du timing n'est pas d'utiliser le sommeil mais plutôt de mettre en œuvre didRotateFromInterfaceOrientation et tirer la deuxième rotation (ou pousser à la vue suivante) à ce moment-là.

Autres conseils

Juste à noter: Apple a commencé à utiliser un analyseur statique (peut-être même dynamique) et bloque les applications qui utilisent des méthodes privées (par exemple setOrientation:) En entrant dans le magasin. Est arrivé à un de mes amis la semaine dernière.

Avez-vous essayé de construire contre iPhone OS 3.0 et de compter uniquement sur shouldRotateToInterfaceOrientation:? Le comportement semble être fixé (par rapport à l'implémentation dans 2.x) et - du moins pour moi - fait le travail.

En règle générale, vous ne supporteriez pas l'orientation à l'envers. Cela semble être le comportement standard de l'application Apple et a du sens. Le cas à l'envers n'est pas vraiment utile et peut provoquer de la confusion à l'utilisateur.

Nous avons eu un problème similaire où les sous-vues migraient de haut en bas de la vue principale lors du retournement dans le cas à l'envers. Nous avons juste cessé de soutenir à l'envers et cela a essentiellement résolu le problème.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top