1.给类属性设置数据的方法:重写set方法、传入模型
2.在自定义类时应考虑全面,一些初始化操作需要重写时应注意系统自带的其他init方法是否有效
对于控件,使用init和initWithFrame:方法时都会调用initWithFrame方法,因此重写的initWithFrame:方法可以同时响应init与initWithFrame两个方法。但使用initWithFrame方法时不会调用init方法,因此重写init方法时无法响应initWithFrame:方法
3.MVC:模型(Model)、视图(View)、控制器(Controller)编程思想
4.view的封装总结:
4.1如果一个view内部的子控件比较多,一般会考虑自定义一个view,把它内部的子控件的创建屏蔽起来,不让外界关心
外界可以传入对应的模型数据给view,view拿到模型数据后给内部的子控件设置对应数据
4.2封装控件的基本步骤:
在initWithFrame:方法中添加子控件,提供便利构造方法
在layoutSubviews方法中设置子控件的frame(一定要调用super的layoutSubviews)
增加模型属性,在模型属性set方法中设置数据到子控件中
5.iOS开发中xib和storyboard的对比
5.1共同点:
都用来描述软件界面
都用Interface Builder工具来编辑
本质都是转换成代码去创建控件(右键Open As - Source Code可以查看源码)
5.2不同点:
xib用来描述局部的UI界面
storyboard用来描述整个软件的多个界面,并能展示多个界面之间的跳转关系
6.加载xib的方法
//方法1(常用)
NSArray *views = [[NSBundle mainBundle] loadNibNamed:@“xib文件名” owner:nil options:nil];
//方法2
UINib *nib = [UINib nibWithNibName:@“xib文件名” bundle:nil];
NSArray *views = [nib instantiateWithOwner:nil options:nil];