iOS自定义view关联Xib

iOS开发中,为了快速开发节约时间,经常会使用xib。但是普通view和headerView等系统并未提供 关联的xib。此时需要我们自定义xib,并且与相关文件进行关联。

1、创建.h及.m文件。
2、复制上面的文件名,用来创建一个空的View。
3、进行关联。

3.1先关联File’s Owner
iOS自定义view关联Xib_第1张图片

3.2 再关联view
iOS自定义view关联Xib_第2张图片
**

4、特别注意项:

**
当关联完成后,我们可以在view视图中添加控件,并且与.h文件进行连线了,但是,当运行程序时,经常会出现**崩溃 **。这里需要特别注意,如图:
4.1 去掉File’s Owner 中的连线。
iOS自定义view关联Xib_第3张图片
4.2关联View中的控件
iOS自定义view关联Xib_第4张图片

续:
假如xib中有button,需要对点击事件进行连线时,需要注意和上面相同的问题,否则会引起崩溃。
1、无论是用快捷键连线或者用鼠标右键点击touch up inside 进行连线,都会出现下面的图。此时应该将obect 中的File’s Owner 当前view。
2、如果不小心直接连线,则需要在File’s Owner 中将Received Actions中的连线去掉。然后再进行步骤1的操作。
iOS自定义view关联Xib_第5张图片
iOS自定义view关联Xib_第6张图片

到此,关联自定义XIB完成,运行程序,也不会出现崩溃现象。

补充:控制器加载自定义的xib方式。如:

-(ReportCostFooterView *)footerView {
    if (!_footerView) {
        CGRect frame = CGRectMake(0, self.view.height - 50, self.view.width, 50);
        NSArray * nibViews = [[NSBundle mainBundle] loadNibNamed:NSStringFromClass([ReportCostFooterView class]) owner:self options:nil];
        _footerView = [nibViews objectAtIndex:0];
        _footerView.frame = frame;
    }
    return _footerView;
}

需要使用loadNib的方式进行加载,如果使用alloc init 方式,加载不出来。

你可能感兴趣的:(iOS)