欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

全面了解 Apple 手机型号总览

最编程 2024-02-10 11:23:42
...
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图,不同手机加载之后也只会去缩小,不但可以避免因放大而导致的模糊。而且还会引入更少的图片,减少包的大小。这么考虑也是合理,只不过会带来新的问题:

  • iPhone6加载3倍图时,首先会将3倍图数据加载到内存中,而大多数情况下,@3x图会比@2x图尺寸大一些,会造成一定的内存损耗

  • iPhone6在将要显示图片的时候,会将图片发送到GPU,GPU会为图片分配计算空间。如果图片大了一些,会消耗过多的GPU计算量

  • iPhone6加载300px * 300px (px:像素) 的图片后,图片尺寸会变成 150pt x 150pt (pt:点),如果ImageView设定的具体尺寸为100pt x 100pt,那么此时缩放会增加一些计算量

为了避免以上的问题,同时多引入的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)
        }