Пейзажный режим ТОЛЬКО для iPhone или iPad

Я хочу создать приложение, которое не использует портретный режим.

Я не уверен, нужно ли мне редактировать plist или иметь код в дополнение к plist

Ответ 1

Код, найденный здесь

Запуск в альбомном режиме

Приложения в iPhone OS обычно запуск в портретном режиме в соответствии с ориентация главного экрана. если ты иметь приложение, которое выполняется в обоих портрет и пейзаж, ваш приложение всегда должно запускаться в портретный режим, а затем его контроллеры обзора вращают интерфейс по мере необходимости на основе устройств. Если ваш приложение работает в ландшафтном режиме только, однако, вы должны выполнить следующие шаги, чтобы ландшафтной ориентации.

  • В вашем файле Info.plist приложения добавьте UIInterfaceOrientation
    и установите его значение для ландшафтный режим. Для пейзажа ориентации, вы можете установить значение этого ключа для
    UIInterfaceOrientationLandscapeLeft
    или
    UIInterfaceOrientationLandscapeRight.

  • Разместите свои представления в ландшафтном режиме и убедитесь, что их заданы параметры авторазмера правильно.

  • Переопределите контроллеры просмотра shouldAutorotateToInterfaceOrientation:метод и возврат YES только для
    желаемая ориентация ландшафта и NO
    для портретных ориентаций.

Ответ 2

Чтобы сделать режим ландшафта вашего приложения только, вы должны использовать "Ориентация поддерживаемого интерфейса". (Targets -> YourApp -> Supported Interface Orientations -> Landscape Left & Right)

Supported Interface Orientations

Вы также должны установить ориентацию приложения в своем приложении Info.plist file (Info.plist file), добавив ключ Supported interface orientations со значениями Landscape (left home button) и Landscape (right home button). row's

Вы можете использовать willRotateToInterfaceOrientation и/или didRotateFromInterfaceOrientation для обработки изменений ориентации.


shouldAutorotateToInterfaceOrientation устарел от iOS 6 и вышел.

Возврат UIDeviceOrientationLandscapeLeft/Right для shouldAutorotateToInterfaceOrientation должен сделать ваше приложение "ландшафтом":

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}

Также можно изменить ваше приложение Info.plist и View Orientation (как описано выше).


Кроме того, я рекомендую изменить ориентацию вида на Landscape в Инспекторе атрибутов. landscape

Ответ 3

Вы также можете просто сократить все это до

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // Return YES for supported orientations
    return UIInterfaceOrientationIsLandscape(interfaceOrientation);
}

Ответ 4

отредактируйте plist только для поддержки ландшафта, затем убедитесь, что в каждом uiviewcontroller/uitabbar и т.д. в shouldAutoRotateToInterfaceOrientation, return говорит return ((interfaceOrientation == UIInterfaceOrientationLandscapeLeft) || (interfaceOrientation == UIInterfaceOrientationLandscapeRight));.