xib自定义UIView 在Storyboard中使用AutoLayout

Xib和Storyboard的使用我就不多叙述。关于如何用Xib自定义一个UIView,并将其添加在ViewController上,使用AutoLayout添加约束条件,使其跟随控制器ViewController的约束条件变化而变化呢?请看下文。

1、 创建一个继承UIView的子类TestView和xib文件
xib自定义UIView 在Storyboard中使用AutoLayout_第1张图片

2、 选中xib中的File’s Owner,设置右边工具栏中的Custom Class为你所创建的文件TesView
3、 在TestView.h中添加一个IBOutlet属性

@property (nonatomic, weak) IBOutlet UIView *view;

4、 将此IBOutlet 连接到TestView.xib 的View
xib自定义UIView 在Storyboard中使用AutoLayout_第2张图片
5、在TestView.m文件中初始化,如下:

- (instancetype)initWithCoder:(NSCoder *)aDecoder
{
    self = [super initWithCoder:aDecoder];
    if (self) {
        NSString *className = NSStringFromClass([self class]);
        self.view = [[[NSBundle mainBundle] loadNibNamed:className owner:self options:nil] firstObject];
        [self addSubview:self.view];
        return self;
    }
    return nil;
}

或者在awakeFromNib中添加也可以:

- (void)awakeFromNib {
    [[[NSBundle mainBundle] loadNibNamed:NSStringFromClass([self class]) owner:self options:nil] firstObject];
    [self addSubview:self.view];
}

6、在Storyboard中引用xib文件
xib自定义UIView 在Storyboard中使用AutoLayout_第3张图片

你可能感兴趣的:(iOS开发杂记)