关于iPhone屏幕的适配

  很多做了好久iOS开发的程序员都没真真搞懂1x 2x 3x , 新手程序员遇到个老手的UI , UI帮他把素材都整理好 , 程序员只需要命名一下拖进xcode就完事了 , 但是当遇上新手UI的时候,就懵逼了,很荣幸, 我一路上遇到的都是新手UI .

  先来看一张iPhone尺寸表

从表中可以清楚的看出 1x 2x 3x 的来源,根据PPI来划分的 , 跟屏幕大小没有直接关系(我面试过N个程序员,这点都答错了)

好了,那么问题来了:

1.为什么我们平时在特定机型模拟 , 设置好某个控件的尺寸 , 当这个控件到其他尺寸的屏幕上 , 会相应变大呢?

这就设置到我们代码中设置尺寸的单位了,我们在代码中设置控件的frame的单位是点,例如CGRectMake(0,0,10,20) , 这代表这个控件宽10个点,高20个点

而这就要说会我们上面说的屏幕1x 2x 3x ,我们可以理解为1x代表一个像素/点 2x代表两个像素/点  3x代表三个像素/点

那么当我们设置的frame是点的时候,系统会根据我们的屏幕转换成像素 , 就自然而然的进行1x 2x 3x扩大和缩小控件 , bingo

2.为什么图片会变模糊,文字不会?

因为文字跟背景颜色是矢量数据,缩小拉伸都不会影响他的清晰度,而图片则不是

 

posted @ 2016-03-30 16:10  咸鱼程序员  阅读(209)  评论(0编辑  收藏  举报