xib加载原理

  首先查看Xib中的UIView对应的类,然后用对应的类创建对象(调用的是initWithCoder方法),然后查看其属性进行设置,比如frame,backgroundcolor等


- 然后UIView中可能有多个子控件,比如有UIImageView,UILabel,...
- 那么就对每一个控件从上到下,依次根据控件所对应的类来创建(调用的是initWithCoder方法)与之相对应的对象,然后对创建的对象根据其相应的的属性进一步赋值,比如frame.backgroundcolor等
- 至此,xib加载完毕
- Storyboard的前身是Xib,所以Stroyboard中的UIView的加载过程跟上面的一样,每个子控件调用initWithCode方法创建对象,并且都会调用该控件对应的类的awakeFromNib方法

 

 

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

- (void)awakeFromNib
{
    [super awakeFromNib];
    NSLog(@"%s", __func__);
}

 

posted @ 2016-01-25 11:55  Z了个L  阅读(645)  评论(0编辑  收藏  举报