Подтвердить что ты не робот

Универсальное приложение с ориентацией на портфолио для iPhone и ландшафтной ориентацией для iPad

Я создаю универсальное приложение с помощью Swift. Я использовал Storyboard и Auto-Layouts. Требование состоит в создании универсального приложения, которое будет поддерживать портретную ориентацию только для iPhone и ландшафтной ориентации только для iPad.

У меня разработан интерфейс для iPhone, и теперь я буду запускать интерфейс для iPad.

Также пользовательский интерфейс, созданный для iPhone, не такой же, как пользовательский интерфейс, созданный для iPad, оба пользовательских интерфейса сильно отличаются.

Я собираюсь создать отдельные раскадровки для iPhone и iPad. Есть ли правильный способ достичь этого?

4b9b3361

Ответ 1

Перейдите в файл info.plist и добавьте массив с ключом "Поддерживаемые ориентации интерфейса (iPhone)" и добавьте в него следующие значения:

  • Портрет (нижняя кнопка дома)

Аналогичным образом добавьте еще один массив "Поддерживаемые интерфейсные ориентации (iPad)" и добавьте следующее:

  • Портрет (нижняя кнопка дома)
  • Пейзаж (кнопка останова дома)
  • Пейзаж (правая кнопка дома)

См. ниже: enter image description here

Ответ 2

Если вы развертываете свое приложение только для iOS 8, я бы использовал один раскадровки. Проще использовать один экран. Вот ссылка на отличный учебник. http://www.raywenderlich.com/83276/beginning-adaptive-layout-tutorial
Если вы похожи на меня и хотите нацелиться на iOS 6, я бы использовал отдельные раскадровки. Определенно придерживайтесь Auto Layout для того, что вы решите использовать.
Не забывайте, что мы должны начать поддерживать 64-разрядную версию.
Удачи!

Ответ 3

Если вы хотите установить это для определенного ViewController (разрешить все на iPad, но только портрет на iPhone), поместите это в свой класс ViewController (Swift 4):

override var supportedInterfaceOrientations:UIInterfaceOrientationMask {
    return UIDevice.current.userInterfaceIdiom == .pad ? UIInterfaceOrientationMask.all : UIInterfaceOrientationMask.portrait
}