Неправильно просматривается в ландшафтном режиме - PullRequest
1 голос
/ 12 марта 2012

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

if([UIApplication sharedApplication].statusBarOrientation == UIInterfaceOrientationLandscapeLeft)
{
    return interfaceOrientation=UIInterfaceOrientationLandscapeLeft;
}
else if([UIApplication sharedApplication].statusBarOrientation == UIInterfaceOrientationLandscapeRight)
{
    return interfaceOrientation=UIInterfaceOrientationLandscapeRight;
}
else if([UIApplication sharedApplication].statusBarOrientation == UIInterfaceOrientationPortrait)
{
   return interfaceOrientation=UIInterfaceOrientationPortrait;
}   

Должен ли я сделать что-нибудь дополнительно? Этот код полезен для меня?

1 Ответ

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

Измените вашу реализацию shouldAutorotateToInterfaceOrientation: на следующую, если вы хотите поддерживать все возможные ориентации:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return YES;
}

Если вы хотите поддерживать только: UIInterfaceOrientationLandscapeLeft, UIInterfaceOrientationLandscapeRight и UIInterfaceOrientationPortrait, измените код на:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown;
}

Вам не нужно искать новую ориентацию в [UIApplication sharedApplication].statusBarOrientation, потому что она уже есть в качестве параметра.


Если вы хотите изменить положение элементов представления при повороте устройства, вы должны использовать их свойство autoresizingMask. Другим вариантом является реализация метода willRotateToInterfaceOrientation.

Вы можете изменить autoresizingMask элементов представления в Интерфейсном Разработчике в Инспекторе размера . Попробуйте экспериментировать с различными комбинациями, пока не получите нужный результат.

enter image description here

Наконец, обратите внимание, что если ваш вид сложен или радикально отличается в каждой ориентации, лучше всего использовать два файла xib: один для портрета и один для ландшафта.

...