Вопрос

Итак, сегодня я реализую ландшафтный режим для своего приложения.Это приложение OpenGL.Я повернул его на 90 градусов.Первое, что замечаю, это то, что тач больше не работает.Причина в том, что вызов locationInView по-прежнему выдает координаты, как будто приложение находится в портретном режиме.

Как люди обычно с этим справляются?Нужно ли писать свою версию locationInView, чтобы учитывать ориентацию телефона?Или есть лучший способ?

Это было полезно?

Решение

Это поведение по умолчанию.Независимо от того, находится ли iPhone в книжной или альбомной ориентации, координаты экрана не меняются, поэтому вам нужно будет настроить это в своем приложении.

Другие советы

По сути, два подхода, каждый со своими недостатками/достоинствами.

  1. Вы можете прикрепить свой GLview к контроллеру представления и позволить ему обрабатывать события вращения и переводить координаты окна в координаты «вида».Это самый простой метод, но качество рисования может ухудшиться.

  2. Управляйте вращением самостоятельно.Вам потребуется добавить свои собственные методы для обработки ротаций, управляемых уведомлением UIDeviceOrientationDidChangeNotification.Этот метод должен включать команды GL для поворота матрицы, перевода касаний и т. д.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top