modalità Landscape e locationInView a es OpenGL
Domanda
Così oggi a implementare modalità orizzontale per la mia app. Si tratta di un'applicazione OpenGL ES. Ho ruotato di 90 gradi. La prima cosa che noto è che gli ultimi non funzionano più. Il motivo è che la chiamata a locationInView sta ancora dando le coordinate come se l'applicazione è in modalità verticale.
Come fanno le persone di solito affrontare questo? Devo scrivere la mia versione di locationInView di prendere in considerazione l'orientamento del telefono? O c'è un modo migliore?
Soluzione
Questo è il comportamento di default. Se l'iPhone è in modalità ritratto o paesaggio le coordinate dello schermo non cambiano, quindi avrai bisogno per regolare che nella vostra applicazione.
Altri suggerimenti
fondamentalmente due approcci, ognuno con i propri inconvenienti / attività.
-
Si potrebbe collegare la GLview ad un viewcontroller e lasciarlo gestire gli eventi di rotazione e la finestra traducendo in coordinate "Visualizza". Questo è il metodo più semplice, ma le prestazioni di disegno potrebbe essere compromessa.
-
Gestisci la rotazione da soli. Avrai bisogno di aggiungere i propri metodi per trattare con le rotazioni, spinta dalla notifica UIDeviceOrientationDidChangeNotification. Questo metodo dovrebbe includere la GL comandi per ruotare la matrice, tradurre tocchi, etc ..