cacher TabBar lors de la rotation de l'iPhone en mode paysage
Voici donc ce que j'ai:
Un UITabBarController qui gère les différents UIViewControllers. Dans l'un des UIViewController je suis en train de passer de la vue affichée lorsque l'appareil tourne en mode paysage.
l'important, c'est que l'affichage de la vue dans le paysage DOIT prendre tout l'écran...
J'ai correctement mis en œuvre les méthodes :
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
En fait j'ai ma rotation se produisant correctement, et j'ai mon point de vue swaped.
j'ai même masquer la barre d'état, barre de navigation et la barre d'Onglet, MAIS je continue à avoir un espace vide en bas de l'écran, qui est le lieu de la TabBar...
Donc je suis en supposant que la définition de la propriété hidden de la tabBar est pas assez pour avoir la vue sur l'ensemble de l'écran. Je pense qu'il y a des choses à faire dans le TabBarController ou même la MainWindow-à-dire somehting comme "je n'ai pas besoin TabBarController maintenant". Mais je ne vois pas comment contourner ce problème correctement.
Si quelqu'un a été autour de cette question, j'apprécierais un peu d'aide.
merci,
Sami.
OriginalL'auteur sami | 2009-07-22
Vous devez vous connecter pour publier un commentaire.
Cela a fonctionné pour moi.
+1 aussi pour moi!
Veuillez marquer comme réponse... 🙂 Ça marche!!! )
Utilisation
YES
/NO
au lieu deTRUE
/FALSE
. Bien que cela fonctionne, il n'est pas de la convention.OriginalL'auteur UB.
OriginalL'auteur Dashony
Ce code fonctionne bien, mais lorsque je rejette un uiviewcontroller qui est présenté sous forme modale, mon avis est sous la barre de statut par 20 pixels.
De mon point de vue est à l'intérieur d'un navigationcontroller donc je ne vous le cache pas, avant de rotation.
OriginalL'auteur Ilker Baltaci
J'avais besoin de la barre d'onglets pour passer en mode plein écran en mode paysage et j'ai essayé l'approche proposée ci-dessus en utilisant
transView.frame = CGRectMake(0, 0, 480, 320 );
Ce qui s'est avéré être un hacky solution et pose beaucoup de problèmes comme avec de cacher et de ré-afficher la barre d'état (du point de vue de chevauchement avec la barre d'état quand il est affiché à nouveau après la sortie de portrait de point de vue). Je ne recommanderais pas cela. Ce qui a fonctionné parfaitement pour moi en fin de compte, poussant une nouvelle vue contrôleur contenant le mode paysage et à l'aide de délégation de réutiliser les fonctionnalités de l'original de la VC.
OriginalL'auteur sur
Cette approche est de travailler pour moi:
(Testé uniquement dans iOS8.)
J'ai ce code qui s'exécute dans une production à l'application de l'amende juste. Que voyez-vous? La version de l'iOS 8?
Essayé iOS 8.2 simulateur de la barre d'onglet affiché lors de la rotation. Btw, ce qui est la logique: lors de la rotation du paysage barre d'onglet trame de hauteur est augmentée par la hauteur de la fenêtre?
N'ai pas essayé dans le simulateur (am à l'aide de cadres qui ne sont pas construits de cette plate-forme), mais fonctionne très bien sur les appareils sous iOS 8.1/8.2/8.3. La logique est d'augmenter la hauteur de la fenêtre par l'onglet de la barre de hauteur lors de la rotation de l'orientation paysage, de sorte que la fenêtre est plus grande que l'écran de l'appareil assez pour que la barre d'onglets est rendu à l'écran (et annuler le changement de la hauteur lors de la rotation de retour au portrait).
OriginalL'auteur StephenT
Sous-classe votre TabBarController et de cacher la TabBar en cas de besoin:
OriginalL'auteur MPajak
Peut-être vous voulez utiliser cette
}
Ceci ne doit pas masquer la barre d'onglets, mais le fait tourner animation plus fluide.
OriginalL'auteur Borzh
Si vous avez votre UITabBarController puis mettre un UINavigationController à l'intérieur, alors vous pouvez utiliser hidesBottomBarWhenPushed (avec un peu de ruse) pour ce faire.
L'astuce est de pousser votre vue-contrôleur de sorte que le
hidesBottomBarWhenPushed
drapeau est ramassé. Vous pouvez utiliser la suite.OriginalL'auteur StevenO