xib的使用

xib和storyboard对比
  • 共同点

    • 都用来描述软件界面
    • 都用interface Buidler工具来编辑
    • 本质都是转换成代码去创建控件
  • 不同点

    • xib是轻量级的,用来描述局部的UI界面
    • Storyboard是重量级的,用来描述整个软件的多个界面,并且能展示多个界面之间的跳转关系

xib的加载

    UIView *shopView = [[[NSBundle mainBundle] loadNibNamed:@"xib名称" owner:nil options:nil] lastObject];

    //bundle作为参数的时候,传递nil就相当于mainBundle
    UINib *nib = [UINib nibWithNibName:@"xib名称" bundle:nil];
    UIView *shopView = [[nib instantiateWithOwner:nil options:nil] lastObject];

    //在xib关联的类中,xib名称可以使用下面的代码代替(前提是xib名称和关联的类的名称相同)
    NSStringFromClass(self)

自定义控件的注意点

  • 一个控件有两种创建方式

  • 通过代码创建

    • 初始化时一定会调用initWithFrame:方法
  • 通过xib\Storyboard创建

    • 初始化时不会调用initWithFrame:方法,只会调用initWithCoder:方法
    • 初始化完毕后会调用awakeFromNib方法

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