Я удалил представление изображения из XIB и очистил полученные данные и сборку. Снова добавлено простое изображение и затем установите изображение после установки ограничений (ведущий, конечный, верхний, нижний) для суперпредставления. Это сработало хорошо.

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

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

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

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

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

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

ОБНОВИТЬ:

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

 rmaddy13 сент. 2017 г., 16:25
Ваша проблема не относится к iPhone X. Ваш ресурс launchImage (не путать с обычными изображениями запуска) не будет работать на вашем экране запуска, поскольку несколько iPhone разного размера используют изображение 2x. IPhone 4, 5, 6, 6s, 7, 7s представляют 3 разных размера экрана, все из которых используют 2x изображения. Теперь iPhone 6+, 6s +, 7+, 7s + и iPhone X теперь представляют 2 разных размера экрана, все из которых используют 3x изображения.
 Christian Cerri14 сент. 2017 г., 05:54
@maddy верно, но правильные размеры работают для всех 6 и 7 серий, что было приемлемо. Вы знаете, мы пытаемся правильно поддерживать X, но нам не дают инструменты для этого. О чем это?
 Aaron Brager02 окт. 2017 г., 19:47
«Apple рекомендует использовать раскадровку, но, похоже, вы не сможете следовать их указаниям, если будете это делать». - это совсем не так. Вам просто нужно создать гибкий адаптивный интерфейс в вашей раскадровке, как в любой другой раскадровке.
 Anbu.Karthik13 сент. 2017 г., 09:40
тип полныйlaunchimage и проверьте, поддерживается ли 3x для iphone X
 David Nedrow13 сент. 2017 г., 09:53
Обратите внимание, что вы, вероятно, должны установить режим содержимого в «аспект соответствия».

Ответы на вопрос(8)

LaunchImage.launchimage для Launch решение (в Xcdoe 9.0):

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

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

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

 Cory Trese18 нояб. 2018 г., 04:42
Фрагмент кода спас меня!
 Javier Delgado06 февр. 2018 г., 12:11
Я прочитал около 100 сообщений о макете iphone X, и это единственный ответ, который решил мою проблему

и сборку. Снова добавлено простое изображение и затем установите изображение после установки ограничений (ведущий, конечный, верхний, нижний) для суперпредставления. Это сработало хорошо.

Решение Вопроса

благодаря ответам выше (особенно Stoull), однако мой опыт немного отличается. Мой первоначальный вопрос был в основном: «Как получить стартовое изображение (в раскадровке или LaunchImage), которое соответствует bg первой игровой сцены без изменения масштаба на всех разрешениях?»

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

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

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

в результате чего:

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

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

в результате чего:

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

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

iPhoneX (iPhone X Пейзаж iOS 11+): 2436 x 1125

Retina HD 5.5 "(iPhone Пейзаж iOS 8,9): 2208 х 1242

2x (iPhone портрет iOS 7-9): 640 х 960

Retina4 (iPhone портрет iOS 7-9): 640 х 1136

1x (iPad Пейзаж iOS 7-9): 1024 x 768

2x (iPad Пейзаж iOS 7-9): 2048 x 1536

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

у которых есть существующий проект со старой версиейlaunchimage (без варианта iPhoneX), вот мое решение для поддержки iPhone X - это ярлык для вас.

открытоAssets.xcassets в вашем Xcode.Щелкните правой кнопкой мыши в вашем LanchImage, затем выберитеПоказать в поисковике.ОткрытьContents.jsonВставьте следующие коды внутри вашего"картинки" массив.
 {
  "extent" : "full-screen",
  "idiom" : "iphone",
  "subtype" : "2436h",
  "filename" : "ipxportrait.png",
  "minimum-system-version" : "11.0",
  "orientation" : "portrait",
  "scale" : "3x"
},
{
  "extent" : "full-screen",
  "idiom" : "iphone",
  "subtype" : "2436h",
  "filename" : "ipxlandscape.png",
  "minimum-system-version" : "11.0",
  "orientation" : "landscape",
  "scale" : "3x"
},

Замените, конечно, имя файла с соответствующими изображениями. Вуаля!

 Glenn04 авг. 2018 г., 15:46
@JERC конечно нет. :)
 JERC03 авг. 2018 г., 23:23
При таком подходе у вас были проблемы при отправке приложения в Appstore?

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

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

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

 Christian Cerri13 сент. 2017 г., 10:04
да, в настоящее время симулятор iphoneX показывает изображение в виде почтового ящика. Вы не объясняете, как добавить изображение 2436x1125 в раскадровку экрана запуска.
 thibaut noah13 сент. 2017 г., 15:13
хотел бы знать это, а

РЕДАКТИРОВАТЬ:
Я хотел подчеркнуть, что возможно добавить Launch Image для iPhone X, но @Christian Cerri просил добавить НОРМАЛЬНОЕ изображение в Image View в LaunchScreen.storyboard специально для iPhone X, что невозможно.

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

 jonaszmclaren01 дек. 2017 г., 09:20
Почему за этот ответ проголосовали? Я не говорил, что невозможно добавить Launch Image для iPhone X (я на самом деле предложил его использовать), но невозможно добавить нормальное изображение в каталог ресурсов специально для iPhone X. Это то, чего @ChristianCerri хотел достичь, используя Image Посмотреть в LaunchScreen Раскадровка
 jonaszmclaren26 окт. 2017 г., 08:03
Если я правильно понимаю ответ Стоулла, он использует Launch Image, верно? Таким образом, мой ответ говорит, что это возможно, используя Launch Image, но не «нормальное» изображение в каталоге активов.
 Christian Cerri19 сент. 2017 г., 12:26
уу ууу! вернуться к запуску изображений!
 ray26 окт. 2017 г., 04:45
Это неверно, вы можете использовать каталог активов, как описано в ответе Стоулла ниже.
 Christian Cerri20 сент. 2017 г., 10:25
для всех, кто читает это ... Я попытался использовать Launch Images и продолжаю получать предупреждение "должен предоставить изображение Retina 4 для iOS 7" ... но в элементе актива LaunchImage нет слота для него, хотя есть один для Portrait. Достаточно сказать, что на данный момент я отказался от поддержки iPhone X для запуска изображений.

3x изображение в вашем наборе изображений! я имею в виду1125px × 2436px является3x разрешение375pt × 812pt.

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

 Christian Cerri14 сент. 2017 г., 05:52
согласно комментарию Мэдди выше, 3x используется для двух размеров (iPhone Pluses @ 2208px × 1242px и и iPhone X @ 2436px × 1125px), поэтому один или другой будет растянут.

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

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

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

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

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

 Christian Cerri19 сент. 2017 г., 11:53
спасибо @jonaszmclaren, однако это не решение. 1) Я хочу указать изображение 2436x1125 для iPhoneX и изображение 2208x1242 для iPhone 6/7/8 / plus И 2048x1536 для iPad ... уверен, что смогу заставить его работать ТОЛЬКО на X, но не на всем. 2) выбор в представлении изображения относится к выбору типа LaunchImage, а не типа изображения, и Очистка / Повторное добавление не исправляет это (я упоминаю об этом, потому что в типе LaunchImage вы МОЖЕТЕ правильно указать все три изображения - но вы не можете добавить это раскадровка).
 Christian Cerri19 сент. 2017 г., 12:09
Если вы добавите решение, в котором говорится, что вы не можете поддерживать все модели в универсальном приложении с раскадровкой Launch Screen с точными не растянутыми изображениями, я отмечу это правильно - похоже, это так.
 Christian Cerri19 сент. 2017 г., 12:08
Да, понятно, но LaunchImage - единственное место, где вы можете выбрать X и 6/7/8 и изображение iPad ... думаю, я просто уроню эту глупую раскадровку и использую LaunchImage !!! Спасибо
 jonaszmclaren19 сент. 2017 г., 12:03
Вы либо используете Launch Image, предоставляя правильные изображения в каталоге ресурсов, либо создаете свой «вид запуска» с помощью LaunchScreen.storyboard. Я не знаю, почему вы хотите выбрать стартовое изображение в раскадровке? Если вы добавляете набор изображений запуска в каталог ресурсов, он не может быть выбран в качестве изображения в раскадровке, он используется iOS во время запуска.
 jonaszmclaren19 сент. 2017 г., 12:05
Последнее изображение на вашем экране имеет тип «Launch Image» (смотрите справа вверху), а остальные изображения являются «нормальными» изображениями. Обычные изображения могут использоваться вами в приложении, изображения запуска используются системой во время запуска.

Ваш ответ на вопрос