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


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

 

xib加载原理

 

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

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

 

相关文章:

  • 2021-05-14
  • 2022-02-09
  • 2021-12-19
  • 2021-10-10
  • 2021-09-16
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案