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];
Snip20160522_6.png

注意点:

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

方式一
  • 通过代码创建
    • -初始化时一定会调用initWithFrame:方法
方式二
  • 通过XIB描述
    • 初始化时不会调用initWithFrame:方法,只会调用initWithCoder:方法
    • 初始化完毕后会调用awakeFromNib方法 initWithCoder
  • 有时候希望在控件初始化时做一些初始化操作,比如添加子控件、设置基本属性
    - 这时需要根据控件的创建方式,来选择在initWithFrame:、initWithCoder:、awakeFromNib的哪个方法中操作
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 掌握 UIView的常见属性和方法 九宫格计算方法 字典转模型 Xib的使用 自定义view(view的封装) 简...
    JonesCxy阅读 1,395评论 1 3
  • 记 Xib 自定义 View 的一个小坑 最近版本更新,又不想手写代码,所以就借助 xib 了,没想到更新版本以后...
    唐师兄阅读 1,287评论 0 2
  • 我们知道创建一个集成UIView的控件的时候,不能像viewcontroller那样有一个xib,但是又想用xib...
    revon阅读 770评论 1 3
  • OC中通过XIB自定义View 首先是创建一个类文件,当然是是继承想要自定义的控件,然后编写一个用于快速获取实例的...
    Geek_小伟阅读 3,077评论 0 0
  • iOS项目开发中经常用到自定义的view,按照以前的纯代码写法,这种很简单,基本都会写.不过这样做的缺点就是...
    biubiubiu07阅读 4,846评论 2 5