每天一点Swift(五)控制器的生命周期和SizeClass

字数358 阅读19 评论0 

初始化init-->awakeFromNib--> prepare a segue --> SB去设置outlets --> viewDidLoad

1. viewDidLoad

在viewDidLoad中,outlets已经被设置;但是几何位置(bounds)并没有被设置

viewDidLoad应该做什么:

初始化你的view的最佳时机,或者说是根据你的model来更新UI;
不要在这里做任何关于几何位置的事情。

2.viewWillAppear

viewWillAppear应该做什么:请求网络数据这种耗时的工作放在这里;也允许做与位置相关的操作。

3. 布局

viewWillLayoutSubviews --> autoLayout去自动布局 -->viewDidLayoutSubviews

4.viewWillDisappear

viewWillAppear应该做什么:做清理数据的工作。

 

举个splitviewController例子:下面Psychologist是master控制器,happiness是detail控制器

AutoLayout:

利用preview查看当前storyboard:

用Ctrl+拖线来设置SB中的AutoLayout时,可以按住shift来多选。

调整压缩系数,表示当设备的名目尺寸发生变化时,哪些view可以优先被压缩。优先值越低,越会被压缩。

hugging是,这个view到底想不想变小。

imageView的自动布局,在SB中给它设置一张默认的图片,那么他就有默认的宽高。就只用设置位置约束了。

topConstraint并没有设置Equal而是greater than。。。 所以图片可以自适应大小。

SizeClass:

1. 先在any any下实现统一布局

2.选择特殊情况下的sizeClass

3. 移除原来any any的约束,

原文地址:https://www.cnblogs.com/Free-Thinker/p/5294418.html