屏幕适配问题共有四种解决方案:(1))sizeClasses+AutoLayout的使用;(2)AutoLayout的使用;(3)Autoresizing的使用;(4)s根据屏幕宽高写控件frame。下面将会分别来进行叙述。
(1)Size Classes使用
iOS8中新增了Size Classes特性,他是对当前所有iOS设备尺寸的一个抽象。
用法:
屏幕的宽和高分别分成三种情况:(Compact,Regular,Any).也就是紧凑,正常和任意。这样宽和高三三整合,一共九种情况。针对每一种情况,如果需要的话,我们可以单独在storyboard或xib中设置UIView的自动布局约束,甚至某一个button是否显示都是能轻松实现的。
(2)Autolayout使用
Autolayout是一种“自动布局”技术,专门用来布局UI界面的。
Autolayout能够很轻松的解决屏幕适配的问题。
(3)Autoresizing使用
在Autolayout以前,有Autoresizing可以做屏幕适配,但局限性较大,只能针对父子关系进行有限调整,如边距固定,尺寸可变,对于兄弟关系的调整无法实现。对于UI比较固定的app,这种方式基本满足。相比之下,Autolayout比Autoresizing强大很多。
(4)根据当前屏幕的宽高写frame
在新特性界面中,根据:[UIScreen mainScreen].bounds.size.height.来判断用户的屏幕长度,来判断时3.5寸,4寸,4.7寸,5.5寸,以此来设置新特性中图片选用哪套。
常用写法:#define JKScreenW [UIScreen mainScreen].bounds.size.widthCGFloat btnW = JKScreenW * 0.2;
缺点:代码复杂,容易出错;而且维护难度大,灵活性极差。
本文详细介绍了屏幕适配问题的四种解决方案:SizeClasses、AutoLayout、Autoresizing与自定义Frame,并对每种方法进行了深入探讨。包括SizeClasses如何抽象不同设备尺寸,AutoLayout的自动布局技术,Autoresizing的局限性,以及根据屏幕宽高直接设置控件frame的方法。同时指出了这些方法的优缺点。
5404

被折叠的 条评论
为什么被折叠?



