Come trasformare la barra di navigazione e il controller di navigazione in modalità orizzontale

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

  •  03-07-2019
  •  | 
  •  

Domanda

Sto sviluppando un gioco in cui sto usando la modalità Orizzontale ho una vista totale di 4. 2 viste stanno arrivando correttamente in modalità orizzontale. Ma in terza vista ho UITable e barra di navigazione. Posso ruotare la tabella in modalità orizzontale ma non riesco a trasformare la barra di navigazione e il controller di navigazione. Anche la barra di navigazione e il controller di navigazione hanno il pulsante. Inoltre non si trasforma. Quindi chiunque può avere la soluzione su questo. :)

È stato utile?

Soluzione

Trasforma la barra di navigazione del controller di nagvigazione ruotandola di 90 gradi. Inoltre potresti aver bisogno di impostare il centro e la cornice della barra di navigazione per impostare la larghezza corretta per adattarla alla modalità orizzontale..ha funzionato per me :) spero che ti aiuti anche.

Altri suggerimenti

#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];
}

Nella classe della documentazione di UIViewController:

Gestione delle rotazioni

proprietà interfaceOrientation
- shouldAutorotateToInterfaceOrientation:
- rotaryFooterView
- rotaryHeaderView
- willRotateToInterfaceOrientation: durata:
- willAnimateFirstHalfOfRotationToInterfaceOrientation: durata:
- willAnimateSecondHalfOfRotationFromInterfaceOrientation: durata:
- didRotateFromInterfaceOrientation:

spero che anche questo ti aiuti.

A.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top