Как добавить iOS @1x, @2x, @3x на устройство?

Недавно я задал вопрос о том, почему мы используем 3 различных типа изображений, перечисленных выше, и получил хорошие / подробные ответы. Это также привело меня к вопросу о другом...

Предположим, я работаю в XCode (с SWIFT) и у меня есть три размера изображения: @1x, @2x, @3x для определенного, скажем, UIImage на iPhone. Теперь я хочу, чтобы он выглядел красиво на iPad, поэтому добавлю немного масштабирования. Однако это изменит размеры изображений 1x, 2x, 3x, которые мне нужны для iPad, поэтому мне нужно сделать еще 3, чтобы компенсировать этот новый размер. Теперь, как XCode будет различать между ними? Нужно ли проверять размер экрана, который я использую, а затем выбирать изображения?

Я читал, что ресурсы могут помочь мне, но это касается только iPhone против iPad, что если я масштабирую свои изображения на iPhone 4, 5, 6 и iPad. Это много разных размеров и изображений @x, и я читал, что Apple не любит проверку устройств, поэтому я не уверен, как это произойдет.

Я надеюсь это имеет смысл. Я получаю @1x, 2x, 3x на устройство, но если мое приложение предназначено для универсального использования устройства, то как мне управлять всеми этими различными размерами в коде для соответствующего устройства?

2 ответа

Решение

Вы действительно должны использовать каталог изображений. Это делает это почти слишком легко. Вот определение, которое Apple дает, чтобы вы знали, что это не слухи:

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

И это продолжается дальше:

Каждый набор в каталоге активов имеет имя. Вы можете использовать это имя для программной загрузки любого отдельного изображения, содержащегося в наборе. Чтобы загрузить изображение, вызовите метод класса, специфичный для платформы, передавая имя набора, который содержит изображение. ОС загрузит изображение из набора, наиболее подходящего для текущего масштабного коэффициента

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

Смотрите документацию здесь

Вам нужно проверить размер самого большого изображения, если вы используете iPad, определите размер фрейма UIImageView. Например, если это 400*400pt, тогда ваше изображение будет 1200*1200. Просто используйте одно изображение. Я не думаю, что вам нужно включать @2x и @1x. 1200 * 1200 покрывает ваши базы для максимально возможного изображения, а при уменьшении все равно останется много пикселей для полного разрешения @3x на других устройствах и так далее. Вот так я все равно понимаю. Я тоже удивлялся этому и нашел только @1x @2x @3x полезными для вещей, которые я не увеличивал по мере увеличения размера экрана, таких как некоторые кнопки.

Другие вопросы по тегам