封装
- 如果一个view内部的子控件比较多,一般会考虑自定义一个view,把它内部的子控件的创建屏蔽起来,不让外界关心
- 外界可以传入对应的模型数据给view,view拿到模型数据后给内部的子控件设置对应的数据
封装的步骤
- 在
initWithFrame
方法中添加子控件,提供更加便利的构造方法 - 在
layoutSubViews
方法中设置子控件的frame(一定要调用super的layoutSubViews) - 增加模型属性,在模型属性set方法中设置数据到子控件上
一个控件看不见有哪些可能?
- 高度或宽度其实为0
- 位置不对(比如是个负数或者超大的数,已经超出屏幕)
- hidden == YES
- alpha <= 0.01
- 没有设置背景,没有设置内容
- 可能是文字颜色和背景色一样
- 等等
layoutSubViews
- 这个方法专门用来布局子控件,一般在这里设置子控件的frame
- 当控件本身的尺寸发生改变的时候,系统会自动调用这个方法
- 注意:一定要调用super的layoutSubViews