如果一个view内部的控件比较多,一般会考虑自定义一个view文件来把它内部的子控件的创建都放到这个view文件里,使控件屏蔽起来,不让外界关心。
外界可以穿入对应的模型数据给view,view拿到模型数据后给内部的子控件设置对应的数据。
封装的控件的基本步骤
1.在initWithFrame:这个方法中添加子控件,提供“便利构造方法”。便利构造方法是一个类方法,以instancetype为返回值类型,大括号中的内容为return [ [ self alloc ] init ] ;
形如:
- ( instancetype )Person {
return [ [ self alloc ] init ] ;
}
第一步保证了子控件已经加载到内存中;
2.在layoutSubviews方法中设置子控件,layoutSubview就是布局子控件的意思,应该注意一定要先调用该父类(超类)的方法,例如 [ super layoutSubviews ]
第二步保证了子控件有frame,有细部信息;
3.增加模型属性,在模型属性的set方法中重写set方法,加上某个模型的数据传给哪一个具体的成员变量,由谁来接收模型数据,保证传到cell上的数据的位置是对的,否则虽然拿到了数据却放不对位置也是不行的。
第三步保证了子控件有数据,有内容;