与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种图像尺寸来支持所有设备,以便完整的图像在所有设备上全屏显示?
答案 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%。由于字体大小四舍五入为整数值,这可能会使事情变得更加复杂。所以我建议您避免这种情况。