iOS 使用Xib创建自定义View - CustomXibView

创建同名的UIView文件和Xib文件。

  • 1、将Xib文件的File's Owner -> Custom class -> Class属性设置为同名的类。

  • 2、将Xib文件的自定义View-> Custom class -> Class属性设置为同名的类。

  • 注意:

    1、通过xib文件来自定义控件是,不会调用init,initWithFrame:方法;

    2、如果不指定自定义View的Custom class为同名类,则不会执行initWithCoderawakeFromNib方法

XIB加载顺序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
//TODO: NO.1 初始化
+ (CustomView *)instanceWithFrame:(CGRect)frame
{
CustomView *view = (CustomView *)[[NSBundle mainBundle] loadNibNamed:@"CustomViewXib" owner:nil options:nil][0];
view.frame = frame;
return view;
}

//TODO: NO.2 初始化
+ (instancetype)customXiBView{
NSString *className = NSStringFromClass([self class]);
return [[[NSBundle mainBundle] loadNibNamed:className owner:self options:nil] firstObject];
}


//1、正在准备初始化
- (id)initWithCoder:(NSCoder *)aDecoder {
self = [super initWithCoder:aDecoder];
if (self) {

}
return self;
}

//2、初始化完毕`(若想初始化时做点事情,最好在这个方法里面实现)`
- (void)awakeFromNib {
[super awakeFromNib];
}

//3、添加到父视图中
- (void)willMoveToSuperview:(UIView *)newSuperview {
if (newSuperview) {

}
}

//4、调整布局
- (void)layoutSubviews {
[super layoutSubviews];
}

PS:在连线的时候,object一定要选择,你连线的view,而不是 File's Owner

使用XIB 自定义UIView,并可AutoLayout

[iOS UI] 如何通过xib创建自定义UIView并在xib中使用

http://www.jianshu.com/p/7d59b9420bba

http://www.jianshu.com/p/371b1a195fb9

init方法与xib区别

自定义控件(通过代码或者xib文件)

IOS Xib使用——Xib表示局部界面

通过 XIB 加载 UIView

文章作者: kyren
文章链接: http://huluo666.github.io/2016/04/25/iOS 使用Xib创建自定义View/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Kyren's Blog