使用XIB自定义UIView

这篇帖子主要是讲述如何使用XIB文件自定义UIView的布局。在编程过程中我是习惯纯码+XIB的方式完成对UI的布局,在新建UIViewControl时就会勾选中Also create XIB file。这样布局UI界面以及后期的UI维护都会变得十分方便,拖动控件,更改颜色背景都能有直观的预览。

但是如果准备建立继承至UIView或者父类是UIView的新类时你会发现create XIB file的勾选项是不能操作的,也就是Xcode默认是不建议自定义的UIView使用XIB文件的。但是有些时候有很多不同的页面里又会使用到类似或者完全相同的小UI模块,在每个页面都要去做维护是个很不方便的感受,于是就需要用到自定义的UIView类。但是纯码毕竟很冗杂,也不利于后期的维护,于是就使用XIB自定义UIView。

首先还是和其他新建类的流程相同,New file的时候继承至UIView。


然后再建立一个空白的XIB文件或者是只有一个View的XIB文件,这里最好命名的时候和你之前建的类名一致


ok接下来的步骤是比较关键的,关系到能不能在类文件和XIB中建立联系

如果新建的是空白的XIB,就需要先拖一个UIView到XIB中去;如果建的是已经有的那就选中这个View。

在右边的菜单栏中找到CustomClass,然后在Class栏中填写要建立联系的类名。

然后你就可以在这个XIB中拖入需要用到的控件,并且可以连线设置为类的属性。

不过这样在Control中还是不能正常显示的,按照[[xxx alloc]initWithFrame:frame]建立的这个自定义UIView会是一片空白,之前费劲心里拖好的控件都不能正常显示。

我们还需要在自定义View的.h文件中写入一个方法。

+(YourClassName *)instanceView;

然后在.m文件中实现这个方法

+(<span style="font-family: monospace; white-space: pre; background-color: rgb(240, 240, 240);">YourClassName</span> *)instanceView
{
    NSArray *nibView = [[NSBundle mainBundle]loadNibNamed:@"<span style="font-family: monospace; white-space: pre; background-color: rgb(240, 240, 240);">YourXIBName</span>" owner:nil options:nil];
    return [nibView objectAtIndex:0];
}
在Control中使用的时候就这样实现

CustomView *view = [YourClassName instanceView];
    view.frame = CGRectMake(0, 0, 320, 60);
    [self.view addSubview:view];
这样就实现了用XIB文件自定义UIView




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值