В моем приложении изображение появляется, когда пользователь встряхивает устройство. Существуют разные изображения для ландшафтного и портретного режима. Если iPhone имеет ориентацию книжную или альбомную , он работает нормально. Но если это UIDeviceOrientationFaceDown
или UIDeviceOrientationFaceUp
, изображение должно зависеть от последней использованной ориентации, потому что вид все еще отображается для этой ориентации.
Как узнать последнюю ориентацию устройства?
Я разобрался! Пришлось проверить ориентацию строки состояния!
[UIApplication sharedApplication].statusBarOrientation
В методе shouldAutoRotate класса передается параметр interfaceOrientation. Этот метод вызывается каждый раз, когда изменяется ориентация устройства. Вы можете сохранить его как переменную и посмотреть на него позже, чтобы определить последнюю ориентацию.
1 = standard portrait
2 = upsidedown
3 = button right landscape
4 = button left landscape.
Также вызов self.interfaceOrientation даст вам текущую ориентацию устройства.
Надеюсь, это хотя бы поможет вам начать двигаться в правильном направлении.