Как добавить изображение запуска iPhoneX

Используя Xcode Version 9.0 (9A235), я пытаюсь добавить Launch Image для iPhoneX на запрошенный 2436px × 1125px (пейзаж). В настоящее время я использую раскадровку, и она выглядит так:

введите описание изображения здесь

'launchimage' - это изображение, связанное с набором изображений:

введите описание изображения здесь

И набор изображений выглядит следующим образом:

введите описание изображения здесь

Единственное место, где я получаю изображение размером с iPhoneX, находится в наборе Launch Image:

введите описание изображения здесь

Но когда я пытаюсь выбрать Launch Image в представлении изображения на раскадровке, он не может быть выбран:

введите описание изображения здесь

Любая помощь в том, как добавить правильное размерное изображение запуска для iPhoneX или вернуться к запуску изображений? Я бы предпочел изображение с правильным размером, а не растянутое.

UPDATE:

Я хотел бы объяснить, почему я хочу, чтобы изображение было точно таким же, как пиксель на пиксель. Следуя Руководству в https://developer.apple.com/ios/human-interface-guidelines/icons-and-images/launch-screen/, мое изображение запуска является статической версией первой страницы приложения. Если изображение запуска растянуто, появляется заметный переключатель из Launch Image to First Page. Какой вид побеждает объект руководящих принципов. Apple рекомендует использовать запуск раскадровки, но, похоже, вы не можете следовать их рекомендациям, если вы это сделаете. Типично, действительно.

Ответ 1

EDIT:
Я хотел подчеркнуть, что можно добавить Launch Image для iPhone X, но @Christian Cerri просил добавить NORMAL изображение в Image View в LaunchScreen.storyboard специально для iPhone X, что невозможно.

Оригинальный ответ:
Нет возможности добавить изображение специально для iPhone X в каталог активов (потому что он использует @3x), поэтому для этого вам, вероятно, следует использовать изображения запуска, если вы хотите другое изображение только для iPhone X.

Ответ 2

Если вы использовали LaunchImage.launchimage для запуска, решение (в Xcdoe 9.0):

  • Выберите Assets.xcassets, щелкните правой кнопкой мыши на средней панели, выберите App Icons & launch ImagesNew iOS Launch Image. Затем переместите старые LaunchImage.launchimage изображения в новые и добавьте размер изображения с помощью 1125×2436 px для iPhoneX. введите описание изображения здесь введите описание изображения здесь

  • Кроме того, вы можете добавить следующий файл json в файл Contents.json, который находится в папке LaunchImage.launchimage в вашем старом проекте. Когда обновится Xcode, просто снимите 1125 × 2436px изображение. Если вам нужен пейзаж, вы можете добавить другое с ориентацией.

	{
      "extent" : "full-screen",
      "idiom" : "iphone",
      "subtype" : "2436h",
      "minimum-system-version" : "11.0",
      "orientation" : "portrait",
      "scale" : "3x"
    }

Ответ 3

Если я правильно понял, вы используете раскадровку как экран запуска с изображением, верно?

Если это так, в раскрывающемся списке Launch Screen выберите для просмотра как iPhone X:

введите описание изображения здесь

Затем добавьте изображение, чтобы оно заполнило всю область следующим образом:

введите описание изображения здесь

и привяжите его к супервизору с константами 0. Это важно сделать с выбранным iPhone X, потому что иначе вы, вероятно, подключаетесь к руководству Top Layout Guide, которого вы не хотите, потому что он оставит вас с зазор вверху.

Ваши константы должны выглядеть так (привязанные к Superview):

введите описание изображения здесь

Ответ 4

В портретной ориентации ширина дисплея на iPhone X соответствует ширину 4,7 "дисплеев iPhone 6, iPhone 7 и iPhone 8. Дисплей на iPhone X, однако, на 145pt выше, чем 4,7-дюймовый дисплей, что приводит к примерно 20% дополнительного вертикального пространства для контента.

введите описание изображения здесь

Возможно, ваше изображение в порядке, но попробуйте очистить (cmd + K) и перестроить проект.

Если это не помогает, удалите это изображение из Xcode и снова добавьте его, перетащив эти изображения в Xcode. И восстановите его. Он должен работать.

Ответ 5

Вы можете сохранить изображение большего размера как 3x изображение в вашем изображении! Я имею в виду 1125px × 2436px разрешение 3x 375pt × 812pt.

поэтому в вашем изображении установите вместо старого 3x изображение с размером изображения 1125px × 2436px, а ваш экран запуска (раскадровка или xib) не будет растягиваться, я думаю!

Ответ 6

Использование Xcode версии 9.1 (9B55), благодаря ответам выше (особенно Stoull), однако мой опыт немного отличается. Мой первоначальный вопрос был в основном: "Как получить стартовый образ (в раскадровке или LaunchImage), который соответствует bg первой игровой сцены без перемасштабирования по всем разрешениям?"

Я решил это, и он работает с использованием LaunchImage. Однако есть осложнения.

Добавьте папку LaunchImage в папку Assets, затем укажите ее в настройках проекта:

введите описание изображения здесь

Тогда вы ожидаете сделать это:

введите описание изображения здесь

в результате:

введите описание изображения здесь

НО на Build вы получите предупреждение:

введите описание изображения здесь

так что вам нужно это для LaunchImage:

введите описание изображения здесь

в результате:

введите описание изображения здесь

и нет предупреждения... и LaunchImage работает на всех iPhone/iPad.

Размеры изображения:

iPhoneX (iPhone X Landscape iOS 11+): 2436 x 1125

Retina HD 5.5 "(iPhone Landscape iOS 8,9): 2208 x 1242

2x (iPhone Portrait iOS 7-9): 640 x 960

Retina4 (iPhone Portrait iOS 7-9): 640 x 1136

1x (iPad Landscape iOS 7-9): 1024 x 768

2x (iPad Landscape iOS 7-9): 2048 x 1536

Система явно беспорядочна и нуждается в надлежащей модернизации Apple.