首先大家要清楚一些概念:
px: pixel,像素,屏幕上显示的最小单位。
pt: point ,点,是一个标准的长度单位,1pt=1/72英寸.
PPI(DPI):pixel per inch ,像素密度PPI,指每英尺的像素数,表示了清晰度.
1 inch=2.54cm =25.4mm
通常我们所说的iphone5屏幕尺寸为4英尺指的是显示屏对角线的长度
下图是一张比较完整的Iphone尺寸规格
可以看出iPhone 6的标准分辨率为750*1334 ,整体放大1.5倍正好是iPhone6+的放大模式
iPhone 4之后(x, y, width, height) = (20, 30, 40, 50),就表示高度为40个点,宽度为50个点,放在(20, 20)个点的位置。这种处理方法,将之前以像素作为单位自动转换成以点作为单位,使得iPhone 3GS的应用程序,不用修改也可运行在iPhone 4上面。
文字,颜色等是矢量数据,放大不会失真。原有的iPhone 3GS程序,在iPhone 4上面运行,文字显示也十分清晰。
而图片并非矢量数据,处理方式有所不同。假设图片 example.png,大小为 30 x 40像素(这里的单位是像素,数字图片的单位通常都为像素)。当这张example.png在iPhone 3GS和iPhone 4中使用时候,都占据屏幕上30 x 40个点。而因为iPhone 4中1个点等于2个像素,也就是30 x 40像素的图片,占据了60 x 80像素的屏幕,因此这图片在iPhone 4中看起来就会模糊。
开发的时候,为使得图片清晰,需要进行图片适配。这时需要准备两张内容相同的图片,放在同一目录下。
-
example.png // 30 x 40像素
-
[email protected] // 60 x 80像素
当程序中使用example.png的时候,会根据屏幕模式自动选择对应的图片。屏幕1x模式,就会选择example.png, 2x模式就会优先选择[email protected],假如[email protected]不存在,就选择example.png。
ios字体大小的转换:
UIFont
Parameters
fontSize
The size (in points) to which the font is scaled. This value must be greater than 0.0.
fontSize实际的参数是pointSize
iPhone 4、5、6共用一套字体大小规范。
iPhone6 plus在放大模式下的字体正好是在此基础上放大了1.5倍: