Как создать изображения запуска для приложений iPhone 6 / 6 Plus Landscape Only?


У меня есть существующее приложение только для ландшафта, для которого я пытаюсь добавить поддержку iPhone 6 / iPhone 6 Plus. Когда я поддерживал iOS 6 / 7, я просто использовал по умолчанию названные портретные изображения запуска с ландшафтным изображением, повернутым в портрет (т. е. для 4-дюймовых экранов я создал пейзаж 1136x640, а затем повернул, чтобы создать изображение запуска 640×1136.)

Я пытаюсь получить что-то работающее для iOS 8 и iPhone 6 / 6+ и еще не придумал что-то, что работает. Вот некоторые вещи, которые я пробовал:

  1. следуйте шаблону для 4-дюймового соглашения о запуске экрана. Я создал Default-667h@2x.png и Default-736h@3x.png образы. Это действительно обмануло симулятор, чтобы работать при правильном разрешении iPhone 6/6+, но при запуске используется изображение запуска экрана 4, а не новые, которые я создал.
  2. использование каталога активов - я создаю портретные изображения запуска для iPhone 6 и iPhone 6 Plus в активе LaunchImages, а также Ландшафтный для iPhone 6 Plus. В iPhone 6 Plus работает, но iPhone 6 просто показывает черный экран. (Там нет никакого способа, чтобы создать iPhone 6 пейзаж запуска изображения в каталоге активов)
  3. укажите массив 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 60

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.

следующие шаги работали для меня:

  1. добавьте изображения в проект (корневой каталог или папку ресурсов) со следующей номинацией (я опишу их в портрете launchimages): по умолчанию.png (3,5 дюйма), Default-568h@2x.png (4 дюйма), Default-667h@2x.png (iPhone 6), Default-736@3x.png (iPhone 6plus).
  2. перейдите к целевым настройкам, значкам приложений и изображениям запуска на вкладке Общие -> установите Источник изображения запуска не использовать каталог активов ('не использовать используйте каталоги активы).
  3. удалите ресурс LaunchImage из основного ресурса изображения
  4. перейдите к целевым настройкам, значкам приложений и изображениям запуска на вкладке Общие -> установите Источник изображения запуска для использования каталога активов
  5. 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 "файл экрана запуска" должен быть пустым. Это помогло мне.

"Launch screen file" is empty

Это продолжение ответа @AlexArgo, который расширяет его так, чтобы приложения, поддерживающие iOS 9, отображали соответствующие изображения запуска на iOS 9 iPhones. Как и в случае с этим ответом, не требуется каталог активов, раскадровка или xib.

без этих дополнений поведение, которое мы видели, состояло в том, что запуск нашего приложения только для ландшафта на iPhone iOS 9 отображал то же изображение, что и для iOS 8, но изображение было повернуто на 90 градусов по часовой стрелке и искажено растягиванием до размеры противоположной ориентации.

предварительно исправить iOS 9 iPhone стартовый экран: Pre-Fix iOS 9 iPhone Launch Screen

есть 2 части этого решения:

  1. добавьте следующие элементы iOS 9 в свой Info.plist ' s UILaunchImages массив до элементы iOS 8 из ответа @AlexArgo.
  2. добавьте новые изображения запуска, указанные в приведенных ниже элементах 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>
    

после исправления iOS 9 iPhone стартовый экран: enter image description here

для работы с 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> 

дополнительная информация нажмите здесь