Как я могу отключить альбомную ориентацию?

, если вы добавите правило в файл print.css, вам не нужно использовать @media.

Я включил его в smarty foreach, который я использовал, чтобы дать некоторым элементам цвет фона.

<script type='text/javascript'>
  document.styleSheets[3].insertRule(" #caldiv_<?smarty $item.calendar_id ?> { border-color:<?smarty $item.color ?> }", 1);
</script>

29
задан Mark Amery 22 January 2016 в 17:18
поделиться

7 ответов

Чтобы отключить ориентации для конкретного контроллера вида , теперь вы должны переопределить supportedInterfaceOrientations и preferredInterfaceOrientationForPresentation .

- (NSUInteger) supportedInterfaceOrientations {
    // Return a bitmask of supported orientations. If you need more,
    // use bitwise or (see the commented return).
    return UIInterfaceOrientationMaskPortrait;
    // return UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskPortraitUpsideDown;
}

- (UIInterfaceOrientation) preferredInterfaceOrientationForPresentation {
    // Return the orientation you'd prefer - this is what it launches to. The
    // user can still rotate. You don't have to implement this method, in which
    // case it launches in the current orientation
    return UIInterfaceOrientationPortrait;
}

Если вы ориентируетесь на что-то старше iOS 6, вам нужен метод shouldAutorotateToInterfaceOrientation: . Изменив значение «Да», вы определите, будет ли он вращаться в указанной ориентации. Это позволит только нормальную портретную ориентацию.

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

    // Use this to allow upside down as well
    //return (interfaceOrientation == UIInterfaceOrientationPortrait || interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown);
}

Обратите внимание, что shouldAutorotateToInterfaceOrientation: устарела в iOS 6.0 .

51
ответ дан Mark Amery 22 January 2016 в 17:18
поделиться

Xcode 5 и выше

  • Щелкните свой проект в Навигаторе проектов на левой боковой панели, чтобы открыть настройки проекта
  • Перейдите на вкладку Общие .
  • Снимите флажки с ненужных опций в разделе Информация о развертывании в разделе Ориентация устройства

screenshot showing where to click

.
38
ответ дан Mark Amery 22 January 2016 в 17:18
поделиться

Xcode 4 и ниже

Для тех, кто пропустил его: вы можете использовать экран настроек проекта, чтобы зафиксировать ориентации по всему приложению (нет необходимости переопределять методы в каждом контроллере):

enter image description here

Это так же просто, как переключение поддерживаемых ориентаций интерфейса. Вы можете найти, нажав на свой проект в левой панели> цель приложения> вкладка Сводка.

28
ответ дан Mark Amery 22 January 2016 в 17:18
поделиться

Если вы хотите отключить альбомную ориентацию для как iPhone, так и iPad .

Перейдите на Цели и Перейдите на вкладку Общие . См. Экран ниже и отмените выбор ландшафта влево и пейзаж вправо .

enter image description here

Здесь в этом случае будет отключен только альбомный режим iPhone, а не iPad. Для iPad доступны все режимы . Если вы хотите выбрать вариант устройства от универсального до iPad. Это будет выглядеть так. Смотрите ниже экран.

enter image description here

Теперь вам нужно отменить выбор всех режимов , кроме «Портрет» для iPad. Смотрите скриншот ниже.

enter image description here

Теперь вы успешно отключили все режимы , кроме «Портрет» для всех устройств .

1
ответ дан iOS 22 January 2016 в 17:18
поделиться

Удаление метода shouldAutorotateToInterfaceOrientation из вашего класса полностью также работает. Если вы не планируете ротацию, то нет смысла использовать метод в вашем классе: чем меньше кода, тем лучше, и все будет в порядке.

0
ответ дан Mark Amery 22 January 2016 в 17:18
поделиться

Xcode 8, Xcode 9, Xcode 10 и выше

enter image description here

0
ответ дан midhun p 22 January 2016 в 17:18
поделиться

Большая часть простого решения, отдельного для iPhone и iPad (Universal) - удалять ненужную ориентацию в файл info.plist или , Целевые Свойства .

iOS Project-> Info-> Custom

Просто добавляют или удаляют объект ориентации из списка:

  • ориентация интерфейса Supported для [1 110] ориентации интерфейса (iPad) iPhone
  • Supported для [1 112] iPad

enter image description here

0
ответ дан 27 November 2019 в 22:59
поделиться