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