Запуск Экранная раскадровка, не отображающая изображение

Я пытаюсь получить изображение для отображения в качестве экрана запуска из моего файла Launch Screen.storyboard, однако изображение никогда не отображается. У меня есть ярлыки, которые отображаются отлично, но изображение не появляется.

Вот как выглядит экран запуска в файле Launch Screen.storyboard: введите описание изображения здесь

Однако, когда я запускаю приложение на симуляторе (а также на физическом устройстве), это то, что отображается:

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

Как вы можете видеть, ярлык "Тест" отображается хорошо, однако изображение не отображается. Я действительно не знаю, почему это происходит, и я ничего не пытаюсь работать. Если у кого-нибудь есть идеи, как это исправить, мы будем очень благодарны.

Ответы

Ответ 1

После перезапуска XCode, очистки сборки и ряда других предложений на SO об этой проблеме. Что на самом деле исправило для меня, так это жесткая перезагрузка устройства. (Я потратил на это больше часа)

Я полагаю, это просто говорит о том, что старая поговорка "Вы выключили и снова включили" все еще верна для последних гаджетов!

Как сделать полную перезагрузку iPhone XS или iPhone XS Max

  1. Быстро нажмите и отпустите кнопку увеличения громкости
  2. Быстро нажмите и отпустите кнопку уменьшения громкости
  3. Нажмите и удерживайте боковую кнопку, пока не появится логотип Apple

Ответ 2

Я тоже возился с этим часами. Но я нашел решение сейчас. Вам нужно добавить изображение в ваш проект, а также в assets.xcassets с помощью перетаскивания.

Ответ 3

У меня была та же проблема, добавление изображения в "Фазы сборки → Копировать ресурсы комплекта" исправило это для меня.

Ответ 4

Это случилось со мной и заставило меня сходить с ума, заставив меня потерять несколько минут, пока я не понял.

Итак, как было сказано ранее:

1 - импортируйте желаемое изображение в проект xCode (просто перетащите его)

2 - Измените его ограничения и выравнивание

3 - Обновление фреймов, разрешающих проблемы с автоматическим компоновкой

4 - В меню вкладки Инспектор атрибутов (обычно в правом углу xCode), в режиме просмотра изображения > Изображение, удалите расширение изображения (.png или .jpg) - это трюк

На экране дизайна он не появится, но когда вы запустите приложение, оно будет показано.

Надеюсь, это поможет!

Ответ 5

Очень расстраивает. Решение, которое наконец-то сработало:

  • Выполняйте жесткую перезагрузку устройства

  • Удалить приложение

  • Установить приложение из Xcode

Ответ 6

Выполните следующие шаги,

  1. Удалить приложение с устройства
  2. Перезагрузите устройство
  3. Строить снова

Если не работает, удалите производные данные. Xcode Preference-> Locationtab-> Производные данные. Затем выполните вышеуказанные шаги.

Ответ 7

Наконец, перезагрузка телефона работает для меня!

Я потратил часы на этот вопрос. Попробовал изменить имя изображения, удалить все объекты изображения, изменить info.plist, перезапустить Xcode и даже попытаться установить все атрибуты изображений (которые вы можете сказать, насколько я был отчаян).

Ответ 8

Эта проблема связана с Assets.xcassets, чтобы исправить ее, вы должны добавить изображение в качестве ресурса, но не в папку xcassets, а затем должны работать нормально

Ответ 9

В моем случае исправление содержимого и настроек симулятора устраняло проблему.

Ответ 10

Я столкнулся с такой же проблемой.

  1. Добавьте новый набор изображений в XcodeAssets.
  2. Добавьте изображения в набор изображений.
  3. Добавление изображения для запуска экрана и установки вашего изображения в качестве изображения
  4. В инспекторе атрибутов Imageview снимите флажок "очистить графический контекст"
  5. Очистите папку сборки и запустите ее снова.

enter image description here

Ответ 11

Перезагрузите устройство и очистите полученные данные из x-кода

Ответ 12

Кажется, что есть некоторая проблема с кэшированием ресурсов в xCode. Имел ту же проблему, перезапустил xCode, и после этого все отлично работает.

Ответ 13

У меня была эта проблема после добавления изображения для проекта и спуска устройства, проблема решена

Ответ 14

Вы должны убедиться, что имя файла вашего изображения имеет формат, например .png или .jpg, в конце, иначе он не будет работать. Кроме того, перед добавлением изображения вы должны убедиться, что файл изображения находится в папке "Assets.xcassets" в вашем проекте. Это можно сделать с помощью простого перетаскивания. Кроме того, убедитесь, что когда вы добавили изображение в свою раскадровку, имя изображения в левом верхнем углу также соответствует имени файла реального изображения. Я бы попытался взглянуть на "Сдерживания". Надеюсь это поможет. Удачи с вашим приложением.

Ответ 15

Я потратил часы на эту проблему, прежде чем, наконец, осознал свою ошибку. Когда вы добавляете изображение в UIImageView, оно будет использовать только имя изображения. Если ваши изображения находятся в другой папке, чем в раскадровке, они будут отображаться в xcode, но не при запуске приложения. Вы должны добавить соответствующий префикс пути файла, например images/image.png. Теперь он появится как синий вопросительный знак в xcode, но он будет работать в приложении.

Ответ 16

Хорошо. В настоящее время доступно устройство сетчатки, и я проигнорировал изображение @1x в Assets.xcassets.

В моем случае у меня есть логотип приложения на экране Splash, который не отображается при запуске приложения.

После того, как я потратил столько времени, я понял, что для этого логотипа я предоставил только изображения @2x и @3x.

Эта проблема решается путем добавления @1x версии этого изображения.

Ответ 17

Менялось фоновое изображение заставки, и новое изображение не показывалось (отредактируйте собственный проект).

Следуя ответам других.

Я сделал все ниже, и это было исправлено:

  • Чистая сборка.
  • Удалить приложение из симулятора
  • Выйти из симулятора
  • Перезапустить XCode
  • Запустить приложение еще раз

Ответ 18

Просто добавьте мои $ 0,02 к этому вопросу; Я решил это, используя PNG-изображения вместо изображений JPG/JPEG.

После преобразования изображений в PNG и их хруста, чтобы немного уменьшить размер, все работало нормально.

Ответ 19

Я столкнулся с той же проблемой. Пробовал разные решения для этого, но ничего не оказалось полезным. Затем я понял, что изображение не было видно только тогда, когда я прямо установил приложение в устройство, и приложение все еще подключено к xcode. Если я отключу его, а затем откройте приложение, изображение будет видно, как ожидалось. Это может быть ошибка xcode.

Ответ 20

Пробовав все по нескольким потокам StackOverflow, вот что сработало для меня:

  • Используйте.png
  • Не включайте его в свой каталог активов. Добавьте его в свою иерархию проектов напрямую, так как вы добавите любой исходный файл.
  • В представлении изображения загрузите изображение, включая его расширение. Пример: launch_app_image.png

(Может потребоваться очистка продукта или полученных данных для обновления, но мне не пришлось)

Ответ 21

В моем конкретном случае заставка работала для симулятора и других устройств, но перестала работать для одного конкретного устройства. Это привело меня к мысли, что это были некоторые данные кэширования, хранящиеся в xcode (v10 и iPhone 7 v12.1).

Я удалил полученные данные в: ~/Library/Developer/Xcode/DerivedData/ только ~/Library/Developer/Xcode/DerivedData/ содержимое папки, но не удалив ее. Затем я перезагрузил Mac и iPhone, очистил и перестроил проект, и теперь он появляется.

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

Ответ 22

Я просто понял это. Мой образ запуска не показывался, я получаю белый экран при запуске на устройстве (iPhone 6, 7+) или testFlight. Исправлено: переименован "Landing_screen.png" на "Landing_screen", удалив часть .png. Значок изображения в Xcode изменился на белый значок, а на раскадровке экрана запуска изображение теперь отображается как знак вопроса. Теперь появляется изображение запуска, а не белый экран. Моя установка: я использую Swift 3.1 с Xcode 8.3.1. В LaunchScreen.storyboard я добавил простой образ и растянул изображение, чтобы он соответствовал контроллеру вида. Я устанавливаю ограничения автоматической компоновки Top/Bottom/Leading/Trailing space для просмотра до 0 - см. Изображение ниже:

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

Ответ 23

В моем случае оказалось, что у меня есть некоторые представления, все еще связанные с контроллером представления, который теперь был просто базовым контроллером представления. Однако, если я щелкнул правой кнопкой мыши на представлении, я вижу выходы с предупреждениями, однако предупреждения в Xcode не появлялись, поэтому у меня возникли проблемы с их поиском.

Ответ 24

Я не знаю, почему это произошло, но было лицом к тому же вопросом. Пробовал много случаев, много кодов или трюков, но не получал решения.

Что я сделал.

В моем случае я просто установил UIImageView contentMode center, и он работает для меня.

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

Я думал, что проблема была в Image, потому что, если бы я взял другое изображение, то я работал на меня.

Ответ 25

Это проблема кеширования в XCode/iOS, но есть простое исправление: просто переименуйте файл внутри Assets.xcassets, чтобы кеш был регенерирован.

Ответ 26

Я попробовал очистить проект, удалив png, удаление ограничений не помогло мне.

Я просто сделал еще одну копию изображения и переименовал копию, затем удалил старое изображение и добавил новое изображение (То же, с измененным именем), я просто дал это изображение, и это сработало для меня.

Также я не использую Assets.xcassets, используя изображение в папке.

Ответ 27

Я пробовал так много всего с этим (у этой темы, кажется, есть миллион идей, а половина из них противоречива). Проблема для меня заключалась в том, что когда я делал такие вещи, как перезапуск устройства и Xcode, это вызывало бы отображение изображения для нескольких сеансов приложения, а затем оно прекращалось (я понятия не имею, почему, но WOW это раздражало),

После бесчисленных часов я обнаружил, что ответ AG в этой теме правильный. Единственное, что я делал неправильно, это то, что я создавал новый образ, установленный в xcassets, но тогда я все еще использовал имя изображения внутри UIImageView внутри раскадровки вместо того, чтобы использовать имя набора изображений.

Чтобы уточнить, что вы сделаете, создайте новый набор изображений и назовите его что-то вроде "Launch-Defaults", а затем добавьте к нему свои изображения. Затем внутри UIImageView внутри раскадровки вы используете изображение "Launch-Default" (не включая расширение, так как оно не установлено, поскольку это набор изображений).

Когда вы все это сделаете, изображение должно выглядеть правильно внутри вашей раскадровки. Некоторые люди говорят, что изображение будет отображаться пустым, если вы не используете расширение (.jpg или.png), но я предполагаю, что это потому, что они не используют имя набора изображений. Другие говорят, что вам нужно использовать расширение, например.png или.jpg, но ключ состоит в том, чтобы создать изображение, установленное внутри xcassets, а затем использовать это изображение, установленное внутри раскадровки. Когда все сделано правильно, не должно быть никаких проблем, таких как изображение, которое не отображается, или экран запуска работает только некоторое время (требуя перезагрузки).

Ответ 28

Моей первой ошибкой было то, что я создал нормальную .storyboard, переименовал ее и определил как экран запуска в настройках проекта. У меня в этом случае были проблемы с изображением. Кажется, что в этом случае некоторые настройки отсутствуют, поэтому я просто создал новый файл с помощью file-> new и выбрал непосредственно "Launch Screen", и тогда это сработало.

Также я имел в виду, что ограничения макета по какой-то причине не поддерживаются на стартовом экране. Может быть, так было в начале, не уверен, но теперь ограничения должны работать.

Может быть, это кому-нибудь поможет.

Ответ 29

Я сталкивался с этой же проблемой при использовании launch-storyboard для отображения заставки, и после исследования я обнаружил, что изображение, которое я установил в launch-storyboard, имеет другой размер, и я установил просмотр изображения больше, чем фактический размер изображения.

Таким образом, решение, которое я нашел, это либо установить размер содержимого просмотра изображения в качестве аспектного соответствия, либо установить размер просмотра изображения в качестве размера изображения.

Например, если размер вашего изображения @1x равен 200X200, тогда размер изображения должен быть 200X200, чем вы решите эту проблему.

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

Если у вас все еще есть сомнения, пожалуйста, прокомментируйте здесь и спросите

Ответ 30

В моем случае это было больше, чем просто перезагрузка устройства. Мой стартовый образ был сохранен в других ресурсах (другие модули).

Пришлось переместить изображение в App Project Assets. А потом перезагрузил мое устройство. (Сначала проверьте симулятор, он должен работать). Тогда это сработало.

Изображения могут быть в формате png/pdf, в одном масштабе или не имеют значения.