大家好,我是陈景序,今天我们来聊聊iPhone的屏幕尺寸、分辨率和像素密度这些技术细节。
首先,得弄清楚几个概念:
- 尺寸:指的是手机的物理尺寸,包括显示屏和边框。
- 屏幕尺寸:我们通常说的iPhone5屏幕尺寸为4英寸、iPhone6屏幕尺寸为4.7英寸,是指显示屏对角线的长度。
- 像素密度:PPI(Pixel Per Inch by diagonal)表示沿着对角线,每英寸所拥有的像素数目。PPI数值越高,分辨率越高,颗粒感越弱。
接下来,我们来看看一些关键步骤:
计算PPI
根据勾股定理,可以得知iPhone4(s)的PPI计算公式为:
sqrt(Width^2 + Height^2) / Diagonal
缩放因子
缩放因子(scale factor between logic point and device pixel)是指逻辑坐标和设备像素之间的比例关系。
- Scale起源:早期的iPhone3GS的屏幕分辨率是320x480(PPI=163),iOS绘制图形(CGPoint/CGSize/CGRect)均以point为单位。
- UIScreen.scale:UIScreen.h中定义了该属性,用于将逻辑坐标空间转换为设备坐标空间。
- UIScreen.nativeScale:iOS8新增了nativeScale属性,表示物理屏幕的原始缩放因子。
机型判别
可以通过scale参数识别是iPhone3GS还是iPhone4(s),通过nativeScale参数可以探测机型是否为iPhone6+。
分辨率和渲染
分辨率和渲染是iPhone屏幕显示效果的关键因素,需要根据不同的机型和分辨率进行适配。
屏幕尺寸适配
从iPhone3GS/iPhone4(s)过渡到iPhone5(s)时,在逻辑上宽度不变高度稍高,之前旧的素材和布局通过AutoresizingFlexible简单适配即可运行得很好。
UI相对布局
考虑到iPhone机型的多样性,不可能针对iPhone4(s)、5(s)、6、6+四种屏幕尺寸出四套视觉交互稿,也不要基于某一机型从上往下、从左往右给绝对标注,而应该关注subView在superView中的相对位置(EdgeInsets/Frame/Center)以及siblingView之间的偏移(Offset),尽量给出适合Autolayout的相对布局比例。
DEPRECATED API适配
最后,除了对屏幕尺寸和分辨率进行适配之外,还需对iOS SDK中相关的DEPRECATED API进行适配。
希望这篇文章能帮助大家更好地理解iPhone的屏幕尺寸、分辨率和像素密度。如果你还有其他问题,欢迎在评论区留言。
我是陈景序,关注「websoft网络软件专家」(www.phpwebsoft.com),了解更多Web开发技术。
