iOS中xib的加载方式

  • 方法1(常用)
NSArray *views = [[NSBundle mainBundle] loadNibNamed:@"xib文件名" owner:nil options:nil];
  • 方法2(不常用)
UINib *nib = [UINib nibWithNibNmae:@"xib文件名" bundle:nil];
NSArray *views = [nib instantiateWithOwner:nil options:nil];
  • 提供快速构造方法
 + (instancetype)shopView;
 #pragma mark - 快速构造方法
 + (instancetype)shopView {
     return [[[NSBundle mainBundle] loadNibNamed:NSStringFromClass(self) owner:nil options:nil] firstObject];
     // return [[[NSBundle mainBundle] loadNibNamed:@"SJMShopView" owner:nil options:nil] firstObject];
 }
  • 如果View从xib中加载,就会调用initWithCoder:方法
 // 创建子控件...
 注意:如果子控件是从xib中创建,是处于未唤醒状态
 - (instancetype)initWithCoder:(NSCoder *)aDecoder {
       if (self = [super initWithCoder:aDecoder]) {
           NSLog(@"%s", __func__);
           UILabel;
       }
       return self;
 }
 // 从xib中唤醒
 // 添加 xib中创建的子控件 的子控件
 - (void)awakeFromNib {
       // 在子控件身上做一些事情
 }
#pragma mark - 布局子控件
 - (void)layoutSubviews {
    [super layoutSubviews];
    self.label.frame = self.bounds;
 }
  • xib使用注意事项:


    iOS中xib的加载方式_第1张图片
    屏幕快照 2016-07-29 下午10.51.06.png

你可能感兴趣的:(iOS中xib的加载方式)