[iOS]调用layoutSubViews方法(有的时候为啥会调用2遍)

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 方法里写 初始化视图的代码  只允许在里面进行改变布局

你可能感兴趣的:(iOS)