Xib和storyboard对比
- 共同点:
- 都用来描述软件界面
- 都用Interface Builder工具来编剧
本质都是转化成代码去创建软件
不同点
- Xib是轻量级的,用来描述局部UI界面
- storyboard是重量级的, 用来描述软件的多个界面,
Storyboard是重量级的,用来描述整个软件的多个界面,并且能展示多个界面之间的跳转关系
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];
注意点
- 一个控件有2种创建方式
通过代码创建
初始化时一定会调用initWithFrame:方法通过xib\storyboard创建
初始化时不会调用initWithFrame:方法,只会调用initWithCoder:方法初始化完毕后会调用awakeFromNib方法有时候希望在控件初始化时做一些初始化操作,比如添加子控件、设置基本属性这时需要根据控件的创建方式,来选择在initWithFrame:、initWithCoder:、awakeFromNib的哪个方法中操作
类转字符串,通常我们通过xib创建一个自定义的类时,如果想用到这个类名:
-比如
NSArray *views = [[NSBundle mainBundle] loadNibNamed:@"xib类名" owner:nil] options:nil]
我们可以可以这样写:
- NSArray *views = [[NSBundle mainBundle] loadNibNamed: NSStringFromClass(self) owner:nil] 安全性高.
本文对比了Xib和Storyboard这两种iOS界面布局工具的特点。两者都能使用InterfaceBuilder进行编辑,但Storyboard更适用于描述整个应用的界面流程,而Xib则更适合局部界面的布局。此外,还介绍了Xib的加载方法及控件初始化时的不同行为。
1588

被折叠的 条评论
为什么被折叠?



