使用File's Owner在xib(或storyboard)中添加其他自定义xib

界面经常需要拆分成不同的模块,甚至需要抽取出来作为可以复用的模块,在storyboard+xib开发时,一个xib中使用另一个xib就经常会遇到

首先,新建一个自定义view,和一个xib

新建文件

然后再xib中,设置File's Owner的绑定类为testView

设置File's Owner的绑定类

之后拖IBOutlet

*注意xib的最底层View并不是新建的testView类,是要手动add到testView上的,所以这个View要添加IBOutlet

添加最底层的view的IBOutlet

这时,File's Owner增加了一条

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使用这个自定义类

使用

完成


运行
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容