跟storyboard一样,xib是用来描述UI界面的。其实storyboard的前身就是xib
Xib和nib是同义词
加载xib文件的两种方式:
1. 加载xib的方式1
// 第1个参数是xib文件名
// 第2个参数是xib文件所在的bundle,如果为nil,则代表主bundle
UINib *nib = [UINib nibWithNibName:@"MyView" bundle:nil];
// 第1个参数是xib的File’s Owner对象
// 第2个参数一般为nil
// 这个方法返回的是xib文件中Objects下面的所有对象
NSArray *objs = [nib instantiateWithOwner:nil options:nil];
2. 加载xib的方式2
NSBundle *bundle = [NSBundle mainBundle];
// 第1个参数是xib文件名
// 第2个参数是xib的File’s Owner对象
// 第3个参数一般为nil
// 这个方法返回的是xib文件中Objects下面的所有对象
NSArray *objs = [bundle loadNibNamed:@"MyView" owner:nil options:nil];
3. Xib文件的加载过程
1> 传入一个File’s Owner对象
2> 创建Objects下面的所有对象
3> File’s Owner和Objects下面其他对象之间的关联关系
4. Xib和Storyboard的区别
1> storyboard用来描述整个应用中的所有界面,以及各个界面的之间的跳转关系(重量级)
2> xib文件可以单独地描述某一个UI元素,一般用来自定义UIView(轻量级)