使用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 为你自定义的类

set.jpg

4,然后打开TestCustomView.h添加一个IBOutlet
<pre><code>
@property (nonatomic, weak) IBOutlet UIView *view;
</code></pre>

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

oulet.jpg

6,最后打开TestCustomView.m,添加如下代码:
<pre><code>

  • (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;
    }
    </code></pre>

在VC中使用它:

use.jpg

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

现在当VC使用了AutoLayout 之后,使用xib自定的view,也可以使用AutoLayout完美适配了.
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容