2010-06-03 8 views
3

J'étais curieux de savoir s'il y avait un moyen de déterminer l'orientation d'un écran sur iPhone/iPad.Comment puis-je interroger l'orientation actuelle d'un écran iPhone/iPad?

actuellement en train je me trouve une variable membre lorsque ce message est appelé:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    self.orientation = interfaceOrientation; 
    return YES; 
} 

... qui se sent comme quelque chose que je devrais être en mesure d'interroger comme un état au lieu d'avoir à suivre quand il change .

Répondre

11

UIViewController a la propriété interfaceOrientation. Ne pas confondre par l'orientation dans UIDevice, qui n'est pas l'orientation de l'interface, mais l'orientation physique.

+0

C'est une distinction subtile mais importante. Merci d'avoir répondu. – ra9r

+0

déprécié dans iOS8. Les documents recommandent: 'viewWillTransitionToSize: withTransitionCoordinator:' – SimplGy

1

Vous pouvez faire [[UIDevice currentDevice] orientation].

+1

Ceci n'est pas * la bonne façon pour l'orientation de l'interface. Dans le manuel: "La propriété orientation utilise ces constantes pour identifier l'orientation de l'appareil Ces constantes identifient l'orientation physique de l'appareil et ne sont pas liées à l'orientation de l'interface utilisateur de votre application." – Eiko

11

Utilisez cette option si vous avez une barre d'état en haut.

UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation]; 
if (orientation == UIInterfaceOrientationPortrait || orientation == UIInterfaceOrientationPortraitUpsideDown) { 
    // portrait    
} else { 
    // landscape 
} 
+0

Renvoie-t-il l'orientation de mon 'UIView'? – iOmi