记在 UIView 的 xib 文件方式有一下几种:

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

1. NSBundle 方式

  NSArray *objs = [[NSBundle mainBundle]loadNibNamed:@"XibView" owner:nil options:nil];

UIView *xibView = objs[0];

xibView.backgroundColor = [UIColor redColor];

[self.view addSubview:xibView];

2. 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 文件 UIView的更多相关文章

  1. ios – 使用UINib加载xib文件实现UITableViewCell

    xib文件的实质是xml,描述界面对象,每个对象都有一个很重要的属性,identity inspector面板中class属性,加载xib文件的时候实际上是实例化界面对象相对应的这些class. xi ...

  2. 加载xib文件

    // Test.xib --编译--> Test.nib // 方式1 NSArray *objs = [[NSBundle mainBundle] loadNibNamed:@"Te ...

  3. 加载xib文件的两种方式

    一.加载xib文件的两种方式 1.方法一(NewsCell是xib文件的名称) NSArray *objects = [[NSBundle mainBundle] loadNibNamed:@&quo ...

  4. 通过加载Xib文件来创建UITableViewCell造成复用数据混乱问题方案

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPa ...

  5. IOS第11天(4:UIDatePicker时间选择,和键盘处理,加载xib文件,代理模式)

    ***控制层 #import "ViewController.h" #import "CZKeyboardToolbar.h" @interface ViewC ...

  6. 加载xib文件,如果想在初始化的时候就添加点东西就重载-(id)initWithCoder:(NSCoder *)aDecoder

    - (id)initWithCoder:(NSCoder *)aDecoder { self = [super initWithCoder:aDecoder]; if (self) { self.cl ...

  7. webpack模块加载css文件及图片地址

    webpack支持css文件加载并打包,只需安装相应加载器并在配置文件中配置 . 加载的css文件内容会与该模块里的js内容混合封装,这样做的好处是一个js文件包含了所有的css与js内容,有效减少了 ...

  8. 速战速决 (5) - PHP: 动态地创建属性和方法, 对象的复制, 对象的比较, 加载指定的文件, 自动加载类文件, 命名空间

    [源码下载] 速战速决 (5) - PHP: 动态地创建属性和方法, 对象的复制, 对象的比较, 加载指定的文件, 自动加载类文件, 命名空间 作者:webabcd 介绍速战速决 之 PHP 动态地创 ...

  9. Java提高篇——JVM加载class文件的原理机制

    在面试java工程师的时候,这道题经常被问到,故需特别注意. 1.JVM 简介 JVM 是我们Javaer 的最基本功底了,刚开始学Java 的时候,一般都是从“Hello World ”开始的,然后 ...

随机推荐

  1. arm上sd卡热插拔问题的解决:

    首先,保证sd卡驱动是完好,但是sd卡却无法热插拔或者无法识别. 刚开始我的板子上,sd是能够读取的,但是却不支持热插拔,看了几天sd驱动,找到了问题的原因,是驱动中硬件引脚相关设置的问题,具体根绝个 ...

  2. 01 asp.net编程笔记

    1.asp.net 获取当前网址url 参考地址:http://www.cnblogs.com/190196539/archive/2011/12/13/2286072.html 设当前页完整地址是: ...

  3. struts2 与 spring 整合

    1. 首先把所有jar包导入工程 2.在struts2的核心配置文件(在src文件目录下)中添加如下配置: <!-- 将Struts的对象交给Spring管理 所以需要导入Spring和Stru ...

  4. Hyperledger Fabric1.0 整体结构

    整体结构 Hyperledger Fabric 在 1.0 中,架构已经解耦为三部分: fabric-peer:主要起到 peer 作用,包括 endorser.committer 两种角色: fab ...

  5. Luogu 4251 [SCOI2015]小凸玩矩阵

    BZOJ 4443 二分答案 + 二分图匹配 外层二分一个最小值,然后检验是否能选出$n - k + 1$个不小于当前二分出的$mid$的数.对于每一个$a_{i, j} \geq mid$,从$i$ ...

  6. Python3 BeautifulSoup和Pyquery解析库随笔

    BeautifuSoup和Pyquery解析库方法比较 1.对象初始化: BeautifySoup库: from bs4 import BeautifulSoup html = 'html strin ...

  7. 详解servlet的url-pattern匹配规则.RP

    首先需要明确几容易混淆的规则: servlet容器中的匹配规则既不是简单的通配,也不是正则表达式,而是特定的规则.所以不要用通配符或者正则表达式的匹配规则来看待servlet的url-pattern. ...

  8. 二度Xml<2>

    一下介绍xml的基本操作,添加xml新节点: 其他方法在前一篇日记中有详细讲解,请详见:http://www.cnblogs.com/fjsnail/archive/2012/10/20/273212 ...

  9. yum 安装telnet

    检测是否安装 rpm -qa |grep telnet 安装 yum install xinetd yum install telnet-server yum -y install telnet 再次 ...

  10. 人脸识别 人工智能(AI)

    .. 如何通过AI实现 用我自己的数据集:能识别几张人脸.能否判断相似度.能否认出.