xib

1. xib是什么?

  • xib一般用于封装的独立控件
  • 纯代码实现封装里-懒加载,xib相当于实现了控件的添加与frame的设置这两步
  • 所以将上述工程改为xib,将不用修改控制器里的作何内容,这就是封装的好处。

2. xib注意点

  • xib的命名与控件同名(就当一种约定)
  • xib的加载有两种方式
  • 第一种
-(instancetype)init{
    if (self=[super init]) {
        HYLShopView *shopView=[[[NSBundle mainBundle]loadNibNamed:NSStringFromClass([self class]) owner:nil options:nil] firstObject];
        self=shopView;
    }
    return self;
}

*第二种

    UINib *nib=[UINib nibWithNibName:@"HYLShopView" bundle:[NSBundle mainBundle]];
//    当NSBoundle为参数时nil等价从主资源库获取
//    UINib *nib=[UINib nibWithNibName:@"HYLShopView" bundle:nil];
    NSArray *objs=[nib instantiateWithOwner:nil options:nil];