2009-03-02 2 views
5

Je développe un jeu dans lequel j'utilise le mode paysage. 2 vues arrivent correctement en mode paysage. Mais en troisième vue j'ai UITable et barre de navigation. Je peux faire pivoter la table en mode paysage mais je ne peux pas transformer la barre de navigation et le contrôleur de navigation. La barre de navigation et le contrôleur de navigation ont également un bouton dessus. Cela ne se transforme pas non plus. Donc, quelqu'un peut avoir la solution à ce sujet. :)Comment transformer la barre de navigation et le contrôleur de navigation en mode paysage

Répondre

2

Transformez la barre de navigation du contrôleur de navigation en la faisant pivoter de 90 degrés. Aussi, vous pourriez avoir besoin de définir le centre de la barre de navigation et le cadre pour régler la largeur appropriée pour s'adapter au mode paysage .. il a travaillé pour moi :) espérons que cela vous aide aussi.

1

Dans la classe de documentation UIViewController:

Handling Rotations

interfaceOrientation propriété
- shouldAutorotateToInterfaceOrientation:
- rotatingFooterView
- rotatingHeaderView
- willRotateToInterfaceOrientation: Durée:
- willAnimateFirstHalfOfRotationToInter faceOrientation: durée:
- willAnimateSecondHalfOfRotationFromInterfaceOrientation: Durée:
- didRotateFromInterfaceOrientation:

espère que cela vous aide aussi.

A.

+0

Merci pour votre réponse, il fonctionne – Jyotsna

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

Pour un certain contexte. La vraie sauce sucrée transforme la vue du contrôleur de navigation lui-même. – avelis