界面经常需要拆分成不同的模块,甚至需要抽取出来作为可以复用的模块,在storyboard+xib开发时,一个xib中使用另一个xib就经常会遇到
首先,新建一个自定义view,和一个xib
然后再xib中,设置File's Owner的绑定类为testView
之后拖IBOutlet
*注意xib的最底层View并不是新建的testView类,是要手动add到testView上的,所以这个View要添加IBOutlet
这时,File's Owner增加了一条
之后把有需要的控件都添加IBOutlet
之后重写initWithCoder方法
-(instancetype)initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithCoder:aDecoder];
if (self) {
[[NSBundle mainBundle] loadNibNamed:@"testView" owner:self options:nil];
self.BottomView.frame = CGRectMake(0, 0, self.bounds.size.width, self.bounds.size.height);
[self addSubview:self.BottomView];
}
return self;
}
事实上就是在运行时在自定义类中通过loadNib加载出自定义UI控件
之后在其他xib使用这个自定义类