iPad не распознает правильную ориентацию интерфейса при запуске?
У меня есть приложение, которое можно запустить в портретном или ландшафтном режиме. Элементы управления на главном экране выглядят по-разному в зависимости от того, в каком режиме находится приложение.
Вот проблема - если я запускаю приложение в альбомном режиме, элементы управления не там, где они должны быть, они сохраняют свои позиции, как приложение в портретном режиме. Я попытался проверить это немного, и вот что я нашел -
в viewDidLoad и ViewWillappear я получаю информацию о том, что приложение находится в портретном режиме, хотя приложение находится в ландшафтном режиме. В поле зрения появилось правильное значение - ландшафтный режим. Проблема в том, что я хочу, чтобы эти компоненты были установлены на своих должных позициях, до того, как появится вид (если я не вижу их на экране).
Какой правильный способ справиться с этим?
РЕДАКТИРОВАТЬ: в viewDidLoad и ViewWillAppear, я называю это:
orientation = [self getOrientation];
if (orientation == OrientationsLandscape) {
NSLog(@"Landscape");
}
else {
NSLog(@"Portrait");
}
вот реализация [getOrientation]
- (int) getOrientation {
int currentOrientation = [UIApplication sharedApplication].statusBarOrientation;
if (UIInterfaceOrientationIsPortrait(currentOrientation)) return OrientationsPortrait;
else return OrientationsLandscape;
}
и перечисление def:
typedef enum {
OrientationsLandscape = 0,
OrientationsPortrait
} Orientations;
Теперь, если устройство находится в альбомном режиме, и я пытаюсь установить мое приложение, мне будет дважды напечатано "Портрет", вместо "Пейзаж".
2 ответа
Попробуй это:
[UIApplication sharedApplication].statusBarOrientation
Также важно убедиться, что вы правильно установили autoresizingMask
свойство всех ваших элементов пользовательского интерфейса. Во-вторых, когда у меня возникла эта проблема, я исправил ее в методе init. В инициализации вы должны контролировать ориентацию iPad, как предлагает SVGreg, и затем установить правильный фрейм для ваших элементов пользовательского интерфейса.