Je travaille sur une application iPhone basée sur UITabBarController et UIViewControllers pour chaque page. L'application a besoin pour fonctionner en mode portrait uniquement, de sorte que chaque délégué contrôleur de vue + app va de pair avec cette ligne de code:Détection manuelle de la rotation
- (BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation)interfaceOrientation {
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
Il y a un contrôleur de vue où je voudrais faire apparaître une UIImageView lorsque l'iPhone est rotaed paysager. La conception de l'image semble paysage, bien que la largeur et la hauteur sont 320x460 (donc son portrait).
Comment puis-je/devrais-je détecter ce type de rotation manuellement, uniquement dans ce contrôleur de vue spécifique, sans avoir à effectuer une rotation automatique sur l'ensemble de la vue?
Thomas
MISE À JOUR:
Merci!
J'ajouté cet écouteur dans le viewDidLoad:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didRotate:)name:UIDeviceOrientationDidChangeNotification object:nil];
le didRotate ressemble à ceci:
- (void) didRotate:(NSNotification *)notification
{
UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation];
if (orientation == UIDeviceOrientationLandscapeLeft)
{
//your code here
}
}
Merci! J'ai ajouté cet écouteur dans viewDidLoad: [[NSNotificationCenter defaultCenter] addObserver: auto selector: @selector (didRotate:) nom: objet UIDeviceOrientationDidChangeNotification: nil]; l'didRotate ressemble à ceci: - (void) didRotate: (NSNotification *) notification {\t \t orientation UIDeviceOrientation = [[UIDevice currentDevice] orientation]; \t \t si (orientation == UIDeviceOrientationLandscapeLeft) \t { \t \t // votre code ici \t}} –
Amélioration mineure, utilisez la UIDeviceOrientationDidChangeNotification constante plutôt que sa valeur de chaîne (qui est @ "UIDeviceOrientationDidChangeNotification") –
N'oubliez pas de vous désinscrire en tant qu'auditeur pour l'événement ... – aroth