Pergunta

Então, hoje eu implemento modo de paisagem para o meu aplicativo. É um aplicativo OpenGL ES. Eu girei 90 graus. A primeira coisa que noto é que os toques não funcionam mais. A razão é que a chamada para o LocationInview ainda está dando às coordenadas como se o aplicativo estivesse no modo retrato.

Como as pessoas normalmente lidam com isso? Tenho que escrever minha própria versão do LocationIView para levar em consideração a orientação do telefone? Ou há um modo melhor?

Foi útil?

Solução

Esse é o comportamento padrão. Se o iPhone está em retrato ou paisagem, as coordenadas da tela não mudam, então você precisará ajustar isso no seu aplicativo.

Outras dicas

Basicamente, duas abordagens, cada uma com suas próprias desvantagens/ativos.

  1. Você pode anexar seu GlView a um ViewController e deixá -lo manipular eventos de rotação e traduzir coordenadas de janelas para as coordenadas "View". Esse é o método mais fácil, mas seu desempenho de desenho pode ser comprometido.

  2. Gerencie a rotação você mesmo. Você precisará adicionar seus próprios métodos para lidar com as rotações, acionadas pela notificação UideviceRientationDidChangenotification. Este método deve incluir os comandos GL para girar a matriz, traduzir toques, etc.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top