, если вы добавите правило в файл 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>
Чтобы отключить ориентации для конкретного контроллера вида , теперь вы должны переопределить 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 .
.
Для тех, кто пропустил его: вы можете использовать экран настроек проекта, чтобы зафиксировать ориентации по всему приложению (нет необходимости переопределять методы в каждом контроллере):
Это так же просто, как переключение поддерживаемых ориентаций интерфейса. Вы можете найти, нажав на свой проект в левой панели> цель приложения> вкладка Сводка.
Если вы хотите отключить альбомную ориентацию для как iPhone, так и iPad .
Перейдите на Цели и Перейдите на вкладку Общие . См. Экран ниже и отмените выбор ландшафта влево и пейзаж вправо .
Здесь в этом случае будет отключен только альбомный режим iPhone, а не iPad. Для iPad доступны все режимы . Если вы хотите выбрать вариант устройства от универсального до iPad. Это будет выглядеть так. Смотрите ниже экран.
Теперь вам нужно отменить выбор всех режимов , кроме «Портрет» для iPad. Смотрите скриншот ниже.
Теперь вы успешно отключили все режимы , кроме «Портрет» для всех устройств .
Удаление метода shouldAutorotateToInterfaceOrientation
из вашего класса полностью также работает. Если вы не планируете ротацию, то нет смысла использовать метод в вашем классе: чем меньше кода, тем лучше, и все будет в порядке.
Большая часть простого решения, отдельного для iPhone и iPad (Universal) - удалять ненужную ориентацию в файл info.plist или , Целевые Свойства .
iOS Project-> Info-> CustomПросто добавляют или удаляют объект ориентации из списка: