AutoLayout与sizeToFit并存
2016-05-04 本文已影响1511人
tinghua
如果 nib 或 storyboard 里用了 autoLayout,那么在viewDidLoad调sizeToFit是不管用的,因为实际顺序是先执行viewDidLoad再执行 autoLayout,执行 autoLayout 的时候会把 sizeToFit 的结果覆盖掉。不过,在viewDidLayoutSubviews里调sizeToFit是管用的。
一、设置sizeToFit
1.从Nib中加载View
![](https://img.haomeiwen.com/i1785673/1ce818a3df349a01.png)
2.修改textField自适应
![](https://img.haomeiwen.com/i1785673/a54c5e2eb750a907.png)
3.view进行subviews布局
![](https://img.haomeiwen.com/i1785673/9ed79f3111037ee3.png)
![](https://img.haomeiwen.com/i1785673/65e1c4c96ac320cd.png)
4.父View调用子View的layoutSubviews
![](https://img.haomeiwen.com/i1785673/dcc7a74f7220d94d.png)
![](https://img.haomeiwen.com/i1785673/505d8c27fee7cdfb.png)
5.因为SubView执行 autoLayout 的时候把 sizeToFit 的结果覆盖掉,所以执行sizeToFit没有生效。
二、让sizeToFit生效
1.在View的layoutSubviews之后进行更改
![](https://img.haomeiwen.com/i1785673/c297299a968d021c.png)
![](https://img.haomeiwen.com/i1785673/fae64d2ef66d86f9.png)
2.在控制器ViewDidLayoutSubviews进行更改
![](https://img.haomeiwen.com/i1785673/73405883e5c8a7c1.png)