型号 |
屏幕尺寸(inch) |
逻辑分辨率(point) |
缩放因子(scale factor) |
物理分辨率(pixel) |
像素密度(PPI) |
iPhone3GS |
3.5 |
320 * 480 |
@1x |
320 * 480 |
163 |
iPhone4/4s |
3.5 |
320 * 480 |
@2x |
640 * 960 |
326 |
iPhone5/5s |
4 |
320 * 568 |
@2x |
640 * 1136 |
326 |
iPhone6/6s |
4.7 |
375 * 667 |
@2x |
750 * 1334 |
326 |
iPhone6Plus/6s Plus |
5.5 |
414 * 736 |
@3x |
1242 * 2208 |
401 |
图1
物理屏幕尺寸:一般用对角线的长度(英寸)来衡量,也就是你看到的实际大小。
逻辑分辨率是与物理屏幕尺寸对应的,只是为了程序员更好的控制控件的位置,其反应到程序就是我们常用的frame。从图1中可以看到,iphone3GS和iphone4/4s的物理屏幕大小相同,其frame(逻辑分辨率)也对应相同;iphone4/4s和iphone5/5s的屏幕尺寸不同,其逻辑分辨率也不同。
物理分辨率:指液晶屏最高可显示的像素数,也就是一块屏幕中含有多少个发光单元。同样大小的屏幕,其发光单元的数量在制造的时候就已确定。比如iphone4/4s相对于iphone3GS来说,其屏幕大小没变但是其物理分辨率就提高了,视觉效果就是变清晰了,也就是颗粒度变小了。
对于一个UIImage元素来说,如果不设置其frame,则其在屏幕中的大小会由图片的分辨率与该设备的逻辑分辨率决定,比如有一张320*480分辨率的图片,分别显示在未设置frame的UIImage的iphone3GS和iphone4/4S上,其逻辑分辨率大小则为320*480和160*240。 实际开发中UI给的图片都是根据物理分辨率来给的,如果以iphone6/6S作为设计模板,那你拿到的高保真图片则应该是750 * 1334像素,在设置控件frame的时候,则应该将高保真的图片尺寸(根据图片的像素计算得出)/2。