我们知道如何使用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 为你自定义的类
4,然后打开TestCustomView.h添加一个IBOutlet
<pre><code>
@property (nonatomic, weak) IBOutlet UIView *view;
</code></pre>
5,将此IBOutlet 连接到TestCustomView.xib 的View
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中使用它:
附个demo:
https://github.com/wangjianlewo/TestCustomViewFromXib
demo 中 右边的按钮总是距离屏幕的最右方10