Запуск приложения для iPhone в Среде
Этот документ описывает подробные данные того, как запустить Ваше приложение для iPhone в альбомной ориентации.
Введение
приложения для iPhone обычно начинают в режиме портрета соответствовать ориентацию домашнего экрана. Однако много приложений для iPhone и iPod touch лучше подходят для альбомного режима. Если у Вас есть приложение, работающее в альбомном режиме только, необходимо реализовать несколько шагов, чтобы заставить его первоначально запуститься в желаемой ориентации. Этот документ затрагивает эту тему подробно, включая протесты так, чтобы приложения, работающие на всех версиях iOS, могли функционировать должным образом.
Интерфейсная ориентация и строка состояния
В файле Вашего приложения «Info.plist» добавьте UISupportedInterfaceOrientations ключ с UIInterfaceOrientationLandscapeLeft и UIInterfaceOrientationLandscapeRight значения как показано в Перечислении 1
Перечисление 1 , конфигурирующее UISupportedInterfaceOrientations ключ
<key>UISupportedInterfaceOrientations</key> |
<array> |
<string>UIInterfaceOrientationLandscapeLeft</string> |
<string>UIInterfaceOrientationLandscapeRight</string> |
</array> |
Посмотрите информационную Ключевую Ссылку Списка свойств для полного списка приемлемых значений.
Также от страницы Summary цели сборки Ваших приложений в XCode, включите только опции Landscape Left и Landscape Right при Поддерживаемых Интерфейсных Ориентациях как показано на рисунке 1.

Значения, указанные для UISupportedInterfaceOrientations ключ определяет, как строка состояния может быть расположена, в то время как запускается приложение. Если UIInterfaceOrientationPortrait значение присутствует, строка состояния будет расположена для портретной ориентации. Иначе, строка состояния будет расположена согласно первому значению ориентации, появляющемуся в списке.
На iOS 6 отсутствие интерфейсной ориентации оценивает от UISupportedInterfaceOrientations ключ препятствует тому, чтобы Ваше приложение вращалось к той ориентации после запуска, даже если корневой контроллер представления окна приложения поддерживает ту ориентацию. Это обеспечивает быстрый способ ограничить интерфейсные ориентации, поддерживаемые Вашим приложением, не реализовывая методов в контроллерах представления Ваших приложений. См. Руководство по программированию Контроллера Представления для получения дополнительной информации.
Конфигурирование окна приложения
Ваше приложение должно присвоить контроллер представления своему окну rootViewController свойство прежде, чем возвратиться из application:didFinishLaunchingWithOptions:. Если Ваше приложение использует раскадровку для указания ее интерфейса, это обрабатывается автоматически.
Методы для реализации в контроллерах представления приложения
Для контроллера представления для поддержки альбомной ориентации на iOS 6 Вы ничего не должны делать. По умолчанию контроллеры представления на iOS 6 поддерживают все ориентации кроме портрета вверх тормашками. Однако, потому что UIInterfaceOrientationPortrait не был включен в список интерфейсных значений ориентации для UISupportedInterfaceOrientations введите информационный Список свойств своего приложения, приложение не будет вращаться в портретную ориентацию, оставляя среду оставленной и альбомное право как единственные позволенные ориентации. См. Руководство по программированию Контроллера Представления для получения дополнительной информации.
Для контроллера представления для поддержки альбомной ориентации на iOS 5 это должно переопределить shouldAutorotateToInterfaceOrientation: метод как показано в Перечислении 2.
Перечисление 2 , Гарантирующее, что сохраняется альбомная ориентация
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation |
{ |
return UIInterfaceOrientationIsLandscape(interfaceOrientation); |
} |
Разработка представлений приложения
При использовании Интерфейсного Разработчика для разметки представлений, можно или измерить представления как среду, например полноэкранное представление имело бы ширину 480 и высоту 320, или можно разметить представления в режиме портрета и позволить поведению автоизменения размеров представления привести расположение в соответствие с Вами.
При вращении поверхности для дизайна от портрета до альбомного режима, как показано на рисунке 2, Интерфейсный Разработчик уважает набор способов поведения автоизменения размеров за каждое представление и корректирует их позицию на поверхности для дизайна. Можно поэтому протестировать поведение представлений в Интерфейсном Разработчике прежде, чем загрузить их в приложение.

Независимо от того, как Вы ориентируете поверхность для дизайна в Интерфейсном Разработчике, помните, что xib файлы и сами сцены раскадровки не имеют никакого понятия интерфейсной ориентации.
Разрешение Приложения Вращаться В Портретную ориентацию После Запуска на iOS 6
Даже если Ваше приложение прежде всего выводит на экран свое содержание в среде, это может быть выгодно или необходимо представить определенные контроллеры представления в портретной ориентации. Когда UIKit обнаруживает изменение в ориентации устройства, он использует UIApplication возразите и корневой контроллер представления, чтобы определить, позволяется ли новая ориентация. Если оба объекта соглашаются, что новая ориентация поддерживается, то пользовательский интерфейс повернут к новой ориентации. Иначе ориентация устройства проигнорирована.
По умолчанию, UIApplication объектные источники его поддерживаемые интерфейсные ориентации от значений, указанных для UIInterfaceOrientationPortrait введите информационный Список свойств приложений. Можно переопределить это поведение путем реализации application:supportedInterfaceOrientationsForWindow: метод в делегате Вашего приложения. Поддерживаемые значения ориентации, возвращенные этим методом только, вступают в силу после того, как приложение закончило запускаться. Можно поэтому использовать этот метод для поддержки различного набора ориентаций после запуска.
Перечисление 3 , Позволяющее Ваше приложение вращаться в портрет после запуска.
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window |
{ |
return UIInterfaceOrientationMaskAllButUpsideDown; |
} |
Вспомните, что контроллеры представления на iOS 6 поддерживают портрет и обе альбомных ориентации по умолчанию. Без UIApplication вращение предотвращения объекта в портретную ориентацию на уровне приложения, необходимо будет реализовать supportedInterfaceOrientations как показано в Перечислении 4 для всех контроллеров представления, которые должны только вывести на экран в среде.
Перечисление 4 , Поддерживающее только альбомные ориентации для контроллера представления.
- (NSUInteger)supportedInterfaceOrientations |
{ |
return UIInterfaceOrientationMaskLandscape; |
} |
Поскольку iOS 6 использует только поддерживаемые интерфейсные ориентации корневого контроллера представления окна приложения, можно найти что контроллер представления supportedInterfaceOrientations метод не вызывают, если это в контейнере, таком как a UINavigationController, который не вовлекает его дочерние контроллеры представления в решение его поддерживаемых интерфейсных ориентаций. В этом случае необходимо разделить на подклассы UINavigationController и переопределение supportedInterfaceOrientations как показано в Перечислении 4.
История версии документа
| Дата | Примечания |
|---|---|
| 09.08.2013 | Обновленный для покрытия изменений в авторотации, начатых с iOS 6. |
| 29.06.2009 | Новый документ, описывающий, как запустить Ваше приложение для iPhone в альбомной ориентации во время запуска. |