Как создать изображения запуска для приложений iPhone 6 / 6 Plus Landscape Only?
У меня есть существующее приложение только для ландшафта, для которого я пытаюсь добавить поддержку iPhone 6 / iPhone 6 Plus. Когда я поддерживал iOS 6 / 7, я просто использовал по умолчанию названные портретные изображения запуска с ландшафтным изображением, повернутым в портрет (т. е. для 4-дюймовых экранов я создал пейзаж 1136x640, а затем повернул, чтобы создать изображение запуска 640×1136.)
Я пытаюсь получить что-то работающее для iOS 8 и iPhone 6 / 6+ и еще не придумал что-то, что работает. Вот некоторые вещи, которые я пробовал:
- следуйте шаблону для 4-дюймового соглашения о запуске экрана. Я создал Default-667h@2x.png и Default-736h@3x.png образы. Это действительно обмануло симулятор, чтобы работать при правильном разрешении iPhone 6/6+, но при запуске используется изображение запуска экрана 4, а не новые, которые я создал.
- использование каталога активов - я создаю портретные изображения запуска для iPhone 6 и iPhone 6 Plus в активе LaunchImages, а также Ландшафтный для iPhone 6 Plus. В iPhone 6 Plus работает, но iPhone 6 просто показывает черный экран. (Там нет никакого способа, чтобы создать iPhone 6 пейзаж запуска изображения в каталоге активов)
- укажите массив UILaunchImages в Info.plist с записями для всех размеров экрана (см. справку https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html#//apple_ref/doc/uid/TP40009252-SW28). я получаю аналогичные результаты для каталога активов здесь. Я могу получить iPhone 6 Plus пейзаж работает, но не iPhone 6 пейзаж.
11 ответов:
Я нашел обходной путь, который делает пейзаж только запуск изображений работать на iOS 8 GM. В итоге я использовал массив UILaunchImages в Info.файл plist. Хитрость заключается в том, чтобы получить изображение, чтобы показать, что явно не поддерживает ландшафт (iPhone 4/4S, iPhone 5/5S/5C, iPhone 6) вам нужно указать повторяющиеся записи. Смотрите мой пример ниже. Это для ландшафтного приложения только для телефона, которое поддерживает обе ориентации для iPad. iOS 7 вернется к именам изображений по умолчанию.
все изображения запуска iPhone необходимо повернуть в портретную ориентацию, как обычно, за исключением изображения запуска iPhone 6 Plus. Он изначально поддерживает запуск изображений альбомной ориентации, поэтому вам нужно оставить его запуск изображения в альбомной ориентации.
вот соответствующие биты вашей информации.файл plist:
<key>UILaunchImages</key> <array> <dict> <key>UILaunchImageMinimumOSVersion</key> <string>8.0</string> <key>UILaunchImageName</key> <string>Default</string> <key>UILaunchImageOrientation</key> <string>Portrait</string> <key>UILaunchImageSize</key> <string>{320, 480}</string> </dict> <dict> <key>UILaunchImageMinimumOSVersion</key> <string>8.0</string> <key>UILaunchImageName</key> <string>Default</string> <key>UILaunchImageOrientation</key> <string>Landscape</string> <key>UILaunchImageSize</key> <string>{320, 480}</string> </dict> <dict> <key>UILaunchImageMinimumOSVersion</key> <string>8.0</string> <key>UILaunchImageName</key> <string>Default-568h</string> <key>UILaunchImageOrientation</key> <string>Portrait</string> <key>UILaunchImageSize</key> <string>{320, 568}</string> </dict> <dict> <key>UILaunchImageMinimumOSVersion</key> <string>8.0</string> <key>UILaunchImageName</key> <string>Default-568h</string> <key>UILaunchImageOrientation</key> <string>Landscape</string> <key>UILaunchImageSize</key> <string>{320, 568}</string> </dict> <dict> <key>UILaunchImageMinimumOSVersion</key> <string>8.0</string> <key>UILaunchImageName</key> <string>Default-667h</string> <key>UILaunchImageOrientation</key> <string>Portrait</string> <key>UILaunchImageSize</key> <string>{375, 667}</string> </dict> <dict> <key>UILaunchImageMinimumOSVersion</key> <string>8.0</string> <key>UILaunchImageName</key> <string>Default-667h</string> <key>UILaunchImageOrientation</key> <string>Landscape</string> <key>UILaunchImageSize</key> <string>{375, 667}</string> </dict> <dict> <key>UILaunchImageMinimumOSVersion</key> <string>8.0</string> <key>UILaunchImageName</key> <string>Default-736h</string> <key>UILaunchImageOrientation</key> <string>Portrait</string> <key>UILaunchImageSize</key> <string>{414, 736}</string> </dict> <dict> <key>UILaunchImageMinimumOSVersion</key> <string>8.0</string> <key>UILaunchImageName</key> <string>Default-736h</string> <key>UILaunchImageOrientation</key> <string>Landscape</string> <key>UILaunchImageSize</key> <string>{414, 736}</string> </dict> <dict> <key>UILaunchImageMinimumOSVersion</key> <string>8.0</string> <key>UILaunchImageName</key> <string>Default-Portrait</string> <key>UILaunchImageOrientation</key> <string>Portrait</string> <key>UILaunchImageSize</key> <string>{768, 1024}</string> </dict> <dict> <key>UILaunchImageMinimumOSVersion</key> <string>8.0</string> <key>UILaunchImageName</key> <string>Default-Landscape</string> <key>UILaunchImageOrientation</key> <string>Landscape</string> <key>UILaunchImageSize</key> <string>{768, 1024}</string> </dict> </array>
шаблон был изменен для iPhone 6 и т. д.
iPhone 6 (750x1334):
по умолчанию-375w-667h@2x~iphone.png
iPhone 6 Plus: ( 1242x2208)
по умолчанию-414w-736h@3x~iphone.png
Default-Landscape@3x.png (Для Пейзажа)
внимание, если вы поддержите iPad, то вы должны переименовать ваш iPad изображения по умолчанию, чтобы добавить ~для iPad, например, по умолчанию-портрет~для iPad.png to не позволяйте 6 plus собирать их, потому что они переопределяют изображение 3x.
следующие шаги работали для меня:
- добавьте изображения в проект (корневой каталог или папку ресурсов) со следующей номинацией (я опишу их в портрете launchimages): по умолчанию.png (3,5 дюйма), Default-568h@2x.png (4 дюйма), Default-667h@2x.png (iPhone 6), Default-736@3x.png (iPhone 6plus).
- перейдите к целевым настройкам, значкам приложений и изображениям запуска на вкладке Общие -> установите Источник изображения запуска не использовать каталог активов ('не использовать используйте каталоги активы).
- удалите ресурс LaunchImage из основного ресурса изображения
- перейдите к целевым настройкам, значкам приложений и изображениям запуска на вкладке Общие -> установите Источник изображения запуска для использования каталога активов
- XCode 6 собирается спросить вас о миграции ресурсов изображений из существующих изображений. Просто нажмите, чтобы "мигрировать".
и это работало для меня для каждого вида устройств на iOS7, iOS8. Отмечать: Если вы проверите новый актив LaunchImage, тогда вы можете видеть, что это действительно странно. Кажется, что он содержит только несколько изображений без изображений с разрешением iPhone6 или iPhone 6plus.
для iPhone 6:
750 x 1334 (@2x) для портрета
1334 x 750 (@2x) для ландшафтадля iPhone 6 Plus:
1242 x 2208 (@3x) для портрета
2208 x 1242 (@3x) для ландшафтаили можно пройти по этой ссылке, это может помочь вам
http://matthewpalmer.net/blog/2014/09/10/iphone-6-plus-launch-image-adaptive-mode/
Если вы используете только изображения.xassets "файл экрана запуска" должен быть пустым. Это помогло мне.
Это продолжение ответа @AlexArgo, который расширяет его так, чтобы приложения, поддерживающие iOS 9, отображали соответствующие изображения запуска на iOS 9 iPhones. Как и в случае с этим ответом, не требуется каталог активов, раскадровка или xib.
без этих дополнений поведение, которое мы видели, состояло в том, что запуск нашего приложения только для ландшафта на iPhone iOS 9 отображал то же изображение, что и для iOS 8, но изображение было повернуто на 90 градусов по часовой стрелке и искажено растягиванием до размеры противоположной ориентации.
предварительно исправить iOS 9 iPhone стартовый экран:
есть 2 части этого решения:
- добавьте следующие элементы iOS 9 в свой
Info.plist
' sUILaunchImages
массив до элементы iOS 8 из ответа @AlexArgo.добавьте новые изображения запуска, указанные в приведенных ниже элементах iOS 9 (например.
Default-iOS9-568h
) для вашего приложения. Новые изображения запускафактический "альбомная" - ориентация изображений (шире, чем они высоки), в отличие от изображений, на которые ссылаются элементы iOS 8 @AlexArgo, которые начинались как альбомные изображения, но затем поворачивались в портретную ориентацию перед добавлением в приложение. Обратите внимание, что оба набора изображений должны оставаться в приложении, чтобы это решение работало на iOS 8 и 9 одновременно.<key>UILaunchImages</key> <array> <dict> <key>UILaunchImageMinimumOSVersion</key> <string>9.0</string> <key>UILaunchImageName</key> <string>Default-iOS9</string> <key>UILaunchImageOrientation</key> <string>Landscape</string> <key>UILaunchImageSize</key> <string>{320, 480}</string> </dict> <dict> <key>UILaunchImageMinimumOSVersion</key> <string>9.0</string> <key>UILaunchImageName</key> <string>Default-iOS9-568h</string> <key>UILaunchImageOrientation</key> <string>Landscape</string> <key>UILaunchImageSize</key> <string>{320, 568}</string> </dict> <dict> <key>UILaunchImageMinimumOSVersion</key> <string>9.0</string> <key>UILaunchImageName</key> <string>Default-iOS9-667h</string> <key>UILaunchImageOrientation</key> <string>Landscape</string> <key>UILaunchImageSize</key> <string>{375, 667}</string> </dict> ...(pre-iOS 9 items)... </array>
для работы с ipad (альбомный и портретный режим), вам нужно добавить UILaunchImages~ipad введите свою информацию.файл plist :
<key>UILaunchImages~ipad</key> <array> <dict> <key>UILaunchImageMinimumOSVersion</key> <string>7.0</string> <key>UILaunchImageName</key> <string>Default-Landscape</string> <key>UILaunchImageOrientation</key> <string>Landscape</string> <key>UILaunchImageSize</key> <string>{768, 1024}</string> </dict> <dict> <key>UILaunchImageMinimumOSVersion</key> <string>7.0</string> <key>UILaunchImageName</key> <string>Default-Portrait</string> <key>UILaunchImageOrientation</key> <string>Portrait</string> <key>UILaunchImageSize</key> <string>{768, 1024}</string> </dict> <dict> <key>UILaunchImageMinimumOSVersion</key> <string>7.0</string> <key>UILaunchImageName</key> <string>Default-Landscape</string> <key>UILaunchImageOrientation</key> <string>Landscape</string> <key>UILaunchImageSize</key> <string>{748, 1024}</string> </dict> <dict> <key>UILaunchImageMinimumOSVersion</key> <string>7.0</string> <key>UILaunchImageName</key> <string>Default-Portrait</string> <key>UILaunchImageOrientation</key> <string>Portrait</string> <key>UILaunchImageSize</key> <string>{768, 1004}</string> </dict> </array>
для всех айфонов, кроме плюса,нет отдельного экрана запуска для ландшафтных приложений. Вы устанавливаете ориентацию в plist, как описал Дипак, а затем устанавливаете свой портрет экран запуска для повернутой версии вашего ландшафтного экрана запуска.
Так было всегда, и единственное, что изменилось, это то, что plus теперь поддерживает отдельный, отдельный экран запуска ландшафта. Все остальные устройства по-прежнему поддерживают только портретные экраны запуска независимо от начальной ориентации вашего приложения.
то, что я сделал, это изменить мой проект, чтобы не использовать каталог активов для запуска изображений, а использовать старую технику для iOS7 и более ранних версий. Это позволяет запускать образы, работающие для iOS7 и более ранних версий.
чтобы заставить их также работать на iOS8, чтобы вы могли получить правильное разрешение, и ваше приложение было признано созданным для нового iPhone 6/+, Вам также нужно создать новый LaunchImage XIB и сказать Xcode, чтобы использовать это.
что, кажется, происходит, что запуск приложение на устройстве iOS8 использует новую технику XIB, а запуск его на устройстве iOS7 или более раннем устройстве использует изображения, которые вы узнали и полюбили.
Это для меня, кажется, работает. Это уродливый ИМО, но он работает.
надеюсь, это поможет некоторым людям.
вы просто добавляете iPhone6-Portrait@2x.png, то он будет фиксировать себя для ландшафта, а также. У меня также есть приложение только для ландшафта для iPhone 6 и iPhone 6 Plus, и оно работает без проблем!
чтобы запустить приложение в ландшафтном режиме, отредактируйте информацию.plist-файл для добавления ключа UIInterfaceOrientation с соответствующим значением (UIInterfaceOrientationLandscapeRight или UIInterfaceOrientationLandscapeLeft), как показано ниже кода. Это дает подсказку системе, чтобы установить ориентацию строки состояния соответствующим образом во время запуска.
листинг 1: Запуск приложения в ландшафтном режиме
<key>UIInterfaceOrientation</key> <string>UIInterfaceOrientationLandscapeRight</string>
дополнительная информация нажмите здесь