от
Обратите внимание, что этот вопрос с 2008 года и сейчас имеет только исторический интерес. Что это лучший способ, чтобы создать приложение для iPhone, которое работает в ландшафтном режиме с самого начала, независимо от положения устройства? Как программно, так и с помощью построителя интерфейса.

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.

9 Ответы

0 голосов
от
Обратите внимание, что этот вопрос с 2008 года и сейчас имеет только исторический интерес. Что это лучший способ, чтобы создать приложение для iPhone, которое работает в ландшафтном режиме с самого начала, независимо от положения устройства? Как программно, так и с помощью построителя интерфейса.
0 голосов
от
Только исторический ответ. Невероятно устарели. Обратите внимание, что этот ответ сейчас очень устарел/ Этот ответ является только исторический курьез. Захватывающие новости! Как обнаружил Андрей ниже, эта проблема была исправлена компанией Apple в 4.0 . Казалось бы, больше нет необходимости в силу размера просмотра на каждый вид, а конкретная серьезная проблема ландшафта "работает только в первый раз" была решена. По состоянию на апрель 2011 года, это не возможно, чтобы проверить или даже что-нибудь построить ниже 4.0, так что вопрос чисто исторического любопытства. Это невероятно, сколько проблем это вызвало разработчики так долго! Вот оригинал обсуждения и решения. Это теперь совершенно неуместна, так как эти системы даже не работает. Это чрезвычайно трудно сделать эту работу в полной мере-есть как минимум три проблемы/баги в игре. попробовать этот интерфейс .. конструктор ландшафтного дизайна Отметим, в частности, где он говорит: "и вы должны использовать shouldAutorotateToInterfaceOrientation правильно везде", это значит везде, все ваши полноэкранный вид. Надеюсь, что это помогает в этом кошмаре! Важное напоминание дополнительного известные проблемы: если вы пытаетесь переключаться между более чем одним видом (все), он просто не работает. Важно помнить об этом или вы будете тратить дни на проблему. Это буквально не возможно. Это самый большой открытый, известный, баг на платформе iOS. Нет буквально никакого способа, чтобы сделать аппаратный сделать второй вид загрузки, быть пейзаж. Раздражает, но простое решение, и что вы должны сделать, - это иметь тривиальный мастер для UIViewController, который ничего не делает, кроме как сидеть здесь и позволить вам переключаться между вашим видом. Другими словами, в iOS из-за основных ошибок:
[window addSubview:happyThing.view];
[window makeKeyAndVisible];
Вы можете сделать это только один раз. Позже, если вы попытаетесь удалить happyThing.вид, и вместо того, чтобы положить туда newThing.вид, он не работает - и Баста. Машина никогда не повернет посмотреть на пейзаж. Никакого подвоха исправить, даже Apple не может заставить его работать. Решение вы должны принять это в целом для UIViewController, который просто сидит и просто держит ваши различные взгляды (happyThing, newThing и т. д.). Надеюсь, что это помогает!
0 голосов
от
С сайта разработчика Apple: Чтобы запустить приложение в альбомном режиме, так что статус-бар в сразу соответствующую позицию, редактирование ваши информация.plist файл, чтобы добавить Ключ UIInterfaceOrientation с соответствующее значение (UIInterfaceOrientationLandscapeRight или UIInterfaceOrientationLandscapeLeft), как показано в листинге 2. Листинг 2. Запуск приложения в ландшафтном режиме
0 голосов
от
Резюме и интеграция со всех постов, после тестирования его сам; проверить обновления 4.х, 5.х ниже. Как на 3.2 вы не можете изменить ориентацию работы приложения от кода. Но вы можете запустить приложение с фиксированной ориентации, хотя это не просто. Попробуйте этот рецепт: установить ориентацию
UISupportedInterfaceOrientations
в файле
Info.plist
в окне определите контроллер 480х320 "базовый вид". Каждый вид будет добавлен в качестве подпанели к ее мнению. во всех вид контроллеров настроить метод
shouldAutorotateToInterfaceOrientation:
(должен возвращать одинаковое значение, определенное в файле plist, конечно) во всех вид контроллеров установить фоновое представление с
self.view.frame = CGRectMake(0, 0, 480, 320)
в
viewDidLoad
способ. Обновление (прошивкой 4.х, 5.х): Руководство по программированию приложения для iOS имеет "запуск в ландшафтном режиме" пункт в "дополнительные приложения проделки" главы. Ссылки: интерфейс строителя ландшафтный дизайн интерфейс строителя ландшафтный дизайн-1
0 голосов
от
Сначала я поставил в инфо.файл plist
0 голосов
от
ответ ссуу и michaelpryor это представляется правильным, но если это не работает для вас, попробуйте этот вариант:


Или вот этот:

[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationLandscapeRight];
Или вот этот:
[application setStatusBarOrientation: UIInterfaceOrientationLandscapeRight animated:NO];
Также вы можете позвонить
window makeKeyAndVisible;
первый. Несколько ссылок: развивается в ландшафтном режиме, комплекта разработчика ПО iPhone: Как только сила ландшафтном режиме? @Роберт: пожалуйста, ознакомьтесь с iPhone SDK, в НДА, и переполнение стека.
0 голосов
от
Я удивлен, что никто не придумал этого ответа: Во всех моих тестах при увольнении регулятора модальное представление преимущественная ориентация на родительский вид контроллера находится в
shouldAutorotateToInterfaceOrientation
честь, даже если часть UINavigationController. Таким образом, решение этого проста: Создать дамми для UIViewController с помощью UIImageView для фона. Установки по умолчанию.png изображение, ваше приложение использует при запуске. Когда
viewWillAppear
вызывается в контроллере корневого представления, просто представить контроллер представления манекен без анимации. когда
viewDidAppear
вызывается в контроллере вид манекена, уволить контроллера представления с хорошим наплыва анимации. Не только эта работа, но она хорошо выглядит! Кстати, просто для уточнения, я делаю
viewWillAppear
корневого контроллера представления такой:
0 голосов
от
В последней прошивке руководство по программированию есть целый раздел, посвященный этому, с образцами кода. Я уверен, что это последнее дополнение, так может вы его пропустили. Это объясняет все условия, которые вы должны соблюдать, в основном... установить информация.файл plist свойства (это меняет положение в строке состояния, но не смотреть) вращать вручную вокруг своего центра, либо ваш метод viewDidLoad для UIViewController: метод или applicationDidFinishLaunching: метод или реализовать автоматический поворот ("функциями автоматического изменения поведения", стр. 124) Искать "запускать в ландшафтном режиме", стр. 102.
0 голосов
от
Посмотреть этот ответ: только ландшафтный режим на iPhone или iPad добавьте ориентация в файл plist shouldAutorotateToInterfaceOrientation = да во всех файлах Хотя если вы используете смешанные режимы, вы могли бы быть лучше с
[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationLandscapeRight];
...