Sto sviluppando un gioco in cui sto usando la modalità orizzontale Ho una vista totale di 4. 2 viste stanno correttamente arrivando in modalità orizzontale. Ma in terza vista ho UITable e barra di navigazione. Posso ruotare la tabella in modalità orizzontale ma non in grado di trasformare la barra di navigazione e il controller di navigazione. La barra di navigazione e il controller di navigazione hanno anche il pulsante su di esso. Inoltre non viene trasformato. Quindi chiunque può avere la soluzione su questo. :)Come trasformare la barra di navigazione e il controller di navigazione in modalità orizzontale
risposta
Trasforma la barra di navigazione del controller di nagvigation ruotandola di 90 gradi. Inoltre potresti aver bisogno di impostare il centro della barra di navigazione e la cornice per impostare la larghezza adeguata per adattarla alla modalità orizzontale. Ha funzionato per me :) spero che ti aiuti anche tu.
nella classe di documentazione UIViewController:
Handling Rotazioni
proprietà interfaceOrientation
- shouldAutorotateToInterfaceOrientation:
- rotatingFooterView
- rotatingHeaderView
- willRotateToInterfaceOrientation: Durata:
- willAnimateFirstHalfOfRotationToInter faceOrientation: Durata:
- willAnimateSecondHalfOfRotationFromInterfaceOrientation: Durata:
- didRotateFromInterfaceOrientation:
speranza che questo ti aiuta anche.
A.
#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];
}
Per alcuni contesto. La vera salsa dolce sta trasformando la vista stessa del controller di navigazione. – avelis
Grazie per la risposta funziona – Jyotsna