一,xib文件可以用来描述某一块局部的UI界面
xib文件的加载
方法1,
NSArray *objs=[[NSBundle mainBundle]loadNibNamed:@"MJAppView" owner:nil options:nil];
//这个方法会创建xib中的所有的对象,并且将对象按照顺序放到objs数组中(如果xib如右图所示,那么objs数组中依次会有三个对象 1个UIView,1个UIButton,1个UISwitch);
方法2,
//bundle参数可以为nil,默认就是main bundle
UINib *nib=[UINib nibWithNibName:@"MJAppView" bundle:[NSBundle mainBundle]];
NSArray *objs=[nib instantiateWithOwner:nib options:nil];
二,封装自定义view的步骤
1.新建一个继承UIView的自定义view,假设类名叫做(MJAppView)
2.新建一个MJAppView.xib文件来描述MJAppView内部的结构
3.修改UIView的类型为MJAppView真实类型
4.将内部的子控件跟MJAppView进行属性连线
5.MJAppView提供一个模型属性
6.重写模型属性的set方法,因为在set方法中可以拿到外界传递的模型数据
7.把模型数据拆开,分别设置数据到对应的子控件中
8.补充:提供一个创建MJAppView的类方法,将读取xib文件的代码屏蔽起来
三,Xib和storyboard对比
1.共同点
都用来描述软件界面
都用Interface Builder工具来编辑
2.不同点
Xib是轻量级的,用来描述局部的界面
storyboard是重点级的,用来描述整个软件的多个界面,并且能展示多个界面之间的跳转关系