Xib和storyboard都可以用来描述软件界面,都用Interface Builder工具来编辑.
两者的不同点:
1> Xib是轻量级的,用来描述局部的UI界面;
2> Storyboard是重量级的,用来描述整个软件的多个界面,并且能展示多个界面之间的跳转关系.
Xib文件的加载:
方法一:
NSArray *objs =[[NSBundle mainBundle] loadNibNamed:@"JNAppView"owner:nil options:nil];
这个方法会创建Xib中得所有对象,并且将对象按顺序放到objs数组中;
方法二(不常用):
UINib *nib = [UINib nibWithNibName:@"JNAppView" bundle:[NSBundle mainBundle]];
NSArray *objs =[nib instantiateWithOwner:nil options:nil];
bundle的参数可以为nil,默认就是main bundle
注意:NSBundle
1> 一个NSBundle代表一个文件夹,利用NSBundle能访问对应的文件夹
2> 利用mainBundle就可以访问软件资源包中的任何资源
3> 模拟器应用程序的安装路径:
/Users/aplle/资源库/Application Support/iPhone Simulator/7.1/Applications
•在开发阶段,面向开发者的是xib文件; 当把应用装到手机上时,xib文件就会转为nib文件 •
使用xib封装一个自定义view的步骤:
1> 新建一个继承UIView的自定义view,假设类名叫做(JNAppView)
2> 新建一个JNAppView.xib文件来描述JNAppView内部的结构
3> 修改UIView的类型为JNAppView真是类型
4> 将内部的子控件跟JNAppView进行属性连线
5> JNAppView提供一个模型属性
6> 重写模型属性的set方法,因为在set方法中可以拿到外界传递的模型数据
7> 把模型数据拆开,分别设置数据到对应的子控件中
8> 补充:提供一个创建JNAppView的类方法,将读取xib文件的代码屏蔽起来