美文网首页
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