UIInterfaceOrientationLandscapeLeft et UIInterfaceOrientationLandscapeLeft sont inversés?
-
05-07-2019 - |
Question
La documentation indique:
UIInterfaceOrientationLandscapeLeft
L’appareil est en mode paysage, l’appareil étant maintenu à la verticale et le bouton principal situé à droite.
UIInterfaceOrientationLandscapeRight
L’appareil est en mode paysage, l’appareil étant maintenu à la verticale et le bouton principal situé à gauche.
Cependant, je les fais exactement inverser. Peut-il vraiment y avoir une telle erreur dans le SDK, ou suis-je en train de devenir fou?
Code:
+ (NSString *)NSStringFromUIInterfaceOrientation:(UIInterfaceOrientation)o
{
switch (o) {
case UIInterfaceOrientationPortrait: return @"UIInterfaceOrientationPortrait";
case UIInterfaceOrientationPortraitUpsideDown: return @"UIInterfaceOrientationPortraitUpsideDown";
case UIInterfaceOrientationLandscapeLeft: return @"UIInterfaceOrientationLandscapeLeft";
case UIInterfaceOrientationLandscapeRight: return @"UIInterfaceOrientationLandscapeRight";
}
return nil;
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
NSLog(@"Should: %@", [[self class] NSStringFromUIInterfaceOrientation:toInterfaceOrientation]);
return YES;
}
Je colle le code ci-dessus dans RootViewController.m du modèle d'application basé sur la navigation par défaut.
Suivi: signalé comme bogue 7216046 .
La solution
Êtes-vous sûr de lire la documentation correctement? Notez que la position du bouton d'accueil et la valeur d'orientation sont opposées , c'est-à-dire UIInterfaceOrientationLandscapeLeft
implique le bouton d'accueil du côté droit , et UIInterfaceOrientationLandscapeRight
implique le bouton d'accueil du côté gauche . Assurez-vous que vous faites pivoter votre appareil pour vérifier correctement.
Modifier: j'ai confirmé le problème présenté dans la question d'origine. Cela ressemble à un bug, à moins que quelque chose ne me manque aussi.