J'ai un très simplement UIViewController, et j'essaie de comprendre comment utiliser willRotateToInterfaceOrientation. mon UIViewController a une méthode viewDidLoad très simple:iOS willRotateToInterfaceOrientation utilisation correcte
-(void)viewDidLoad {
[super viewDidLoad];
theBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 320.0f, 48.0f)];
theBar.tintColor = [UIColor orangeColor];
UINavigationItem *item = [[UINavigationItem alloc] initWithTitle:@"The Title"];
item.hidesBackButton = YES;
[theBar pushNavigationItem:item animated:YES];
[item release];
[self.view addSubview:theBar];
}
Donc, fondamentalement, j'ai juste un UINavigationBar au sommet de mon contrôleur. C'est tout. Je mis en œuvre des méthodes de rotation, en fonction de ce que je trouve en ligne:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return YES;
}
-(void)willRotateToInterfaceOrientation: (UIInterfaceOrientation)orientation duration:(NSTimeInterval)duration {
if ((orientation == UIInterfaceOrientationLandscapeLeft) || (orientation == UIInterfaceOrientationLandscapeRight)) {
theBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, 640, 48)];
}
}
Alors, je lance l'application en mode portrait, et puis je torsion dans en mode paysage. Et fondamentalement, theBar
reste toujours sa taille normale, et ne se redimensionne pas. Je suis sûr que c'est une question stupide, mais quelle est la bonne façon d'utiliser la capacité de rotation? Je veux faire en sorte que cela fonctionne aussi si l'application est lancée en mode paysage. Quelle est la meilleure façon d'initialiser mes composants quand le UIViewController est lancé, en gardant à l'esprit que je veux du support pour les deux orientations, et en gardant à l'esprit que je veux pouvoir changer la taille de tout en fonction des changements d'orientation de la vie du UIViewController? Merci!
Avez-vous essayé des masques de redimensionnement automatique? – Pripyat
qu'est-ce que c'est? peux-tu me montrer un exemple? – CodeGuy