使用ios的autolayout做UI

12 篇文章 0 订阅
5 篇文章 0 订阅

        之前一直用的是老的坐标定位,和自动缩放进行ui定位,现在iphone6出来了,尺寸又变了,为了适应各种屏幕,以前的通过判断设备类型和设备屏幕大小调用不同的xib已经有点过时了,或者说太浪费时间了,也可以说是一种bug。现在必须使用新的autolayout来定义界面。


        使用autolayout必须知道Constraints。就是约束规则,通过定义一系列规则来描述某个控件的位置和大小,和其他控件的关系,同时可以定义优先级,优先考虑优先级高的规则。
Constraints包含以下规则:
1.自身规则。
定义自己的宽度或者高度,定义自己距离父窗口上下左右的距离,或者是居中点。
2.和其他控件规则。
定义2个控件的上下左右对齐方式,定义2个空间的上下距离。
基本上通过这2种规则的定义,我们就可以轻松的描述一个界面的信息,而且可以在iPhone4s,iPhone5,iPhone6,以及ipad上都能保持良好适配。


        ios8还支持SizeClasses,对于某一下在pad上和phone上希望显示不同的控件,或者不同的控件大小,都可以通过这个功能,完成,比如aW,aH表示任意的设备,rW,aH表示一个pad等。不过个人觉得这个功能有点落伍,把在代码中判断设备的功能放到ui编辑器了而已。


        此外ios6和7、8对于autolayout的理解方式不一样,比如ios7和8中如果是个UITabBarController的一个界面,最下面的空间的bottom规则定义是,距离父窗口底部距离是49(49是tabbar的高度),而在ios6中则应该定义为距离父窗口的底部距离是0。而这个只能在代码里硬判断,然后手动添加规则了。估计这也是在xcode6中开始放弃ios6的原因吧。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值