layoutSubviews在以下情况下会被调用:
1、init初始化不会触发layoutSubviews
但是是用initWithFrame 进行初始化时,当rect的值不为CGRectZero时,也会触发
2、addSubview会触发layoutSubviews
3、设置view的Frame会触发layoutSubviews,当然前提是frame的值设置前后发生了变化
4、滚动一个UIScrollView会触发layoutSubviews
5、旋转Screen会触发父UIView上的layoutSubviews事件
6、改变一个UIView大小的时候也会触发父UIView上的layoutSubviews事件
但是这里注意的是: 1. 如果是在initWithFrame方法里 初始化了button或者ScrollView (注意:这里是可以改变多种状态的:例如按钮是点击和不点击, scrollView是滚动和不滚动)
这时候 layoutSubViews 会调用多次. (经过试验证明)
建议: 不要在LayoutSubViews 方法里写 初始化视图的代码 只允许在里面进行改变布局
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-11 11:31:44