美文网首页
initWithCoder:

initWithCoder:

作者: 大亮code | 来源:发表于2022-04-16 23:45 被阅读0次

initWithCoder调用场景

initWithCoder在开始解析一个文件时调用,不管时Xib还是归档文件都会调用.

从沙盒中解档自定义对象,需要重写initWithCoder
使用从Xib中加载UIView,会调用initWithCoder

//开始解析一个文件时调用.

- (instancetype)initWithCoder:(NSCoder *)aDecoder {
    
    if (self = [super initWithCoder:aDecoder]) {
        NSLog(@"%@",self.btn);
    }
    return self;
}

awakeFromNib调用场景

awakeFromNib在xib加载完毕时调用

//当从xib当中加载完毕时调用
- (void)awakeFromNib {
    NSLog(@"%@",self.btn);
}

如果是xib之间存在嵌套,initWithCoder和awakeFromNib 有时怎么嵌套的?

答案是从subView开始调起

sonView initWithCoder
sonView awakFromNib
fatherView initWithCoder
fatherView awakFromNib

initWithFrame

用代码创建UIView,会调用initWithFrame

我们自定义一个View,如果既想通过xib去创建这个view,又想纯代码创建,我们在自定义这个view时重写initWithCoder和initWithFrame,如果是纯代码创建的view一定会去调用initWithFrame,通过纯代码创建的一定会调用initWithCoder.

相关文章

网友评论

      本文标题:initWithCoder:

      本文链接:https://www.haomeiwen.com/subject/fjjkertx.html