«self.interfaceOrientation» не обновляется в iOS 5 - PullRequest
0 голосов
/ 04 ноября 2011

Я недавно обновил свой iPad до iOS5 и обнаружил довольно странную проблему.У меня есть 2 разных макетов для обеих ориентаций в моем приложении.Я обновляю представления в методе didRotateFromInterfaceOrientation, используя ссылку из self.interfaceOrientation.Но теперь self.interfaceOrientation не обновляется, и представления отображаются странно.Может ли кто-нибудь пролить свет на этот вопрос.Есть что-то новое с iOS 5, которая доставляет мне эту проблему ???

Ответы [ 3 ]

0 голосов
/ 05 ноября 2011

Вы можете использовать

- (void) willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration

и установить ориентацию на переменную, но это не очень хорошее решение.

0 голосов
/ 13 ноября 2013

Я думаю, проблема в том, как вы на самом деле получаете ориентацию устройства.По моему опыту self.interfaceOrientation не всегда надежен.

Есть несколько способов получить текущее значение UIInterfaceOrientation, но, насколько я понимаю, получение ориентации из строки состояния является единственным относительно эффективным методом, поэтому попробуйте использовать его вместо этого:

[UIApplication sharedApplication].statusBarOrientation

Напоминание - UIInterfaceOrientation и UIDeviceOrientation - это не одно и то же!Они также могут обновляться в разное время в зависимости от того, как вы их инициализируете.

Вы также можете проверить этот ответ на аналогичный вопрос.

0 голосов
/ 05 ноября 2011

Я не знаю никаких изменений в iOS 5, но вот код, который я использовал с iOS 4 и с тех пор работал нормально.

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation{
    switch (toInterfaceOrientation){

       case UIInterfaceOrientationPortrait:
       case UIInterfaceOrientationPortraitUpsideDown:

       //change layout to Portrait 

       return YES;

       case UIInterfaceOrientationLandscapeLeft:
       case UIInterfaceOrientationLandscapeRight:

       //change layout to Landscape 

        return YES;

        default:
            return NO;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...