iPhone 屏幕尺寸开发记录
iPhone 屏幕数据
型号 | 屏幕尺寸 | 分辨率(pt) | Reader | 分辨率(px) | 渲染后(px) | PPI |
---|---|---|---|---|---|---|
iPhone 3GS | 3.5寸 | 320 x 480 | @1x | 320 x 480 | 空 | 163 |
iPhone 4/4S | 3.5寸 | 320 x 480 | @2x | 640 x 960 | 空 | 326 |
iPhone 5/5S/5C/SE | 4.0寸 | 320 x 568 | @2x | 640 x 1136 | 空 | 326 |
iPhone 6/6S/7/8 | 4.7寸 | 375 x 667 | @2x | 750 x 1334 | 空 | 326 |
iPhone 6/6S/7/8 Plus | 5.5寸 | 414 x 736 | @3x | 1242 x 2208 | 1080 x 1920 | 401 |
iPhone X/XS | 5.8寸 | 375 x 812 | @3x | 1125 x 2436 | 空 | 458 |
iPhone XR | 6.1寸 | 414 x 896 | @2x | 828 x 1792 | 空 | 326 |
iPhone XS Max | 6.5寸 | 414 x 896 | @3x | 1242 x 2688 | 空 | 458 |
各参数简介
屏幕尺寸: 实际手机的对角线的物理长度,可以直观的评估手机的物理大小。
pt(point):表示点,逻辑单位,虚拟的,没有实际大小。它的大小在iOS开发中通常与px挂钩,在 iPhone 3GS 中一个点代表一个像素大小,在iPhone 4/4S中一个点代表两个像素大小,主要用来iOS开发进行页面布局,我们在代码中获取的屏幕的宽高就是pt单位的。
px(pixel):表示像素。是屏幕上所显示的最小单位,在分辨率高的屏幕上,一个像素可能会达到肉眼无法识别的大小。
pt和px的区别:pt是绝对长度,不随屏幕像素密度变化而变化,就像iPhone 4/4S比 iPhone 3GS 分辨率大一倍,但是他们的pt还是一样的,只不过在3GS中一个点代表一个像素,1:1的关系,4/4S中一个点代表两个像素,1:2的关系,在日常开发中用pt来进行布局开发,能够省去不同分辨率计算的痛苦,同时便于UI切图。
总结:px用于UI设计计量单位,pt用于实际iOS开发UI布局计量单位
Reader:px和pt的倍数关系,一般用来切不同倍数的图,来适配各个型号iPhone的分辨率。
渲染后(px):但是Plus版本iPhone的实际PPI是401,理论上苹果应该用401 / 326 x @2x = @2.46x的素材,但是这个比例很难切图,所以为了方便采用了@3x的素材,然后再缩放到@2.46x的屏幕上,也就是缩放到2.46 / 3 = 83%,实际上苹果选取了一个接近比例的87%。这样算下来,物理分辨率和虚拟分辨率的比率是87%,也就是1080
/ 0.86 = 1242,1920 / 0.87 = 2208。好处是开发者更方便,比如准备素材时候,字号可以直接调整为3x的。
注意:Plus版本iPhone 官网的实际分辨率就是1080 x 1920,1242 x 2208是为了方便UI设计和开发的放大版分辨率,但是其他版本的iPhone都是正常的。
PPI(Pixels Per Inch):也叫像素密度,所表示的是每英寸所拥有的像素数量。因此PPI数值越高,即代表显示屏能够以越高的密度显示图像。当然,显示的密度越高,拟真度就越高。
Xcode 10模拟器适配
Xcode 10中增加了 iPhone XS Max , iPhone XR的模拟器,但是如果直接跑的话,呈现的还是 iPhone X的尺寸和大小。解决这个问题办法就是,适配App的Max和XR启动图(LaunchImage),再重启才能真正的呈现 iPhone XS Max模拟器真正的大小。如图:
image.png