Ландшафтный режим и расположение InView в открытых окнах - PullRequest
1 голос
/ 21 декабря 2009

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

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

Ответы [ 2 ]

2 голосов
/ 23 декабря 2009

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

1 голос
/ 20 сентября 2010

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

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

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

...