XIB自定义View

Xib和storyboard对比

  • 共同点:

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

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

Xib的加载


// 1.xib肯定是在资源库中 所以使用mainBundle获取
方法1
NSArray*views = [[NSBundlemainBundle]loadNibNamed:@"xib文件名"owner:niloptions:nil]

方法2
UINib*nib = [UINibnibWithNibName:@"xib文件名"bundle:nil];
//3.确定你需要的哪个空间在数组的哪个位置
NSArray*views = [nib instantiateWithOwner:niloptions:nil];
XIB自定义View_第1张图片
Snip20160522_6.png

注意点:

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

方式一
  • 通过代码创建
    • -初始化时一定会调用initWithFrame:方法
方式二
  • 通过XIB描述
    • 初始化时不会调用initWithFrame:方法,只会调用initWithCoder:方法
    • 初始化完毕后会调用awakeFromNib方法 initWithCoder
  • 有时候希望在控件初始化时做一些初始化操作,比如添加子控件、设置基本属性
    - 这时需要根据控件的创建方式,来选择在initWithFrame:、initWithCoder:、awakeFromNib的哪个方法中操作

你可能感兴趣的:(XIB自定义View)