1.共同点:都是用来描述软件界面
2.不同点
Xib是轻量级的,用来描述局部的UI界面
Storyboard是重量级的,用来描述整个软件的多个界面,并且能展示多个界面之间的跳转关系,俗称"故事板".
3.XIB使用的分类:
3.1. xib中的内容是固定不变的,直接提供一个函数返回:
+ (instancetype)appView
{
return [NSArray arrayWithString:[NSBundle mainBundle] pathForResource:@"JHAppView"]] lastObject];
}
3.2. 如果xib中的内容是要动态改变,则需要调用者传递当前模型,并重写set方法
+ (instancetype)appViewWithApp:(MJApp *)app
{
NSBundle *bundle = [NSBundle mainBundle];
// 读取xib文件(会创建xib中的描述的所有对象,并且按顺序放到数组中返回)
NSArray *objs = [bundle loadNibNamed:@"JHAppView" owner:nil options:nil];
JHAppView *appView = [objs lastObject];
appView.app = app;
return appView;
}
- (void)setApp:(MJApp *)app
{
_app = app;
// 1.设置图标
self.iconView.image = [UIImage imageNamed:app.icon];
// 2.设置名称
self.nameLabel.text = app.name;
}