加载Xib文件

Posted PinkJoker

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了加载Xib文件相关的知识,希望对你有一定的参考价值。

一 .直接加载 xib 文件, 没有.h.m 文件

NSArray *objs = [[NSBundle mainBundle]loadNibNamed:@"XibView" owner:nil options:nil];
UIView *xibView = objs[0];
xibView.backgroundColor = [UIColor redColor];
[self.view addSubview:xibView];
  1. UINib

//一个nib 对象就代表一个 xib 文件
//UINib *nib = [UINib nibWithNibName:@”XibView” bundle:[NSBundle mainBundle]];
//一般 bundle 传nil,默认就是 mainbundle

    UINib *nib = [UINib nibWithNibName:@"XibView" bundle:nil];
    NSArray *objs = [nib instantiateWithOwner:nil options:nil];
    [self.view addSubview:objs[0]];

二. 需要.h .m 文件, 并连线
方式一. 只使用一个 xib
参考: http://www.jianshu.com/p/639fd5f79837
步骤:
1.新建一个view 继承 UIView,命名:XibView
2.新建一个 xib 文件,命名:XibView
3.在 xib 文件中,点击 view(不是设置File’s owner), 然后设置右侧Class 选择为 XibView
//此时就可以拖动 xib 中的控件到 XibView的.h 中了
4.外部使用该 view

 NSArray *objs = [[NSBundle mainBundle]loadNibNamed:@"XibView" owner:nil options:nil];
    XibView *view = objs.firstObject;   
    [self.view addSubview:view];

方式二. 在一个 xib 中使用另一xib OtherView文件

参考: http://www.jianshu.com/p/9e45590126e4

1.同上 OtherView
2.同上 OtherView
3.在 xib 文件中,点击File owner, 选择右侧Class 为 OtherView, 注意此时不是点击 view
4.将 xib view 拖拽到OtherView的. h文件中
5..被使用的OtherView需要初始化
// initWithCoder为 xib 文件的入口

- (instancetype)initWithCoder:(NSCoder *)coder

    self = [super initWithCoder:coder];
    if (self) 
        [[NSBundle mainBundle] loadNibNamed:NSStringFromClass([self class]) owner:self options:nil];
        [self addSubview:self.view];
    
    return self;

- (void)layoutSubviews 
    [super layoutSubviews];
    self.view.frame = self.bounds;

以上是关于加载Xib文件的主要内容,如果未能解决你的问题,请参考以下文章

使用 NSView 加载 Xib 文件

IOS 加载xib文件时如何获取事件?

xib文件加载研究

加载一个xib文件

加载Xib文件

iPhone - 在滑动手势上加载 .xib 文件