20180329-layoutSubviews的调用机制

如果你想强制更新布局,不要直接调用此方法,你可以调用setNeedsLayout方法,如果你想立即显示你的views,你需要调用layoutIfNeed方法

layoutSubviews作用:

layoutSubviews是对subviews重新布局,比如我们在重新布局子视图的时候,通过调用layoutSubviews方法,可以实现对子视图重新布局。

layoutSubviews默认不做任何事情,用到的时候,需要自己进行重写

layoutSubviews在以下情况会被调用

苹果官方文档已经强调,不要使用layoutSubviews进行子视图进行重新布局,那么layoutSubviews什么情况会被调用呢,通过搜索,发现以下几种情况会调用layoutSubviews:

  1. 直接调用setLayoutSubviews
  2. addSubviews的时候
  3. 当view的frame发生改变的时候
  4. 当滑动scrollView的时候
  5. 当屏幕旋转的时候会触发父view的layoutSubview事件
  6. 改变一个UIView大小的时候,也会触发父view的layoutSubview事件

简单的测试发现,基本都会调用。

 

posted @ 2018-03-29 14:11  土耳其大骗子  阅读(154)  评论(0编辑  收藏  举报