layoutSubviews在以下情况下会被调用:
1、init初始化不会触发layoutSubviews但是是用initWithFrame 进行初始化时,当rect的值不为CGRectZero时,也会触发
2、addSubview会触发layoutSubviews 但frame !={0,0,0,0}
3、设置view的Frame会触发layoutSubviews,当然前提是frame的值设置前后发生了变化,view的with,heigh发生变化才会触发layoutSubviews,original. x ,original. y变化不会触发layoutSubviews
4、滚动一个UIScrollView会触发layoutSubviews
5、旋转Screen会触发父UIView上的layoutSubviews事件
6、改变一个UIView大小的时候也会触发父UIView上的layoutSubviews事件
7、直接调用setLayoutSubviews会触发layoutSubviews
layoutSubviews作用
layoutSubviews是对subviews重新布局。比如,我们想更新子视图的位置的时候,可以通过调用layoutSubviews方法,既可以实现对子视图重新布局。
layoutSubviews默认是不做任何事情的,用到的时候,需要在子类进行重写。
出自:https://www.jianshu.com/p/74bd6edf1826
网友评论