xib使用

作者: 小破孩丫 | 来源:发表于2016-01-26 09:58 被阅读327次

1.xib与storyBoard区别

Xib是轻量级的,用来描述局部的UI界面

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

2.Xib的加载方式

方式一:通过mainBundel loadNibNamed:加载

NSArray *views = [[NSBundle mainBundle] loadNibNamed:@"xib文件名" owner:nil options:nil]

方式二:通过UINib  nibWithNibName加载

UINib *nib = [UINib nibWithNibName:@"xib文件名" bundle:nil];

NSArray *views = [nib instantiateWithOwner:nil options:nil];

3.通过xib创建自定义控件步骤

1)新建一个继承UIView的类

2)新建一个xib文件(xib的文件名最好跟控件类名一样)

3)添加子控件、设置子控件属性

4)修改最外面那个控件的class为控件类名

5)将子控件进行连线

6)提供模型属性,重写模型的set方法

7)在set方法中给子控件设置数据

4.initWithcoder、awakeFromNib与layoutSubviews

1)initWithcoder

1.1 只要是从storyboard/xib中加载就会调用这个方法;

1.2 这个方法一般是初始化的操作;

1.3 在init方法内只管控件内部的创建,但不管frame的初始化,因为外界调用的init方法不一定马上给frame赋值,所以第一次init是frame的值可能为nil;

2)awakeFromNib

storyboard/xib中加载完毕的时候调用,想做一些在xib加载完毕的操作,就在这个方法中操作(建议在这个方法中写初始化代码)

3)layoutSubviews

重写系统的-(void)layoutSubviews方法,这个方法方法专门用来布局子控件,一般在这里设置子控件的frame,当控件本身的尺寸发生改变的时候,系统会自动调用这个方法。重写此方法内一定要调用[super layoutSubviews]

相关文章

网友评论

      本文标题:xib使用

      本文链接:https://www.haomeiwen.com/subject/zrrdkttx.html