[ios] UIImageView отсутствует изображение в окне запуска на устройстве


14 Answers

«Решение для меня состояло в том, чтобы убедиться, что поле« Очистить графический контекст »не отмечено для UIImageView в раскадровке. Просто изменив это, я установил это для меня». Никакие другие решения не работали для меня. Получил это от форума разработчиков Apple

Question

У меня есть приложение, поддерживающее iOS8 и более поздние версии, встроенное в Xcode 7, и я использую XIB для запуска экрана (у меня нет изображений запуска). В представлении содержится один UILabel с версией приложения и 2 UIImageView с изображениями, которые присутствуют в Images.xcassets: логотип и всплеск.

UILabel и изображение логотипа отображаются правильно, когда я запускаю приложение, но заставка не работает, если я запускаю приложение на iPad Air 2 с iOS9. Я тестировал на Air и Mini iOS8, а также iOS9 для iPad 2, iPad Air и iPad Air 2, и изображение получилось правильно во всех этих.

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

Вот краткое изложение того, что я знаю:

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

  • Установка UIImageView для изображения всплеска, также использующего изображение логотипа, делает изображение логотипа отображаемым в правильном месте для представления. Это также заставляет меня предположить, что взгляд не виноват.

  • UIImage, который я использую в представлении изображения брызг, используется в другом месте приложения и прекрасно отображается в этих других представлениях (изображение логотипа также используется в другом месте приложения и отображается отлично). Таким образом, я предполагаю, что образ действителен и его появление в других представлениях не является проблемой.

  • Я подтвердил, что настройки UIImages для логотипа и всплеска в файле xcassets одинаковы. Они имеют значение Universal, Любая ширина и высота, множественные масштабные коэффициенты, отображаемые по умолчанию. Существует одно отличие: у логотипа есть шкалы 1x, 2x и 3x, в то время как изображение всплеска имеет только 1x и 2x, но я также пытался использовать UIImages только с 1x и 1x и 2x значениями в UIView, и они работают (если они были добавлено в проект некоторое время назад).

  • Добавление другого изображения другого формата или формата (PNG и JPG) в мои xcassets и использование этого UIImage в UIImageView для всплывающего изображения также не отображается.

  • Добавление другого UIImageView в XIB-файл и выделение его UIImage, который уже был на xcasset, работает, изображение появляется на экране загрузки.

  • Копирование и переименование файлов изображений, используемых для логотипа, и добавление их в проект, а затем использование этого UIImage в представлении всплеска также не отображается.

  • Я пробовал очистить проект, перезапустить машину разработки и удалить приложение из Air 2 и переустановить его на случай, если это будет проблемой.

Эти три последних шага заставляют меня поверить, что есть некоторые проблемы с изображениями, добавленными после определенного момента в жизненном цикле проекта. В то время как я обновил Xcode 7 вчера, заставка была первоначально добавлена ​​в Xcode 6, но изображение логотипа (также добавленное в Xcode 6) было добавлено несколько месяцев назад.

Я просмотрел файлы json для изображения логотипа и изображения, и они выглядят одинаково. Я также трал через файл pbxproj, ищущий различия, и я не вижу ничего.

Поэтому мне было интересно, есть ли у кого-нибудь идеи, почему на экране запуска могут не отображаться эти новые изображения, которые я добавляю в эфир 2 специально? Другие вопросы, которые я читал, связанные с изображениями, которые не кажутся похожими, как правило, связаны либо с Launch Images, либо с изображениями в XIB-файлах, которые имеют связанные классы, ни один из которых не кажется здесь актуальным.




Это слишком важно. Должно быть пустым ! Launch Screen File




Перезапуск Xcode сделал это для меня.

Что не получилось :

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



«myProject» - это много изображений, созданных с помощью Images.xcassets. Но я удаляю ненужные изображения после удаления и восстановления «Assets.xcasset» из проекта.

  1. Удаление изображений.xcassets случайно, но
  2. Добавление Images.xcassets обратно в "myProject"

Я столкнулся с этой проблемой недостающих изображений и пробовал следующие методы:

  1. Перезагрузите питание устройства, но оно не работает.
  2. Использование Xcode для «сборки» проекта после «очистки», и оно тоже не работает.

Решение проблемы:

  1. Добавлено каждое изображение внутри Images.xcassets обратно в «myProject» через Xcode в «Target Membership» в «Show in File Inspector», и оно возвращается к норме.



Извлеките изображения из Image.xcassets и добавьте их снова в проект. Это сработало для меня.




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




Для меня проблема заключалась в том, что размер моего Launchscreen был отключен на 1 пиксель (2209x1242 вместо 2208x1242). Исправив его, перезагрузите устройство и восстановите приложение.




Следующая последовательность операций устранила проблему для меня на Xcode 7.3.1 и iOS 9.3.4:

  1. Очистите свою сборку (⌘ + ⇧ + K)
  2. Закрыть Xcode
  3. Жесткий сброс устройства iOS (перезагрузка)
  4. Перезапустите Xcode - пусть индексирование закончено и построится на устройстве, когда оно будет готово.



Я использую устройство iPhone 5s, также отвечаю на эту проблему.

Я исправляю это:

  • Удаление данных привода

  • Очистить проект

  • Перезапустить Xcode

  • Удалите проект с моего устройства

  • Перезагрузите 5 секунд.

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




В моем случае я был именем изображения .
Я добавил изображение с именем Default-568h@2x.png в LaunchScreen.xib - один из моих старых экранов запуска только для целей тестирования. Я строил на iPhone X Simulator, изображение не появилось.

Изменение названия на что-то нейтральное (MyImage.png) решило проблему.

Кажется, что @2x был частью проблемы, а также -568h . Что имеет смысл на устройстве -812h@3x .




Мое решение @iOS 11.x:

  • Используйте .jpg изображение вместо .png . Я думаю, размер файла изображения имеет значение;
  • (Необязательно) Поместите файл изображения в каталог проекта, а не .xcassets ;



У меня была та же проблема. Перезагрузка устройства (iPhone 6) и перестройка приложения на устройство - единственное, что его исправило. Я попробовал много других советов и предложений, но ничего больше не сработало. Помогла поддержка только reboot + rebuild.




Также можно: 1. удалить изображение проекта 2. изменить имя изображения 3. добавить файл в проект

Это сработало для меня.




Выберите ImageView, а затем удалите расширение изображения (.png или .jpg) на вкладке «Инспектор атрибутов»> «Вид изображения»> «Изображение»> «Название изображения».

На версии launchscreen.storyboard изображение не появится, но оно появится на устройстве. Это сработало для меня.




Я испытываю то же самое. Я меняю разрешение изображения от 300 пикселей / дюйм, меняю его на 72. Он работает для меня.




Related