很常

Apple 机型一览表

2021-04-21  本文已影响0人  Mccc_
Phone机型 屏幕尺寸(inch) 物理分辨率(pixel) 逻辑分辨率(point) 缩放因子 芯片 显示屏
iPhone 12 Pro Max 6.7 1284*2778 428*926 @3x A14 超视网膜 XDR 显示屏
iPhone 12 Pro 6.1 1170*2532 390*844 @3x A14 超视网膜 XDR 显示屏
iPhone 12 6.1 1170*2532 390*844 @3x A14 超视网膜 XDR 显示屏
iPhone 12 mini 5.4 1080*2340 375*812 @3x A14 超视网膜 XDR 显示屏
iPhone 11 Pro Max 6.5 1242*2688 414*896 @3x A13 超视网膜 XDR 显示屏
iPhone 11 Pro 5.8 1125*2436 375*812 @3x A13 超视网膜 XDR 显示屏
iPhone 11 6.1 828*1792 414*896 @2x A13 Liquid 视网膜高清显示屏
iPhone SE(第二代) 4.7 750*1334 375*667 @2x A13 视网膜高清显示屏
iPhone XS Max 6.5 1242*2688 414*896 @3x A12 超视网膜高清显示屏
iPhone XS 5.8 1225*2436 375*812 @3x A12 超视网膜高清显示屏
iPhone XR 6.1 828*1792 414*896 @2x A12 Liquid 视网膜高清显示屏
iPhone X 5.8 1225*2436 375*812 @3x A11 超视网膜高清显示屏
iPhone 8 Plus 5.5 1242*2208 414*736 @3x A11 视网膜高清显示屏
iPhone 8 4.7 750*1334 375*667 @2x A11 视网膜高清显示屏
iPhone 7 Plus 5.5 1242*2208 414*736 @3x A10 视网膜高清显示屏
iPhone 7 4.7 750*1334 375*667 @2x A10 视网膜高清显示屏
iPhone 6s Plus 5.5 1242*2208 414*736 @3x A9 视网膜高清显示屏
iPhone 6s 4.7 750*1334 375*667 @2x A9 视网膜高清显示屏
iPhone 6 Plus 5.5 1242*2208 414*736 @3x A8 视网膜高清显示屏
iPhone 6 4.7 750*1334 375*667 @2x A8 视网膜高清显示屏
iPhone SE(第一代) 4 640*1136 320*568 @2x A9 视网膜显示屏

术语说明

术语 说明 备注
英寸inch 1inch = 2.54cm = 25.4mm
缩放因子scale factor 单位长度内的数量比(pixel/point)。物理像素/逻辑像素,也就是我们常说的切图@1x、@2x、@3x;
屏幕尺寸 显示屏的对角长度 单位inch
物理分辨率 是位图图像中的最小单位,也是设计师在PS作图使用的单位。这里的像素可以想象成屏幕上真正用来显示颜色的发光小点。 单位是px
逻辑分辨率 虚拟单位,因此也叫虚拟点。在app开发的时候使用的单位。整个屏幕上有多少个物理点。 单位是pt
像素密度 ppi 表示沿着对角线,每英寸所拥有的像素(pixel)数目,PPI的数值越高,代表显示屏能够以越高的密度显示图像,即通常所说的分辨率越高,颗粒感越弱,图像更清晰、 = 163 pixcel/inch

iOS中 对@1x, @2x 和 @3x 的理解

所谓的@1x、@2x、@3x就是屏幕显示模式;也可以理解为一个点等于多少个像素。@2x,就是1个点等于2个像素;同理,@3x,就是1个点等于3个像素。

为什么不只用@3x图呢?

只用@3x图,不同手机加载之后也只会去缩小,不但可以避免因放大而导致的模糊。而且还会引入更少的图片,减少包的大小。这么考虑也是合理,只不过会带来新的问题:

为了避免以上的问题,同时多引入的2种尺寸图片,对ipa包体的大小影响极小,所以还是要引入3种尺寸的图片

网络图如何自动适配@2x 和 @3x?

网络下载的图片,只有一种尺寸, 但是我们项目要求不同型号的iPhone显示图片大小不一样。如何做到适配跟效果图高度一致?

拿到网络图片UIImage后, 设置他的scale 假如你们后台上传的图片都是@3x图,那么X就设置成3, 这样当在@2x 设备上运行的时候,就自动返回 @2x 的图片对象

   if let cgImage = image.cgImage {
            let _ = UIImage(cgImage: cgImage, scale: 2, orientation: UIImage.Orientation.up)
        }
上一篇 下一篇

猜你喜欢

热点阅读