使用XIB自定义UIView子类

通常使用代码来写自定义的UIView子类,那么如何使用XIB画出一个自定义的UIView呢?如果是tableViewCell我们可以直接在创建的时候勾选Also create XIB file选项在创建一个XIB文件,可是在定义UIView等视图控件的时候我们并没有办法选择这个选项,那么如何使用XIB自定义UIView呢?

这是源码 http://download.youkuaiyun.com/detail/q562679764/9349871

创建UIView子类

//提示:已经会创建子类和XIB文件可以跳过这段
    和平时创建相同,并没有区别,在想要创建的文件目录下右键-选择New file...选项或者直接commend+N 然后选择Cocoa Touch Class创建一个新的类,如下图:

这里写图片描述
点击next进入下一步,填写要创建的类名和父类的类名,当我们在subclass of:选项中输入UIView后可以看到下面创建XIB的Also create XIB file是不可用的,说明默认情况下UIView是不可以使用XIB创建子类或不建议这样做的,如图:
这里写图片描述
不管它继续next然后再下一个界面点击Create.创建完成,这时候我们创建了子类的两个文件,一个.h一个.m如果Xcode版本在6.0以上,那么.m中是这样的:
这里写图片描述
如果是更早得版本,就会有一个默认的initWithFrome方法.当然我们用不着,接下来创建一个单个的XIB文件commend+N创建文件这次在左侧选择User interface,然后在左侧选择View如图:
这里写图片描述
文件创建完毕,下面是关联子类和XIB文件

关联子类和XIB文件

首先选中XIB文件,在右侧配置栏找到Class选项,在其中输入创建的子类名称然后回车,下图:

这里写图片描述
这样文件就关联好了,此时XIB中的视图已经可以向子类中连线,但是仅仅这样是不够的,接下来在XIB的左侧边栏找到file’s Owner右键选中 拖到子类的.h文件中,下图:
这里写图片描述
图中的xibFile变量就是已经创建好的file’s Owner变量,接下来重写init方法:

- (instancetype)init {
    //获得XIB中的对象 第一个参数@"View"是创建的XIB的文件名  第二个参数是刚才拖到.h中的变量
    NSArray * array = [[NSBundle mainBundle] loadNibNamed:@"View" owner:_xibFile options:nil];
    //获得到得一般只有一个 所以直接返回数组中的最后一个元素
    return [array lastObject];
}

OK 接下来就可以在XIB中尽情的绘制自定义视图了.
View视图默认在XIB是不可改变大小的 可以设置下面的属性:
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值