2010-08-19 24 views
9

En mi aplicación aparece una imagen cuando el usuario sacude el dispositivo. Hay diferentes imágenes para el modo paisaje y retrato. Si la orientación del iPhone es vertical o horizontal, funciona bien. Pero si es UIDeviceOrientationFaceDown o UIDeviceOrientationFaceUp, la imagen dependerá de la última orientación utilizada, porque la vista todavía se muestra para esta orientación.¿Cómo obtener la orientación actual de la vista del iPhone o la última orientación del dispositivo?

¿Cómo puedo obtener la última orientación del dispositivo?

Respuesta

26

¡Lo he descubierto! ¡Tuve que verificar la orientación de la barra de estado!

[UIApplication sharedApplication].statusBarOrientation 
+0

muchas gracias :)))) – cV2

+2

¿Qué pasa si la barra de estado está oculta? – Shailesh

+0

¡Gracias! –

2

Bueno, en el método shouldAutoRotate de una clase pasa en un parámetro llamado interfaceOrientation. Este método se llama cada vez que cambia la orientación del dispositivo. Puede almacenar esto como una variable y verlo más adelante para determinar la última orientación.

1 = standard portrait 
2 = upsidedown 
3 = button right landscape 
4 = button left landscape. 

También la llamada de self.interfaceOrientation le dará la orientación actual del dispositivo.

Espero que esto al menos te ayude a empezar en la dirección correcta.

+0

self.interfaceOrientation me da simplemente UIDeviceOrientationFaceDown (Up), por lo que no ayuda. Trataré de averiguar si la interfaz orientation del método shouldAutoRotate se sobrescribe cuando la orientación es FaceUp. ¡Gracias! – Knodel

Cuestiones relacionadas