使用XIB自定义UIView子类

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

这是源码 http://download.csdn.net/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自定义UIView子类_第1张图片
文件创建完毕,下面是关联子类和XIB文件

关联子类和XIB文件

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

使用XIB自定义UIView子类_第2张图片
这样文件就关联好了,此时XIB中的视图已经可以向子类中连线,但是仅仅这样是不够的,接下来在XIB的左侧边栏找到file’s Owner右键选中 拖到子类的.h文件中,下图:
使用XIB自定义UIView子类_第3张图片
图中的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是不可改变大小的 可以设置下面的属性:
使用XIB自定义UIView子类_第4张图片

你可能感兴趣的:(子类,UIView,xib)