it-roy-ru.com

Раскадровка Launch Screen не отображает изображение

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

Вот так выглядит экран запуска в файле Launch Screen.storyboard:  enter image description here

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

 enter image description here

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

69
shadowarcher

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

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

156
Flexicoder

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

49
Tristan G

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

28
Jakab Robert

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

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

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

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

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

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

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

Я надеюсь, что это может помочь!

22
Jhonsore

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

  1. Сделать жесткую перезагрузку устройства

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

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

14
Crashalot

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

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

9
shumin

Я была такая же проблема.

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

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

8
Vineesh TP

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

8
Reinier Melian

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

5
Tarek

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

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

 enter image description here

5
A.G

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

4
Entro

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

4
Maulik Patel

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

2
Prime624

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

2
user5708587

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

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

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

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

2
Kampai

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

1
maral

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

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

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

1
zkon

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

1
Preeti Rani

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

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

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

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

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

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

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

1
Kqtr

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

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

1
Gee.E

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

0
Gujamin

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

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

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

0
Tim Christmann

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

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

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

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

0
John Holtkamp

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

0
thatmarcel

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

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

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

0
R. Mohan

Я только что понял это. Мое изображение запуска не отображается, при запуске на устройстве (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 на superview на 0 - см. Изображение ниже:

 enter image description here

0
Brian

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

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

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

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

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

0
hardik vyas