Какие 3 изображения размера / разрешения для загрузки в наборе изображений поддерживают все устройства? - PullRequest
0 голосов
/ 14 марта 2019

Активы изображений теперь предпочтительнее ресурсов IOS, который поддерживает загрузку только 3 версий изображения.1x, 2x и 3x.

Но есть несколько разрешений устройств, которые поддерживаются на iPhone

640x1136 - 5 серий750x1334 - 6, 6, 7, 81242x2208 - (6, 6 с, 7, 8) плюс1125x2436 - X, XS828x1792 - XR1242x2688 - XS Max

Я могу понять, что такое разрешения 1x, 2x и 3x, например.320px (1x), 640px (2x) и 960 (3x).

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

1 Ответ

1 голос
/ 14 марта 2019

Разрешения 1x, 2x и 3x. В большинстве случаев вы должны масштабировать размеры изображений таким образом, чтобы, например, 1x было 100x100, 2x было 200x200 и 3x было 300x300.

Это не имеет ничего общего с разрешением, а скорее со шкалой DPI. Это значение, которое вы получаете от UIScreen.main.scale. Это шкала между вашей системой координат и системой координат пикселя осыпи. Например, если вы возьмете 2x устройство с разрешением 750x1334 и распечатаете кадр, вы получите 375x667, отметив UIApplication.shared.keyWindow!.frame.

Это означает, что если вы разместите изображение с размером кадра 100x100 на устройстве 2x, оно займет 200x200 пикселей. Для 3x потребуется 300x300 пикселей. Вот почему изображения в 2 и 3 раза должны быть больше.

Проблема возникает, если вы хотите масштабировать изображение напрямую в зависимости от размера экрана. Предположим следующее:

let imageWidth: CGFloat = 44.0/375.0*view.frame.size.width

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

Но в большинстве случаев лучше сохранить размер изображения и увеличить пропуски вокруг него. Итак, предположим, что экран с шириной 375 будет иметь изображение шириной 100 в середине. Было бы 137,5 пробелов с каждой стороны. Теперь просмотр одной и той же сцены на устройстве шириной 414 даст 157 пробелов на каждой из сторон. Обычно это приемлемо.

Если вам действительно нужно масштабировать изображения, вам также следует рассмотреть масштабирование шрифтов. Если один из ваших значков увеличивается в размере на 10%, то, скорее всего, текст рядом с ним должен иметь увеличенный размер шрифта на 10%. Позже это может значительно усложнить ситуацию из-за округления размеров шрифта до целочисленного значения. Поэтому я предлагаю вам избежать этого.

...