学习 iOS Autolayout的一点经验
来源:互联网 发布:绿岸网络很多人离职 编辑:程序博客网 时间:2024/06/09 17:34
随着IOS系统的不断推新,IOS开发的方式也将发生不少变化,就以IOS开发中的Autolayout来说,AutoLayout在IOS6就已经出来了,但到到目前为止,IOS8已经出来小半年了,在开发中AutoLayout还是没有被彻底使用,而apple公司却一直在催出我们使用,可见在以后的开发中,AutoLayout的地位会越来越重要。
以下是最近在学习Autolayout的过程中学到的一些东西,全出于自己的理解,不对的地方望大家指出。
一、一个视图所需约束的多少
1.普通的UI视图(UIView)
对于普通的视图UIview来说,想要正确完成视图的布局,就得创建足够的约束,普通视图无法计算自身的宽高,所以在创建约束时,要么添加关于视图宽高的约束,要么添加足够的其他约束,保证这些视图可以计算出自身的宽高。
2.可以计算自身宽高的视图(UILable、UIbutton)
对于这些视图来说,因为可以计算出自身的宽高了,所以没有特殊需求的话,布局视图时添加除宽高的约束就可以了。
3.特殊的UIScrollView
在AutoLayout中,UIsrollView是比较复杂的,因为UIscrollView的实际可滚动视图大小是由它的ContentSize决定的,所以单独一个ScrollView是没法实现布局的,它必须依赖于自身的子视图来设定自己的ContentSize。
二、约束的添加规则
1.
2.
3.
三、约束的更新
在实际使用的过程中,发现对于UI的可变动性要求是很高的,所以在使用AutoLayout实现布局后,想更新视图的话我们必须的更新约束,到这问题就来了,对于视图的某个属性的约束正常只可以添加一个(当然不同优先级的是可以添加多个的),在添加完视图后再重新添加针对同一个视图属性的约束就会报错(storyboard中也一样),所以刚开始学AutoLayout时实现约束更新时比较困难的。
针对这个实际的问题,暂时想到以下两种方法:
1.使用变量绑定约束
实质就是创建约束时用一个变量绑定一个属性的约束,然后通过改变变量的值来更新约束即可。
2.移除子视图
当一个视图从父视图上移除时,对于这个子视图来说,它所用的约束将会被移除掉,这时候你再重新添加子视图到父视图,并重新添加约束即可。
对比上面两种方法,第二种方法虽然能实现,但是稍显复杂,建议使用第一中。
最后,在开发中用代码实现AutoLayout是比较复杂的,虽然apple提供了VFL来添加自动布局,但还是有点复杂,在此推荐用的比较多的第三方库,它对AutoLayout进行了block回调式的封装,使用比较方便,链接:masonry.
0 0
- 学习 iOS Autolayout的一点经验
- 关于IOS Autolayout 的一点小记录
- 我的一点学习经验
- 我的一点学习经验
- 杂谈学习的一点经验
- Autolayout的一点理解
- iOS UI设计: autolayout约束的一点技巧
- iOS 一篇厚道的Autolayout及VFL经验分享
- iOS 的学习经验
- iOS AutoLayout学习总结
- IOS开发AutoLayout学习
- iOS学习之Autolayout
- iOS AutoLayout学习总结
- iOS-autolayout 学习
- iOS-AutoLayout布局学习
- 学习brew开发的一点经验
- 学习网页设计的一点经验
- 高中学习方面的一点经验
- android圆角矩形有边框无背景色
- Ubuntu下安装ffmpeg
- 最小生成树-hdu1233-还是畅通工程
- python sklearn笔记 显示sample的图片
- C# dapper 动态参数 DynamicParameters
- 学习 iOS Autolayout的一点经验
- Ubuntuzilla: 安装最新版Mozilla软件的简单方法
- Python
- hpp含义
- 一个应届计算机毕业生的2012求职之路
- InteliJ IDEA 14 如何创建子类?
- 深入理解Android的startservice和bindservice
- DOM解析XML
- 解决Undefined variable: _SESSION的方法