2009-12-21 10 views
14

Estoy tratando de averiguar qué orientación tiene el iphone en el simulador y, en lugar de dársela usando la propiedad de orientación UIDevice, simplemente obtengo UIDeviceOrientationUnknown.UIDeviceOrientationDesconocido en modo apaisado

¿Esta propiedad no funciona en el simulador? ¿Cuál podría ser la posible razón de que esto suceda?

estoy usando es OpenGL

+0

¿Esto es un error? –

Respuesta

12

en primer lugar, a partir de la documentación sobre orientation propiedad de la instancia UIDevice

El valor de esta propiedad siempre devuelve 0 a menos que las notificaciones de orientación se han habilitado llamando beginGeneratingDeviceOrientationNotifications.

y sí, funcionará solo en el dispositivo real. pero puede usar, por ejemplo, el simulador de acelerómetro this.

+0

Lo sentimos pero no, no funciona solo en el dispositivo real. Acabo de registrar una orientación de dispositivo de paisaje en el simulador y luego una de retrato. Tal vez no fue el caso con las versiones anteriores de SDK ... (Estoy en 3.1.3) Supongo que podemos usar - [UIApplication statusBarOrientation] para determinar la orientación actual de la interfaz (excepto si cambiamos manualmente la orientación de la barra de estado)) Y no estoy seguro de si esto funcionará con una barra de estado oculta. – Unfalkster

+0

no funciona también en un iPad con 4.2.1 – SpaceDog

+1

Esto funciona en el simulador, pero no todo el tiempo. Use [[UIApplication sharedApplication] statusBarOrientation], como se menciona en la respuesta a continuación. –

44

También puede utilizar:

UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation]; 

que funciona incluso sin llamar beginGeneratingDeviceOrientationNotifications.

+0

bueno, funciona y me salvó algunos dolores de cabeza =) – Dave

+0

mejor solución. Encontré que el problema ocurrió en iOS 6 y en el nuevo iPad. Tus consejos resolvieron mi problema. Muchas gracias –

+2

Glad iOS tiene esta alternativa! – RyJ

Cuestiones relacionadas