您的位置:首页 > 移动开发 > IOS开发

关于IOS适配的一些心得

2015-02-01 17:49 225 查看
苹果的设备,从07年左右开始推出,到iphone4,屏幕一直都是320*480像素,所以早期,至少ios5之前,是没有适配的概念的。比如我要在屏幕上方一个button,那我就可以写 btn.frame = CGRectMake(0.0f, 0.0f, 46.0f, 44.0f);后来,苹果推出iphone4s,屏幕是640*960像素的,但是那时候,大家的app不用做适配,也能直接在4s上跑。那是因为我们写代码的时候,写的坐标,其实并不是像素,而是点,或者说是尺寸。在4之前的,一个点,是等于1像素,而在4S,一个点是两个像素,所以不用做适配。以此类推,如果以后苹果发疯又弄个什么3.5英寸的960*1440(不太可能出现这种情况,因为retina屏已经超过人眼能分辨的最小像素了),我们还是照样可以用4之前的代码。
再后来,苹果推出iphone5,这下坑爹了,尺寸变化了,变成4英寸屏,屏幕的点数也变成320*568。如果之前的程序不放入4寸屏的启动图片,就直接运行在4寸屏上,就会出现上下各留44个点的情况,页面居中显示。如果放入了4寸屏的启动图片,表示你已经做了iphone5的适配工作,那这个时候,程序就会在屏幕最上方显示。这个阶段,做适配的工作还比较少,如果布局是用tableView,那一般不用做什么处理,如果是类似win8风格的那种方块按钮,就只好写两套坐标,或者是用autolayout。不过那个时候,用autolayout的人还比较少。

接下来,苹果出了iphone6,6+,这下坑爹了,不仅长度变了,宽度也变了。尺寸还多了好几个,这下子写绝对坐标的人哭了,默默的去学autolayout了。苹果其实从ios6开始就慢慢的在淡化尺寸的概念,以前我们放按钮的时候,是说,那个按钮我要放在屏幕的20,20位置,大小是64,44。现在则是,那个按钮,我要放在距离左边那个视图20的位置,距离父视图高度5的位置,本身大小是64,44。这样的话,我们就不用挨个的视图去看了。坐标的概念被淡化,转而强调限制条件。

这里顺带说下sizeClass,我理解的sizeClass,其实就是苹果对自己的设备的尺寸一些分类,根据宽高比做一些分类,我们可以根据不同的大类做不同的限制。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  适配 retina autolayout