У меня есть приложение, которое поддерживает iOS8 и более поздние версии, встроенное в Xcode 7, и я использую XIB для экрана запуска (у меня нет стартовых изображений). Представление содержит одну UILabel с версией приложения и 2 UIImageViews с изображениями, которые присутствуют в Images.xcassets: логотип и заставку.
UILabel и изображение логотипа отображаются правильно, когда я запускаю приложение, но заставка не отображается, если я запускаю приложение на iPad Air 2 с iOS9. Я тестировал на Air и Mini под управлением iOS8 и iOS9 симуляторы для iPad 2, iPad Air и iPad Air 2, и во всех них изображение отображается правильно.
Я выполнил некоторые базовые действия по устранению неполадок, чтобы выяснить, могу ли я выяснить, что происходит, но я не смог их решить, и единственное различие, которое я вижу между работающим изображением и ошибкой, - это когда я добавляю его в активы...
Вот краткое изложение того, что я знаю:
UIImageView для заставки находится в правильном месте, в правильном размере. Я могу сказать это, потому что я установил его цвет фона на зеленый, чтобы убедиться. Вид есть, но изображение не появляется. Поэтому я предполагаю, что мнение не виновато.
Настройка UIImageView для заставки также для использования изображения логотипа заставляет изображение логотипа отображаться в правильном месте для просмотра. Это также заставляет меня предположить, что мнение не виновато.
UIImage, который я использую в представлении с изображением-заставкой, используется в другом месте приложения и прекрасно отображается в других представлениях (изображение логотипа также используется в другом месте в приложении и выглядит нормально). Поэтому я предполагаю, что изображение является действительным, и его появление в других представлениях не является проблемой.
Я подтвердил, что настройки UIImages для логотипа и заставки в файле xcassets одинаковы. Для них установлено значение Универсальный, Любая ширина и высота, несколько масштабных коэффициентов, отображаемых по умолчанию. Есть одно отличие - у логотипа есть масштаб 1x, 2x и 3x, в то время как заставка имеет только 1x и 2x, но я также попытался использовать UIImages только с 1x и 1x и 2x значениями в UIView, и они работают (если они были добавили в проект некоторое время назад).
Добавление другого изображения другого размера или формата (PNG и JPG) в мои xcassets и использование этого UIImage в UIImageView для заставки также не отображается.
Добавление другого UIImageView к файлу XIB и выделение для него UIImage, который уже был в xcassets работает, изображение появляется на экране загрузки.
Копирование и переименование файлов изображений, используемых для логотипа, и добавление их в проект с последующим использованием этого UIImage в виде заставки также не отображается.
Я попытался очистить проект, перезапустить компьютер разработчика, удалить приложение из Air 2 и переустановить его на тот случай, если это станет проблемой.
Эти последние три шага наводят меня на мысль, что существует некоторая проблема с изображениями, добавляемыми после определенного момента времени существования файла проекта. Хотя вчера я обновился до Xcode 7, изображение-заставка было первоначально добавлено в Xcode 6, но изображение логотипа (также добавленное в Xcode 6) было добавлено за несколько месяцев до этого.
Я просмотрел файлы json для изображения логотипа и заставки, и они, кажется, имеют одинаковый формат. Я также просмотрел файл pbxproj в поисках различий и не вижу их.
Поэтому мне было интересно, если кто-нибудь имел представление, почему на экране запуска могут не отображаться эти новые изображения, которые я специально добавляю в Air 2? Другие вопросы, которые я читал, касаются не всех отображаемых изображений, похоже, относятся либо к Launch Images, либо к изображениям в файлах XIB, которые имеют связанные классы, ни один из которых не представляется здесь уместным.
Ответы:
Выключите, а затем снова включите.
Если серьезно, перезагрузите устройство - это то, что исправило это для меня.
Вот что не сработало:
Старые наблюдения:
Как и другие, это:
То, что я помню, вызвало первую сборку, где он перестал работать, было отключение iPhone во время его работы. (Не уверен, если это связано.)
Тем не менее, git reset не исправляет его (в сочетании со всеми не работающими чистыми шагами) говорит мне, что это должно быть кэшировано где-то еще. Вполне возможно, в одном из файлов .gitignored? (Я использую Git игнорировать файл для проектов XCode )
Одним из обходных путей, который работал для одного UIImageView (в UIView, который имеет три), но не для других, было помещение изображения в файл .xcassets. Возврат к файлу простого изображения не отменил исправление. (Действительно похоже на ошибку кэширования.)
ОБНОВЛЕНИЕ: Смотрите сверху - перезапуск устройства - это то, что исправило его. У меня такое ощущение, что на самом устройстве кешируются неправильные растровые данные.
Радар: http://openradar.appspot.com/23534818
источник
«Решением для меня было просто убедиться, что флажок« Очистить графический контекст »не отмечен для UIImageView в раскадровке. Просто изменив это, я это исправил». Никакие другие решения не помогли мне. Получил с форума разработчиков Apple
источник
У меня была точно такая же проблема на iPhone 6.
Очень странный факт заключается в том, что я смог использовать другое изображение из моего images.xcassets, которое имело тот же размер, сжатие, цветовое пространство ...
Я не могу понять, почему это не работает, но я нашел решение: просто поместите свой файл вне вашего images.xcassets и используйте его полное имя (с расширением) в Интерфейсном Разработчике
Надеюсь, это поможет!
источник
Следующая последовательность операций устранила проблему для меня на Xcode 7.3.1 и iOS 9.3.4:
источник
Многие другие ответы предлагают перезагрузку устройств и / или восстановление и / или переустановка является решением.
В то время как эти ответы работают для некоторых из нас, причина их работы в том, что приложение вынуждено «пересдавать» или «перестраивать» кэшированные снимки.
Кэшированные моментальные снимки используются приложениями для представления изображений перед загрузкой данных поддержки в память, включая каталог ресурсов, содержащий изображения раскадровки.
Этот SO-ответ @jaga предоставляет решение, но не причину того, почему UIImageViews отсутствуют на экране запуска на устройстве (но не в симуляторе).
Задний план
Недавно я попытался использовать собственный шрифт в файле «Launch Screen.storyboard».
Причина, по которой я не смог понять, после прочтения этого SO ответа @TimCamber, что побудило меня немного больше исследовать и исследовать.
Причина, по которой пользовательский шрифт не включен в мой файл раскадровки Launch Screen - это та же самая причина, по которой изображение в каталоге ресурсов не включено ...
Приложение готовит портретные и альбомные снимки экрана запуска приложения из файла раскадровки Launch Screen и (в настоящее время) сохраняет его в комплекте приложения здесь:
/Library/Caches/Snapshots/<<app_bundle>>/
и/Library/Caches/Snapshots/<<app_bundle>>/downscaled/
,Этот процесс завершается до загрузки любых вспомогательных файлов, включая любые пользовательские шрифты и каталог ресурсов.
Решение
Как уже упоминалось выше, следуя решению @ jaga, буквально все, что требуется, это:
источник
Я видел ту же проблему. Перезагрузка устройства (iPhone 6) и восстановление приложения на устройстве - единственное, что исправило его. Я перепробовал много других советов и предложений, но больше ничего не получалось. Помогла только перезагрузка + перестройка.
источник
Мое решение @iOS 11.x:
.jpg
изображение вместо.png
. Я думаю, что размер файла изображения имеет значение;.xcassets
;источник
.xcassets
помоглиУ меня было то же самое для приложения, установленного из TestFlight. Удалить приложение -> затем перезагрузить iPhone -> затем переустановить приложение работает для меня. Просто переустановить приложение или просто перезапустить устройство не помогло.
источник
У меня была такая же проблема, но перезапуск устройства не помог. Для меня сработало удаление UIImageView из моей раскадровки запуска и добавление нового.
источник
Вы пытались выключить и снова включить устройство? Сделай это.
источник
Для меня сработало выбрать « Сбросить содержимое и настройки» в меню «Симулятор».
источник
Извлеките изображения из Image.xcassets и добавьте их снова в проект. Это сработало для меня.
источник
Удалите приложение с мобильного, а затем перезапустите мобильное и установите приложение снова. теперь вопросы будут решены
источник
Я использую устройство iPhone 5s, также встретить эту проблему.
Я исправляю это:
Я думаю, что в Xcode неправильно использовать память, система может выделить немного памяти для Xcode, потому что Xcode не смог нарисовать обеденное изображение (на моем компьютере Xcode работал без остановки несколько недель)
источник
У меня также была именно эта проблема в Xcode 7 с устройствами iPad и iPhone. Хотя это и не имело смысла, в большинстве случаев мне удавалось обойти это, установив не только изображение, но и выделенное изображение в представлении изображения на то же изображение в моем файле images.xcassets.
источник
Я думаю, что экран запуска поддерживает только изображение в Assets.xcassets.
источник
это работает для меня.
Сначала в xcode clean de project.
Если вы используете симулятор, удалите приложение и перезапустите.
Если вы используете устройство, удалите приложение и перезапустите устройство.
источник
Перезапуск Xcode сделал это для меня.
Что не делал:
источник
Выберите ImageView, а затем удалите расширение изображения (.png или .jpg) на вкладке инспектора атрибутов> Представление изображения> Изображение> Имя изображения.
На файле launchscreen.storyboard изображение не появится, но оно будет в устройстве. Это сработало для меня.
источник
Казалось, ошибка iOS. Вроде иногда пропала анимация системы.
Сейчас я просто перезагружаю iPhone, и он работает для меня.
источник
В моем случае это было имя изображения .
Я добавил изображение с именем
Default-568h@2x.png
в LaunchScreen.xib - один из моих старых экранов запуска только для целей тестирования. Я строил на iPhone X Simulator, изображение не показывалось.Изменение имени на что-то нейтральное (MyImage.png) решило проблему.
Кажется, что это
@2x
была часть проблемы, а также-568h
. Что имеет смысл на-812h@3x
устройстве.источник
Это слишком важно Должно быть пустым !
Launch Screen File
источник
Простое решение - использовать JPG вместо PNG.
источник
У меня та же проблема с imageView раскадровки экрана запуска. Я удалил ссылку на изображение из проекта, переименовал свое изображение и снова добавил его в проект. Все работает отлично.
источник
Также можно 1. удалить изображение проекта 2. изменить имя изображения 3. добавить изображение файла в проект
Это сработало для меня.
источник
У меня была эта проблема в iOS 10 на iPhone 6, а также в симуляторе. Мое изображение было в папке, и это казалось проблемой. Я удалил изображение из папки в Xcode и поместил его в базовый каталог проекта, что решило проблему.
источник
Я испытываю то же самое. Я меняю разрешение изображения с 300 пикселей / дюйм, меняю его на 72. У меня это работает.
источник
Следующее помогло мне:
Также очень важно : убедитесь, что ваш xib не открыт в другой вкладке, что также может быть причиной этого!
источник
Я нашел простое, но радикальное решение, которое сработало для меня:
1 - Удалить файл: LaunchScreen.storyboard и переместить его в корзину.
2 - Продукт -> Чистый
3 - Создайте новый файл экрана запуска с именем: LaunchScreen.storyboard и поместите в него ваши изображения
4 - Сохранить и построить
Это сработало для меня после нескольких часов сложных процедур ... Кажется, что моя LaunchScreen.storyboard была заблокирована от записи и не могла быть сохранена, или странный процесс кэширования блокировал ее.
источник
Название изображения является проблемой. Переименуйте имя изображения, используемое в раскадровке экрана запуска. Удостоверьтесь, что вы не используете никаких символов, кроме буквенно-цифровых (не используйте "_- & @"). Работает для меня как шарм.
источник