приложение для iPhone в альбомном режиме, 2 008 системах

Использовать полупрозрачное изображение PNG или использовать CSS3:

background-color:rgba(255,0,0,0.5);

Вот статья css3.info, Opacity, RGBA и компромисс (2007-06-03).

96
задан Jack Bashford 19 June 2019 в 02:01
поделиться

6 ответов

Только исторический ответ. Эффектно устарел.

Обратите внимание, что этот ответ сейчас сильно устарел /

Этот ответ является всего лишь историческим курьезом .


Замечательные новости! Как обнаружил Эндрю ниже, эта проблема была исправлена ​​Apple в версии 4.0+.

Похоже, больше НЕТ необходимости навязывать размер вида для каждого вида, и конкретная серьезная проблема ландшафта, «работающего только в первый раз», была решена.

По состоянию на апрель 2011 года невозможно протестировать или даже построить что-либо ниже 4.0, поэтому вопрос является чисто историческим курьезом. Невероятно, сколько хлопот это доставляло разработчикам так долго!


Вот исходное обсуждение и решение. Сейчас это совершенно неактуально, поскольку эти системы даже не работают.


ЧРЕЗВЫЧАЙНО ТРУДНО заставить эту работу работать полностью - есть как минимум три проблемы / ошибки.

попробуйте это .. ландшафтный дизайн построителя интерфейса

Обратите внимание, в частности, что там, где сказано «и вам нужно правильно использовать shouldAutorotateToInterfaceOrientation везде» , это означает везде, во всех ваших полноэкранных представлениях.

Надеюсь, это поможет в этом кошмаре!

Важное напоминание о ДОПОЛНИТЕЛЬНОЙ широко известной проблеме: если вы пытаетесь переключиться между БОЛЬШЕ ОДНОГО представления (все альбомные), ЭТО ПРОСТО НЕ РАБОТАЕТ . Об этом важно помнить, иначе вы потратите дни на решение проблемы. Это буквально НЕ ВОЗМОЖНО. Это самая большая открытая и известная ошибка на платформе iOS. Буквально невозможно заставить аппаратное обеспечение делать второй вид, который вы загружаете, альбомным. Раздражающий, но простой обходной путь, и то, что вы должны сделать, - это иметь тривиальный главный UIViewController, который ничего не делает, кроме как сидеть и позволять вам переключаться между вашими представлениями.

Другими словами, в iOS из-за серьезной ошибки знания:

[window addSubview:happyThing.view];
[window makeKeyAndVisible];

Вы можете сделать это только один раз .Позже, если вы попытаетесь удалить happyThing.view и вместо этого вставить newThing.view, ЭТО НЕ РАБОТАЕТ - И ЭТО ТАКОЕ. Аппарат никогда не повернет вид на альбомный. Здесь нет никаких уловок, даже Apple не может заставить его работать. Обходной путь, который вы должны принять, - это иметь общий UIViewController, который просто сидит там и просто хранит ваши различные представления (happyThing, newThing и т. Д.). Надеюсь, это поможет!

47
ответ дан 24 November 2019 в 05:40
поделиться

От Сайта Apple Dev:

Для запущения приложения в альбомном режиме так, чтобы строка состояния сразу была в соответствующем положении отредактируйте файл Info.plist для добавления ключа UIInterfaceOrientation с соответствующим значением (UIInterfaceOrientationLandscapeRight или UIInterfaceOrientationLandscapeLeft), как показано в Списке 2 Списков 2.

: Запущение Вашего приложения в альбомном режиме

<key>UIInterfaceOrientation</key>
<string>UIInterfaceOrientationLandscapeRight</string>
41
ответ дан Michael Pryor 24 November 2019 в 05:40
поделиться

ответ sasb и michaelpryor, кажется, корректен, но если он не работает на Вас, попробуйте эту альтернативу:

- (void)applicationDidFinishLaunchingUIApplication *)application {
    application.statusBarOrientation = UIInterfaceOrientationLandscapeRight;
}

Или этот:

[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationLandscapeRight];

Или этот:

[application setStatusBarOrientation: UIInterfaceOrientationLandscapeRight animated:NO];

Вам, вероятно, также придется звонить window makeKeyAndVisible; сначала.

Несколько ссылок: Разработка в альбомном режиме , iPhone SDK: Как вызвать Альбомный режим только?

@Robert: обратитесь к iPhone SDK, NDA и Переполнение стека .

7
ответ дан Community 24 November 2019 в 05:40
поделиться

Последнее Руководство по программированию iPhone OS имеет полный раздел по этому с примером кода. Я уверен, что это - недавнее дополнение, поэтому возможно, Вы пропустили его. Это объясняет все условия, которые необходимо выполнить; в основном...

  • устанавливает свойства Info.plist (это меняет положение строки состояния, но не представление)
  • поворачивают Ваше представление вручную вокруг его центра, на любом Вашем UIViewController viewDidLoad: метод или Ваш applicationDidFinishLaunching: метод или авторотация реализации ("Автоизменяющий размеры поведений", страницы 124)

Ищут "Запуск в Альбомном режиме", страница 102.

5
ответ дан 24 November 2019 в 05:40
поделиться

Сначала я установил в информации.

8
ответ дан 24 November 2019 в 05:40
поделиться

Резюме и интеграция из всех сообщений, после того, как я протестировал это сам; проверьте обновление для 4.x, 5.x ниже.

Начиная с версии 3.2 вы не можете изменить ориентацию запущенного приложения из кода.

Но вы можете запустить приложение с фиксированной ориентацией, хотя сделать это не так просто.

Попробуйте воспользоваться этим рецептом:

  1. установите ориентацию на UISupportedInterfaceOrientations в файле Info.plist
  2. в вашем окне определите "базовый контроллер представления" размером 480x320. Все остальные представления будут добавлены в качестве подвидов к его представлению.
  3. во всех контроллерах представления настройте метод shouldAutorotateToInterfaceOrientation: (чтобы он возвращал то же значение, которое вы определили в plist, конечно)
  4. во всех контроллерах представления установите фоновый вид с помощью

    self.view.frame = CGRectMake(0, 0, 480, 320)

    в методе viewDidLoad.

Обновление (iOS 4.x, 5.x): в руководстве по программированию приложений Apple iOS в главе "Дополнительные приемы работы с приложениями" есть параграф "Запуск в ландшафтном режиме".

Ссылки:

28
ответ дан 24 November 2019 в 05:40
поделиться