要在图片集中上传哪3张尺寸/分辨率的图片以支持所有设备?

时间:2019-03-14 10:25:43

标签: ios xcode assets

与IOS中的资源相比,现在优先使用图像资产,该资源仅支持上传3个版本的图像。 1x,2x和3x。

但是iPhone上支持多种设备分辨率

  

640x1136-5系列
  750x1334-6,6s,7,8
  1242x2208-(6,6s,7,8)加
  1125x2436-X,XS
  828x1792-XR
  1242x2688-XS Max

例如,我可以理解1x,2x和3x的分辨率是多少。 320px(1x),640px(2x)和960(3x)。

但是我不知道要上传哪种3种图像尺寸来支持所有设备,以便完整的图像在所有设备上全屏显示?

1 个答案:

答案 0 :(得分:1)

分辨率为1x,2x和3x。在大多数情况下,您应该缩放图像的大小,以使例如1x为100x100,2x为200x200和3x为300x300

这与分辨率无关,而与DPI比例无关。这是您从UIScreen.main.scale获得的值。这是您的坐标系和scree像素坐标系之间的比例。例如,如果您使用分辨率为750x1334的2倍设备并打印出帧,则可以通过选中375x667获得UIApplication.shared.keyWindow!.frame

这意味着,如果将帧尺寸为100x100的图像视图放置在2x设备上,则将占用200x200像素。对于3倍,它将占用300x300个像素。这就是为什么2x和3x图像应该更大的原因。

如果要根据屏幕尺寸直接缩放图像,则会出现问题。假设以下内容:

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

如果将其用于图像尺寸,则图像将根据屏幕尺寸成比例地调整尺寸。这样做,您将需要一个比3个版本更好的图标系统。您可以将它们放入资源中,并且每个屏幕分辨率具有3张图像。

但是在大​​多数情况下,最好保留图像大小并增加其周围的空白。因此,假设一个宽度为375的屏幕中间的图像宽度为100。它将在每侧产生137,5空格。现在在宽度为414的设备上看到同一场景将在侧面的哪一侧产生157个空白。通常是可以接受的。

如果确实需要缩放图像,则还应该考虑缩放字体。如果您的一个图标的大小增加了10%,则其旁边的文本很可能应该将字体大小增加了10%。由于字体大小四舍五入为整数值,这可能会使事情变得更加复杂。所以我建议您避免这种情况。