程序员iOS程序犭袁

AutoLayout与sizeToFit并存

2016-05-04  本文已影响1511人  tinghua

如果 nib 或 storyboard 里用了 autoLayout,那么在viewDidLoad调sizeToFit是不管用的,因为实际顺序是先执行viewDidLoad再执行 autoLayout,执行 autoLayout 的时候会把 sizeToFit 的结果覆盖掉。不过,在viewDidLayoutSubviews里调sizeToFit是管用的。


一、设置sizeToFit

1.从Nib中加载View

加载View

2.修改textField自适应

加载view时修改约束生效

3.view进行subviews布局

subviews布局 没有改变subview的frame

4.父View调用子View的layoutSubviews

layoutSubviews布局 subview.frame变化

5.因为SubView执行 autoLayout 的时候把 sizeToFit 的结果覆盖掉,所以执行sizeToFit没有生效。


二、让sizeToFit生效

1.在View的layoutSubviews之后进行更改

更改sizeToFit sizeToFit成功

2.在控制器ViewDidLayoutSubviews进行更改

更改sizeToFit
上一篇 下一篇

猜你喜欢

热点阅读