awakeFromNib的调用机制

如果细心的话,会发现在创建UITableViewCell的子类时,如果沟上 "Also create XIB file"的时候会自动生成 awakeFromNib 方法,不勾则不会生成,根据方法名也很容易看出来。注意,这个函数只有在创建了.nib文件的时候才会被调用,并且这个方法背调用的时候xib文件连线生成的对像已经初始化,并且frame什么的都已固定好,所以,我们可以在这个方法里面添加自己定义的对象,比如在某个label下方添加一个自定义的进度条等。

有时候我们会也会自己定义个View,然后关联xib文件,此时,我们同样可以在该view的.m文件中添加awakeFromNib,做一些圆角,边框颜色等初始化,不需要在弄个initView之后的借口自己调用。

这个要注意!!!!!!!:
顺便提一下initWithCoder这个方法,这个方法也是创建了.nib文件的时候才回调用,它调在awakeFromNib之前,initWithCoder被调用时,连线生成的对象没有被实例话,都是nil。你的view或cell在xib或storyboard上有体现,比如直接用xib创建的,或是拉控件关联已有类等。而且,即使我们自定义的view是纯代码,没有xib,但我们在vc的xib里引用了,效果是一样的。

  • (instancetype)initWithFrame:(CGRect)frame
    {
    self = [super initWithFrame:frame];
    if (self) {
    //代码
    }
    return self;
    }
    这个方法在自定义cell的时候,通过注册cell的方式才会自动调用

你可能感兴趣的:(awakeFromNib的调用机制)