2010-08-19 8 views
9

Nella mia app appare un'immagine quando l'utente scuote il dispositivo. Ci sono diverse immagini per la modalità orizzontale e verticale. Se l'orientamento dell'iPhone è verticale o orizzontale, funziona correttamente. Ma se è UIDeviceOrientationFaceDown o UIDeviceOrientationFaceUp, l'immagine deve dipendere dall'ultimo orientamento utilizzato, perché la vista è ancora visualizzata per questo orientamento.Come ottenere l'orientamento corrente della vista iPhone o l'ultimo orientamento del dispositivo?

Come posso ottenere l'ultimo orientamento del dispositivo?

risposta

26

L'ho capito! Dovevo controllare l'orientamento della barra di stato!

[UIApplication sharedApplication].statusBarOrientation 
+0

grazie mille :)))) – cV2

+2

Cosa succede se la barra di stato è nascosta? – Shailesh

+0

Grande fratello Grazie !!! –

2

Bene nel metodo shouldAutoRotate di una classe che passa in un parametro denominato interfacciaOrientazione. Questo metodo viene chiamato ogni volta che cambia l'orientamento del dispositivo. È possibile memorizzarlo come variabile e guardarlo in un secondo momento per determinare l'ultimo orientamento.

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

anche la chiamata di self.interfaceOrientation vi darà l'orientamento del dispositivo corrente.

Spero che questo almeno ti permetta di iniziare nella direzione corretta.

+0

self.interfaceOrientation mi dà solo UIDeviceOrientationFaceDown (Up), quindi non aiuta. Proverò a scoprire se l'interfacciaOrientation del metodo shouldAutoRotate viene sovrascritta quando l'orientamento è FaceUp. Grazie! – Knodel

Problemi correlati