在自定义View的时候我们会遇到在一个xib文件中用到一个View,而这个View也是用xib文件定义的,接下来就说一下如何在.xib中加载其他的xib文件。
结构大概是这样(假设是在MainView中使用HeadView.xib):
首先在HeadView.h文件里添加view属性:
@property (nonatomic, weak) IBOutlet UIView *view;
然后在HeadView.m文件中写上加载xib文件的代码:
- (instancetype)initWithCoder:(NSCoder *)aDecoder {
if (self = [super initWithCoder:aDecoder]) {
[self setup];
}
return self;
}
- (void)setup {
[[NSBundle mainBundle] loadNibNamed:@"HomeGasStationView" owner:self options:nil];
[self addSubview:self.view];
}
接下来把HeadView.xib的File's Owner改为HeadView(注意这里是File's Owner的Class不是View的Class):
接着点击File's Owner 按住control拖线到xib的View上面,选择之前写的view:
在MianView.xib添加一个view控件并设置它的Class为上边准备好的HeadView:
此时便大功告成啦,运行成功。