记在 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. Django模板语言之组合搜索

    url.py from django.conf.urls import url from django.contrib import admin from app01 import views url ...

  2. .net中动态对象的使用

    js中的写法: var list = []; var o = {}; o.id = '111'; o.name = '222'; list.push(o); c#中的写法: var aList = n ...

  3. mfs监控

    web gui 监控 gui_info.jpg (143.72 KB, 下载次数: 83) gui_most.jpg (209.36 KB, 下载次数: 82) gui_master_info.jpg ...

  4. vector的简单用法

    vector是C++中容器的一种,与普通的数组相比,它可以动态的增长,而且还有封装了用于顺序表的操作的方法. 使用vector定义了容器之后,如果定义了容器的大小,则可以在大小范围之内直接使用数组的方 ...

  5. mybatis 框架 的简单使用

    # Global logging configuration #在开发环境下日志级别要设置成DEBUG,生产环境设置成info或error log4j.rootLogger=DEBUG, stdout ...

  6. SqlDataAdapter 批量更新数据库表

    在数据库中批量插入数据许多人都已经了解了,就是使用.net 中的SqlBulkCopy对象(MSDN详解).我们在做评教系统的时候使用过这个对象,它能将数据表批量导入到数据库中,效率比单条插入数据效率 ...

  7. 为什么有时候在Windbg中下断点下不了呢??

    1.今天我发现我下断点的地方是我声明的变量,变量还仅仅是声明,没有赋值.因此不能下断点. 2.当不能下断点时,如何解决呢? (1)重启Vmware虚拟机.(2)在虚拟机中恢复“快照”.

  8. 浅谈android代码保护技术_加固

    可看原文: http://www.cnblogs.com/jiaoxiake/p/6536824.html 导语 我们知道Android中的反编译工作越来越让人操作熟练,我们辛苦的开发出一个apk,结 ...

  9. 分享一个好用的功能强大的节点树jQuery插件

    http://www.treejs.cn/

  10. LightOJ 1065 Island of Survival (概率DP?)

    题意:有 t 只老虎,d只鹿,还有一个人,每天都要有两个生物碰面,1.老虎和老虎碰面,两只老虎就会同归于尽 2.老虎和人碰面或者和鹿碰面,老虎都会吃掉对方 3.人和鹿碰面,人可以选择杀或者不杀该鹿4. ...