iOS开发屏幕适配问题解决方案

       屏幕适配问题共有四种解决方案:(1)根据屏幕宽高写控件frame(下策);(2)Autoresizing的使用(中策);(3)AutoLayout的使用(上策);(4)sizeClasses+AutoLayout的使用(上上策)。下面将会分别来进行叙述。


(1)根据当前屏幕的宽高写frame

      在新特性界面中,根据:[UIScreen mainScreen].bounds.size.height.来判断用户的屏幕长度,来判断时3.5寸,4寸,4.7寸,5.5寸,以此来设置新特性中图片选用哪套。

常用写法:

#define JKScreenW [UIScreen mainScreen].bounds.size.width

CGFloat btnW = JKScreenW * 0.2;

缺点:代码复杂,容易出错;而且维护难度大,灵活性极差。


(2)Autoresizing使用

     在Autolayout以前,有Autoresizing可以做屏幕适配,但局限性较大,只能针对父子关系进行有限调整,如边距固定,尺寸可变,对于兄弟关系的调整无法实现。对于UI比较固定的app,这种方式基本满足。相比之下,Autolayout比Autoresizing强大很多。


(3)Autolayout使用

--在以前的iOS程序是怎样布局UI的?

经常编写大量的坐标计算代码;

为了保证在各种屏幕上都能有完美的UI界面效果,有时还需要分别为几种屏幕编写不同的坐标计算代码(即传说中的“屏幕适配”)


--什么是Autolayout?

Autolayout是一种“自动布局”技术,专门用来布局UI界面的。

Autolayout自iOS6开始引入,由于Xcode4的不给力,当时并没有得到很大的推广。

自iOS7(Xcode5)开始,Autolayout的开发效率得到很大的提升。

苹果官方也推荐开发者使用Autolayout来布局UI界面。

Autolayout能够很轻松的解决屏幕适配的问题。


(4)Size Classes使用

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

用法:

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

具体使用方法以后我们实际项目用到再进行分析。


本篇内容参考极客学院视频课程《iOS8 SDK新特性系列课程》,非常感谢!


github主页:https://github.com/chenyufeng1991  。欢迎大家访问!

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值