Comment transformer la barre de navigation et le contrôleur de navigation en mode Paysage

StackOverflow https://stackoverflow.com/questions/601397

  •  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? :)

Était-ce utile?

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.

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