iOS 8 Changement d'Orientation de Détection
En cours d'exécution sur iOS 8, j'ai besoin de changer l'INTERFACE utilisateur lors de la rotation de mon application.
Actuellement, je suis en utilisant ce code:
-(BOOL)shouldAutorotate
{
UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation];
if (orientation != UIInterfaceOrientationUnknown) [self resetTabBar];
return YES;
}
Ce que je fais il supprimer le courant de l'INTERFACE utilisateur et d'ajouter une nouvelle INTERFACE utilisateur appropriée à l'orientation. Cependant, mon problème est que cette méthode est appelée à environ 4 fois à chaque fois une seule rotation est faite.
Quelle est la manière correcte de faire les changements lors de changement d'orientation dans iOS 8?
Pourquoi utilisez-vous cette méthode de changement d'interface à tous? Je pense qu'il est censé juste pour répondre à la question que de tourner ou pas. L'utilisation de 'willRotateToInterfaceOrientation:durée:" pour iOS 7 - et "viewWillTransitionToSize:withTransitionCoordinator:" pour iOS 8.
Juste posé une question, les gens qui essaient d'aider, mais ne vous embêtez pas à accepter une réponse ou un commentaire détaillé. Désolé, mais ce n'est pas agréable.
Juste posé une question, les gens qui essaient d'aider, mais ne vous embêtez pas à accepter une réponse ou un commentaire détaillé. Désolé, mais ce n'est pas agréable.
OriginalL'auteur Josh Kahane | 2014-10-11
Vous devez vous connecter pour publier un commentaire.
Timur Kuchkarov est correct, mais je vais poster la réponse que j'ai manqué son commentaire de la première fois que j'ai vérifié cette page.
La iOS 8 méthode de détection de changement d'orientation (rotation) est la mise en œuvre de la méthode suivante de la vue-contrôleur:
Remarque: Le contrôleur a pas encore fait la transition de cette taille à ce moment, donc attention si votre dimensionnement code s'appuie sur la vue actuelle de dimensions.
coordinator
dans cette réponse.Puisque cette méthode est appelée lorsque la vue n'est pas encore passé à la nouvelle taille, quelle méthode est appelée après le point de vue a fait la transition vers la nouvelle taille?
Vous devriez avoir souligné que cette méthode ne se déclenche PAS à chaque fois il y a une modification de rotation. Il se déclenche uniquement dans des circonstances particulières d'une rotation. J'utilise cette méthode dans mon code, et en fonction de l'interface sur l'écran, parfois, il incendies, parfois ça ne marche pas, c'est pourquoi j'ai ÉGALEMENT inclure viewWillLayoutSubviews pour gérer tous les cas.
OriginalL'auteur Nick Merrill
La
viewWillTransitionToSize:withTransitionCoordinator:
méthode est appelée immédiatement avant le point de vue a fait la transition vers la nouvelle taille, comme Nick points. Cependant, la meilleure façon d'exécuter du code immédiatement après la vue est passée à la nouvelle taille est d'utiliser un achèvement bloc dans la méthode:Grâce à la cette réponse pour le code et à Nick pour un lien vers elle dans son commentaire.
L'achèvement de bloc indiqué par le commentaire
// your code here
sera exécutée dès que la transition est terminée.Vous devriez avoir souligné que cette méthode ne se déclenche PAS à chaque fois il y a une modification de rotation. Il se déclenche uniquement dans des circonstances particulières d'une rotation. J'utilise cette méthode dans mon code, et en fonction de l'interface sur l'écran, parfois, il incendies, parfois ça ne marche pas, c'est pourquoi j'ai ÉGALEMENT inclure viewWillLayoutSubviews pour gérer tous les cas.
Vraiment super Solution...merci pour votre réponse
OriginalL'auteur VinceFior