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使用注意事项:


    屏幕快照 2016-07-29 下午10.51.06.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容