iPad не распознает правильную ориентацию интерфейса при запуске? - PullRequest
1 голос
/ 29 марта 2012

У меня есть приложение, которое может запускаться в портретном или ландшафтном режиме.Элементы управления на главном экране выглядят по-разному, в зависимости от того, в каком режиме находится приложение.

Вот проблема: если я запускаю приложение в альбомном режиме, элементы управления не там, где должны быть, они сохраняют свои позиции, как приложение в портретном режиме.Я попытался проверить это немного, и вот что я нашел -

в 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 ]

1 голос
/ 29 марта 2012

Попробуйте это:

[UIApplication sharedApplication].statusBarOrientation
0 голосов
/ 29 марта 2012

Важно также убедиться, что вы правильно установили свойство autoresizingMask всех элементов вашего интерфейса.Во-вторых, когда у меня возникла эта проблема, я исправил ее в методе init.В инициализации вы должны контролировать ориентацию iPad, как предлагает SVGreg, и затем установить правильный кадр для ваших элементов пользовательского интерфейса.

...