今天
1. 控制器对视图中得控件的布局
VC中的方法:
viewWillLayoutSubViews
viewDidLayoutSubViews
2. UIView对内部的子视图进行布局(典型应用:TableViewCell对内部子视图的布局)
UIView中的方法
layoutSubView
如何实现:
step1: 自定义视图类,继承自UIView
step2: 重写自定义视图的方法layoutSubViews
方法的执行顺序:
step1: 先执行控制器的viewWillLayoutSubViews
step2: 执行控制器的视图中,包含的所有子视图的layoutSubViews方法
step3: 最后执行控制器的viewDidLayoutSubViews方法
3. Auto Resizing
3.1 是什么?
是旧版(iOS5之前)的自动布局技术,操作简单,API简单,功能简单,有局限性,很久以前叫struts/spring(架构/弹性)技术。
3.2 核心理念
当界面大小发生变化时,根据变化的比例,对子视图进行同比例的变化。
3.3 如何使用呢?
step1: 关闭Auto Layout
step2: 将要布局的子视图摆放在期待的位置上
step2: 选中需要布局的子视图
step3: 打开检查器5
step4: 点亮需要的红线
外框(4个)红线负责子视图到父视图边缘距离是否可变的设定
内框(2个)红线负责子视图内部大小尺寸是否可以拉伸的设定
3.4 编写代码实现Auto Resizing
为控件的autoResizingMask属性赋值即可。
但是代码赋值时规则与检查器中的设置要相反,如果在检查器中点亮的是上和右固定,则在代码中应该设置下和左是可调节,
4. AutoLayout(自动布局)
4.1 是什么?
是从iOS6开始的一个新的布局技术,功能强大,操作简单,从xcode5开始,慢慢好用,在xcode6中功能更强大
4.2 工作原理
1》通过为视图添加一堆“约束 constraint”来完成对视图应该摆放的位置的描述,由系统根据满足所有约束以后,计算相应的frame值来布局,不在是人工计算frame
2》什么是约束?约束就是条件
3》约束的使用原则:
描述清楚+互不冲突
4.3 如何使用约束?
方法一:用storyboard(或xib)来创建,即在故事版中不需要编写代码完成配置
方法二:用代码创建约束
4.4 使用故事版完成约束的配置