iOS не будет вращаться - PullRequest
       70

iOS не будет вращаться

2 голосов
/ 02 сентября 2011

Я пытаюсь добавить автоповорот в свое приложение, но у меня возникают трудности.Я могу получить все для изменения размера (TableView и несколько меток), но строка состояния и остальная часть моего окна (например, панель вкладок и контроллер навигации) остаются в портретной ориентации.У меня есть иерархия трех представлений от окна до верхнего ViewController, и у меня все в shouldAutorotateToInterfaceOrientation установлено на YES, у меня также есть все, кроме перевернутого, выбранного в разделе Summary свойств цели, но она отказывается сдвигаться.Это происходит на симуляторе и на iPhone 4. Обе версии 4.3 на XCode 4. Я просмотрел документы Apple по ориентациям вида, но есть ли где-то еще, мне нужно установить это?

В моем Info.plistУ меня есть следующее:

<key>UISupportedInterfaceOrientations</key>
<array>
    <string>UIInterfaceOrientationPortrait</string>
    <string>UIInterfaceOrientationLandscapeLeft</string>
    <string>UIInterfaceOrientationLandscapeRight</string>
</array>

Ответы [ 2 ]

5 голосов
/ 02 сентября 2011

В конце концов я обнаружил, что если у вас есть UITabBarController, все представления вкладок должны поддерживать вращение. Следует сэкономить время, вспомнив:

  • Ничего будет вращаться, пока все вкладки в UITabBarController не будут поддерживать вращение
  • Если вы попытаетесь изменить размер вручную при вращении представления, будет намного проще установить параметры размера для каждого элемента управления в вашем кончике. Установите якорные позиции и правила растяжения, и большинство вещей, похоже, «просто работают».
  • Сегментированные элементы управления, кажется, нуждаются в ручном изменении размера в методе - (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
0 голосов
/ 02 сентября 2011

В своем вопросе вы указываете

У меня все в shouldAutorotateToInterfaceOrientation установлено на ДА

, но я не уверен, что вы подразумеваете под этим.Если вы поддерживаете все ориентации, просто верните YES

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

Может случиться так, что то, что у вас здесь происходит (, поскольку вы не опубликовали свой код ), не являетсяработает как положено.

...