- 方法1(常用)
NSArray *views = [[NSBundle mainBundle] loadNibNamed:@"xib文件名" owner:nil options:nil];
- 方法2(不常用)
UINib *nib = [UINib nibWithNibNmae:@"xib文件名" bundle:nil];
NSArray *views = [nib instantiateWithOwner:nil options:nil];
- 提供快速构造方法
+ (instancetype)shopView;
#pragma mark - 快速构造方法
+ (instancetype)shopView {
return [[[NSBundle mainBundle] loadNibNamed:NSStringFromClass(self) owner:nil options:nil] firstObject];
// return [[[NSBundle mainBundle] loadNibNamed:@"SJMShopView" owner:nil options:nil] firstObject];
}
- 如果View从xib中加载,就会调用initWithCoder:方法
// 创建子控件...
注意:如果子控件是从xib中创建,是处于未唤醒状态
- (instancetype)initWithCoder:(NSCoder *)aDecoder {
if (self = [super initWithCoder:aDecoder]) {
NSLog(@"%s", __func__);
UILabel;
}
return self;
}
// 从xib中唤醒
// 添加 xib中创建的子控件 的子控件
- (void)awakeFromNib {
// 在子控件身上做一些事情
}
#pragma mark - 布局子控件
- (void)layoutSubviews {
[super layoutSubviews];
self.label.frame = self.bounds;
}
-
xib使用注意事项: