layoutSubviews在以下情况下会被调用:
init初始化不会触发layoutSubviews
addSubview会触发layoutSubviews
设置view的Frame会触发layoutSubviews,当然前提是frame的值设置前后发生了变化
滚动一个UIScrollView会触发layoutSubviews
旋转Screen会触发父UIView上的layoutSubviews事件
改变一个UIView大小的时候也会触发父UIView上的layoutSubviews事件
通过纯代码封装
步骤:
新建一个继承UIView的类
在刚刚新建类的类扩展中添加子控件属性(用weak声明,防止内存泄露)
在initWithFrame:方法中添加子控件
在layoutSubviews方法中设置子控件的frame(在该方法中一定要调用[super layoutSubviews]方法)
提供一个模型属性,重写模型属性的set方法
在该setter方法中取出模型属性,给对应的子控件赋值
网友评论