Я получаю эту проблему при создании пользовательского интерфейса в раскадровке (или xib) в построителе интерфейса xcode. После того, как я присвою образ (с тем же именем в каталоге активов) для представления изображения в Interface Builder, xcode загружает файл с изображением 3x вместо 2x в любых устройствах без сетчатки, на которых работает ios8.
Обратите внимание, что эта ошибка возникает только в том случае, если для цели развертывания приложения установлено значение 6.0 или 6.1.
Я использую каталог ресурсов для управления ресурсами изображений.
Эта проблема протестирована и происходит как в Xcode 6.0.1, так и в 6.1 GM seed 2.
Я искал эту проблему и редко мог найти соответствующую тему. Поэтому я задаюсь вопросом, есть ли у кого-то одна проблема со мной и каков наилучший способ ее решения. Спасибо.
Ниже перечислены шаги по воспроизведению этой проблемы, если у кого-то есть интерес:
-
Установите Xcode 6
-
Создайте проект iOS и установите в качестве языка проекта objective-c.
-
Измените цель развертывания приложения на 6.0 или 6.1.
-
Добавьте 1x, 2x и 3x версию изображения в каталог активов.
-
В конструкторе интерфейса добавьте
UIImageView
к представлению диспетчера представлений по умолчанию для раскадровки по умолчанию. -
В конструкторе интерфейса установите имя изображения как одно и то же имя изображения, добавленное в шаге 4 в каталоге активов.
-
Выберите симулятор как iPhone6 (или любой симулятор работает на iOS 8.0, кроме iPhone6 Plus).
-
Очистить проект (продукт/очистить).
-
Запустите проект.
ОБНОВЛЕНИЕ:
Как заметил в комментарии @Andrei Mankevich, этот баг, похоже, исправлен в iOS 8.1.
И я подтвердил это с помощью симулятора, работающего под iOS 8.1 в Xcode 6.1 GM seed 2 (извините, что в настоящее время у меня нет реального устройства с iOS 8.1).
Как заметил @Andrei Mankevich, эта ошибка может существовать только в iOS 8.0.x.