2010-11-10 17 views
6

ho utilizzare questo codice:iPad orientamento restituisce valori sconosciuti

UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation];

per ottenere l'orientamento iPad ma restituisce UIDeviceOrientationUnknown quando uso il rendering OpenGL. Quando riproduco film o visualizzo UIViews restituisce il valore corretto. Sai come posso ottenere un orientamento corretto? Non voglio usare l'accelerometro perché voglio sapere quando il dispositivo ha bloccato l'orientamento.

Grazie!

+0

Sai come posso ottenere lo stato del pulsante di orientamento della serratura? – Felics

+0

Non preoccuparti del pulsante di orientamento del blocco. Non è più una funzionalità in iOS 4.2. –

+0

@ Evan: Sì, è appena stato spostato dall'interruttore hardware al software. Leggi letteralmente qualsiasi recensione di iOS 4.2. –

risposta

0

Se aggiungo [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]; l'orientamento sarà corretto anche in modalità di rendering OpenGL. UIDeviceOrientationUn orientamento sconosciuto a volte viene restituito ma solo per un breve periodo.

16

Vi sono situazioni in cui l'accelerometro non può ottenere una lettura accurata dell'orientamento, ad esempio quando il dispositivo viene tenuto piatto. Si dovrebbe comunque essere in grado di ottenere l'orientamento corrente utilizzando:

UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation]; 
+0

Evento se tengo il dispositivo in una posizione normale l'orientamento è UIDeviceOrientationUnknown, ma SOLO quando utilizzo il rendering OpenGL. Nascondo la barra di stato e l'orientamento è sempre verticale. – Felics

+0

L'orientamento statusBar non ha prezzo. Grazie! – Eugene

+0

Questo approccio ha risolto i miei problemi con lo "sconosciuto" –

Problemi correlati