首页 > 代码库 > 屏幕适配问题的总结

屏幕适配问题的总结

屏幕适配的解决方案:

   1.使用frame:可以使用[UIScreen mainScreen].bounds.size.height来判断是哪个版本,根据屏幕的宽高进行计算控件的大小位置,这种方法,代码复杂,容易出错;而且维护难度大,灵活性极差,一些子控件的布局如果各个版本没有变化,可以使用frame来设置。

   2.Autoresizing:它只能设置子控件随着父控件的改变而改变,对于兄弟控件关系的调整无法实现。

   3.Autolayout:iOS6之后出现的,iOS7才得到很好的推广,能够很轻松的进行屏幕的适配,但是不能做到完全的适配,一些特殊的情况需要我们通过判断版本进行适配,一般纯代码的话会使用masonry来约束布局

   4.对于一些比较特殊的情况,例如不同版本下的字体的大小不一样,应该通过if...else语句或者switch语句判断版本号或者屏幕的宽高进行不同的设置,或者cell间距大小的设置等。

   5.Size Classes使用

  iOS8中新增了Size Classes特性,他是对当前所有iOS设备尺寸的一个抽象。

  屏幕的宽和高分别分成三种情况:(Compact,Regular,Any).也就是紧凑,正常和任意。这样宽和高三三整合,一共九种情况。针对每一种情况,如果需要的话,我们可以单独在storyboard或   xib中设置UIView的自动布局约束,甚至某一个button是否显示都是能轻松实现的。

屏幕适配问题的总结