storyboard上控件比较多,再加一个复杂的控件,会在VC里拖很多控件属性,比较乱。决定使用xib绘制UIView,然后在storyboard上预留一块空白的区域,去load这个SubXibView的xib。
1.添加子view到父view上
这里我要把SubXibView以xib的方式添加到stroyboard上,添加到别的父view的xib上同理:
在storyboard上画了个UIView的空白界面,拉个view上去,然后把Class改为子view的类名。
如图:
2.构造SubXibView
首先选中SubXibView的xib文件,然后把xib的File's Owner选中,在右边的Class中标示为SubXibView类,注意是File's Owner的哦
然后在SubXibView.h中添加一个View的属性,并和xib的View关联起来,如下:
然后在xib中按住ctl从File's Owner 拖线到View,并和创建的mainView关联。选中关系线,这时候file'owers会显示蓝色高亮。
最后去loadview
- (instancetype)initWithCoder:(NSCoder *)aDecoder{
self = [super initWithCoder:aDecoder];
if (self) {
[[NSBundle mainBundle]loadNibNamed:@"MianYaStyleView" owner:self options:nil];
[self addSubview:self.mianYaStyleView];
}
return self;
}
- (void)layoutSubviews{
[super layoutSubviews];
self.mianYaStyleView.frame = CGRectMake(0, 0, SCREEN_WIDTH, DYNMIC_WIDTH_BASED_NUM(140));
}
- (void)awakeFromNib{
[super awakeFromNib];
}
完工!