如果你想强制更新布局,不要直接调用此方法,你可以调用setNeedsLayout方法,如果你想立即显示你的views,你需要调用layoutIfNeed方法
layoutSubviews作用:
layoutSubviews是对subviews重新布局,比如我们在重新布局子视图的时候,通过调用layoutSubviews方法,可以实现对子视图重新布局。
layoutSubviews默认不做任何事情,用到的时候,需要自己进行重写
layoutSubviews在以下情况会被调用
苹果官方文档已经强调,不要使用layoutSubviews进行子视图进行重新布局,那么layoutSubviews什么情况会被调用呢,通过搜索,发现以下几种情况会调用layoutSubviews:
- 直接调用setLayoutSubviews
- addSubviews的时候
- 当view的frame发生改变的时候
- 当滑动scrollView的时候
- 当屏幕旋转的时候会触发父view的layoutSubview事件
- 改变一个UIView大小的时候,也会触发父view的layoutSubview事件
简单的测试发现,基本都会调用。