Xib和storyboard对比
-
共同点:
- 都用来描述软件界面
- 都用InterfaceBuilder工具来编辑
- 本质都是转换成代码去创建控件
-
不同点
- Xib是轻量级的,用来描述局部的UI界面
- Storyboard是重量级的,用来描述整个软件的多个界面,并且能展示多个界面之间的跳转关系
Xib的加载
// 1.xib肯定是在资源库中 所以使用mainBundle获取
方法1
NSArray*views = [[NSBundlemainBundle]loadNibNamed:@"xib文件名"owner:niloptions:nil]
方法2
UINib*nib = [UINibnibWithNibName:@"xib文件名"bundle:nil];
//3.确定你需要的哪个空间在数组的哪个位置
NSArray*views = [nib instantiateWithOwner:niloptions:nil];
Snip20160522_6.png
注意点:
一个控件的创建方式有两种
方式一
- 通过代码创建
- -初始化时一定会调用initWithFrame:方法
方式二
- 通过XIB描述
初始化时不会调用initWithFrame:方法,只会调用initWithCoder:方法
- 初始化完毕后会调用awakeFromNib方法 initWithCoder
- 有时候希望在控件初始化时做一些初始化操作,比如添加子控件、设置基本属性
- 这时需要根据控件的创建方式,来选择在initWithFrame:、initWithCoder:、awakeFromNib的哪个方法中操作
网友评论