#xib#的基本使用

加载xib的两种方式

  • 方法一
UIView *carView = [[[NSBundle mainBundle] loadNibNamed:@"CarView" owner:nil options:nil] lastObject];
  carView.frame = CGRectMake(0, 20, 375, 110);
  [self.view addSubview:carView];
  • xib图片
Snip20160823_2.png
  • 加载效果图
Snip20160823_3.png
  • 方法二(不常用,了解即可)
UINib *nib = [UINib nibWithNibName:@"CarView"  bundle:nil];
UIView *carCiew =  [[nib instantiateWithOwner:nil options:nil] lastObject];
    [self.view addSubview:carCiew];
  • 加载效果同上
  • 注意:
    • 如果view从xib加载,就不会调用[[xxx alloc]init];和[[xxx alloc]initWithFrame]方法,会调用[[xxx alloc]initWithCoder]
    • 如果想要用代码在xib上添加子视图,那么就必须在 [xxx alloc]initWithCoder]中用代码创建相应的视图,并在- (void)layoutSubviews中布局子控件
    • 如果子控件是从xib中创建,处于未唤醒状态,所以不能直接在子控件中添加控件, 所以此时应唤醒子控件,唤醒方法是- (void)awakeFromNib方法,这样就可以在该方法中添加子控件
img-1.jpg

xib的加载原理

你可能感兴趣的:(#xib#的基本使用)