Я знаю, что эта тема привлекает много внимания здесь, в SO, но ни одно из «решений» не работает для меня. Вот ситуация:
iPad ровно лежит на моем столе (ориентация устройства лицевой стороной вверх), главный экран отлично читается, но кнопка «Домой» находится сверху. Таким образом, это эффективно показывает ориентацию интерфейса "Книжная вверх ногами".
я запускаю свое приложение
Приложение вызывает
beginGeneratingDeviceOrientationNotifications
, чтобы убедиться, что акселерометр работает, и приходят уведомления об ориентации.При запуске мое приложение запрашивает как «ориентацию интерфейса», так и «ориентацию устройства». Результаты:
STARTUP ORIENTATION: INTERFACE ORIENTATION: UIInterfaceOrientationPortrait DEVICE ORIENTATION: UIDeviceOrientationFaceUp
В документах Apple говорится, что каждое приложение (интерфейс?) запускается в портретной ориентации, так что это может иметь смысл. Ориентация устройства также правильная, потому что это действительно лицо вверх.
Сразу после запуска приходит первое уведомление об ориентации:
NOTIFICATION 1: INTERFACE: UIInterfaceOrientationPortrait DEVICE: UIDeviceOrientationPortrait
Опять же, портрет для интерфейса (что противоречит тому, что я ожидал, домашний экран показывал себя в перевернутой ориентации), устройство, как говорят, тоже находится в портретной ориентации (что не так, но это, очевидно, умная схема, чтобы определить, как ориентировать содержимое вашего приложения, когда устройство находится лицевой стороной вверх или вниз).
Как отмечают многие, следует еще одно (только одно, а не два) уведомление об ориентации:
NOTIFICATION 2: INTERFACE: UIInterfaceOrientationPortrait DEVICE: UIDeviceOrientationFaceUp
По-прежнему книжная (а не перевернутая) для интерфейса и обратно лицевой стороной вверх для устройства (что правильно).
Мое приложение настраивается правильно и отображается вверх ногами, что совершенно неправильно.
Что я могу сделать, чтобы узнать последнюю известную ориентацию, которая отображается на главном экране и в другом пользовательском интерфейсе на iPad?
Это приложение OpenGL только с окном и представлением. Я уже добавил в смесь UIViewController, чтобы увидеть, дает ли это более точную информацию, но это то же самое и неправильно. Я знаю, что я не единственный разработчик, который борется с этим, потому что многие приложения, которые у меня есть на моем iPad, тоже делают это неправильно, вам нужно наклонить устройство, чтобы они правильно сориентировались. Но некоторые приложения делают все правильно, в чем секрет?