Как я могу получить реальную ориентацию устройства? - PullRequest
3 голосов
/ 23 июня 2011

Все,
Когда я заблокировал ориентацию экрана, я хочу использовать [[UIDevice currentDevice] ориентация] , чтобы получить ориентацию экрана, но он всегда возвращает UIDeviceOrientationPortrait , поэтомувопрос в том, как я могу получить ориентацию реального устройства.
большое спасибо.

Ответы [ 4 ]

0 голосов
/ 26 мая 2015

Другим решением может быть определение ориентации из библиотеки CoreMotion.Это исправит ошибку, когда книжная ориентация блокировки: вкл.См. Эту статью: http://codrspace.com/yuvirajsinh/device-orientation-detection-using-coremotion/

0 голосов
/ 23 июня 2011

Сначала необходимо включить генерацию уведомлений об ориентации согласно документации .

Вам нужно позвонить:

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]; 

Затем вы можете проверить ориентацию устройства. Вам необходимо сообщить устройству, что вы закончили получать ориентацию, чтобы сохранить заряд батареи. Вы делаете это по телефону:

[[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications];

Лично мне повезло больше с с использованием ориентации строки состояния . Это связано с тем, что иногда (например, когда устройство расположено на поверхности), ориентация устройства не будет «Пейзаж» или «Портрет».

0 голосов
/ 23 июня 2011

Убедитесь, что вы включаете уведомления об ориентации с помощью:

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];

Если это все еще не работает, вы также можете использовать строку состояния, чтобы выяснить текущую ориентацию (если ваш пользовательский интерфейс вращается) через:

[[UIApplication sharedApplication] statusBarOrientation];

0 голосов
/ 23 июня 2011

Если вы тестируете в симуляторе, знайте, что симулятор ужасно возвращает точные значения ориентации.Тест на устройстве.

...