Ответ 1
iOS использует точки вместо пикселей в своих системах координат. В оригинальных устройствах без сетчатки (iPhone, iPhone3G, iPhone3GS, iPad, iPad 2, iPad mini и ранние iPod touch) одна точка в системе координат отображается на один пиксель на экране устройства. В то время жизнь была простой, вы предоставляли изображения для вашего приложения, которые соответствовали размеру точек, и все выглядело великолепно.
Когда Apple представила первые устройства с дисплеем Retina (iPhone 4, iPad с Retina Display и iPod touch 4), у устройств было 2 пикселя на каждую точку. Apple разработала умный способ справиться с этим. Программисту просто нужно было добавить второе изображение в свою программу с увеличенным разрешением и добавить @2x к имени. Никаких изменений в коде не потребовалось. Если ваш код загружает изображение под названием "дом", iOS загрузит "дом" на устройстве, не являющемся сетчаткой (например, iPad 2 или оригинальный iPad mini), и будет использовать "дом @2x" для устройств сетчатки. IPhone 6 Plus имеет еще более высокое разрешение, поэтому он использует версию @3x.
Так что же делает изображение @1x, @2x или @3x? Если ваше изображение "house" имеет размер 120 на 90 пикселей, то ваше изображение "house @2x" должно быть размером 240 на 180 пикселей, то есть в два раза больше пикселей в каждом измерении (для краткости "2x"). Версия "house @3x" должна быть 360 на 270 (в 3 раза больше количества пикселей в каждом измерении).
Вам нужно убедиться, что в версиях @2x и @3x больше деталей, а не просто больше пикселей. Вы можете использовать такие программы, как Photoshop или Pixelmator для создания ваших изображений. Начните с создания прекрасной высокодетализированной версии вашего изображения (версия @3x), затем уменьшите ее до разрешения @2x и сохраните эту версию как версию @2x. Затем снова откройте свою версию @3x и масштабируйте ее до разрешения @1x и сохраните ее как версию @1x. Добавьте все три версии в Каталог Активов в XCode, и iOS загрузит соответствующую версию для соответствующих устройств.