Comment transformer la barre de navigation et le contrôleur de navigation en mode Paysage
-
03-07-2019 - |
Question
Je développe un jeu dans lequel j'utilise le mode Paysage et j'ai un total de 4 vues. 2 vues arrivent correctement en mode Paysage. Mais en troisième vue, j'ai UITable et barre de navigation. Je peux pouvoir faire pivoter une table en mode paysage mais pas pouvoir transformer la barre de navigation ni le contrôleur de navigation. La barre de navigation et le contrôleur de navigation sont également dotés d’un bouton. Il ne faut pas non plus se transformer. Quelqu'un peut-il avoir la solution à ce sujet? :)
La solution
Transformez la barre de navigation du contrôleur nagvigation en la tournant à 90 degrés. Vous pouvez également avoir besoin de définir le centre et le cadre de la barre de navigation pour définir la largeur appropriée pour l’adaptation au mode paysage..il a fonctionné pour moi :) espérons que cela vous aidera aussi.
Autres conseils
#define degreesToRadians(x) (M_PI * x / 180.0)
- (void)viewWillAppear:(BOOL)animated
{
[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight];
CGRect newBounds = CGRectMake(0, 0, 480, 320);
self.navigationController.view.bounds = newBounds;
self.navigationController.view.center = CGPointMake(newBounds.size.height / 2.0, newBounds.size.width / 2.0);
self.navigationController.view.transform = CGAffineTransformMakeRotation(degreesToRadians(90));
[super viewWillAppear:animated];
}
- (void)viewWillDisappear:(BOOL)animated
{
self.navigationController.view.transform = CGAffineTransformIdentity;
self.navigationController.view.transform = CGAffineTransformMakeRotation(degreesToRadians(0));
self.navigationController.view.bounds = CGRectMake(0.0, 0.0, 320.0, 480.0);
[super viewWillDisappear:animated];
}
Dans la classe de la documentation UIViewController:
Gestion des rotations
propriété interfaceOrientation
- shouldAutorotateToInterfaceOrientation:
- rollingFooterView
- rotationHeaderView
- willRotateToInterfaceOrientation: durée:
- willAnimateFirstHalfOfRotationToInterfaceOrientation: duration:
- willAnimateSecondHalfOfRotationFromInterfaceOrientation: durée:
- didRotateFromInterfaceOrientation:
espérons que cela vous aide aussi.
A.