В данном обработчике событий (не "shouldAutorotateToInterfaceOrientation" метод), как я обнаруживаю текущую ориентацию iPad? У меня есть текстовое поле, которое я должен анимировать (когда клавиатура появляется) в представлении Landscape, но не в портрете просматривают и хотят знать, в какой ориентации я нахожусь видеть, необходима ли анимация.
Информация об ориентации не очень согласована, и есть несколько подходов. В контроллере представления можно использовать свойство interfaceOrientation
. Из других мест вы можете позвонить:
[[UIDevice currentDevice] orientation]
Кроме того, вы можете запросить получение уведомлений об изменении ориентации:
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationChanged:) name:UIDeviceOrientationDidChangeNotification object:nil];
Некоторым людям также нравится проверять ориентацию строки состояния:
[UIApplication sharedApplication].statusBarOrientation
Одно из:
interfaceOrientation
активного контроллера представления. [Совместное приложение UIApplication] .statusBarOrientation
. [UIDevice currentDevice] .orientation
. (Вам может потребоваться позвонить -beginGeneratingDeviceOrientationNotifications
.)