使用XIB 自定义UIView,并可AutoLayout

我们知道如何使用XIB自定义一个UIView, 但当将其添加到AutoLayout的VC上时, 如何使这个自定义的UIView也可以跟随父VC 使用Autolayout呢? 下面细细道来..

1,新建一个文件 “File -> New -> New File” (cmd + N), 选择 “Cocoa Touch” 然后是 “Objective-C class”,“UIView”的子类, 输入文件名:TestCustomView
2,新建一个 “User Interface” 然后是 “View”.命名为: TestCustomView
3,设置xib 的file's owner 为你自定义的类

使用XIB 自定义UIView,并可AutoLayout_第1张图片
set.jpg

4,然后打开TestCustomView.h添加一个IBOutlet


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

5,将此IBOutlet 连接到TestCustomView.xib 的View

使用XIB 自定义UIView,并可AutoLayout_第2张图片
oulet.jpg

6,最后打开TestCustomView.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;
    }

在VC中使用它:

使用XIB 自定义UIView,并可AutoLayout_第3张图片
use.jpg

附个demo:
https://github.com/wangjianlewo/TestCustomViewFromXib
demo 中 右边的按钮总是距离屏幕的最右方10

现在当VC使用了AutoLayout 之后,使用xib自定的view,也可以使用AutoLayout完美适配了.

你可能感兴趣的:(使用XIB 自定义UIView,并可AutoLayout)