IOS Xib使用——Xib表示局部界面
Xib文件是一个轻量级的用来描述局部界面的文件,在之前的文章讲解了为控制器添加Xib文件,本节主要讲解一下通过xib文件表示局部界面。
<一> 创建Xib文件
Xib文件创建的时候是选择User Interface里面的Empty模板创建,当然,如果你想创建一个新的欢迎界面,可以直接选择Launch Screen模板,此外,Storyboard文件也是在这选择。当你选择Empty模板时,默认创建的文件后缀名为xib,也就是xib文件。

<二> Xib文件存放局部view
创建的xib文件里面默认为空的,可以从xCode右下角的Interface Builder中拖拽控件,默认拖拽的UIView尺寸是固定的,需要在右侧边栏进行设置,才能改变其尺寸。

在一个xib文件中可以添加多个UIView或者UIView的子类,它们是按照顺序存放在数组中的,在使用的时候,可以根据索引位置从xib的数组中获取到。

xib中添加好局部界面之后,就可以通过代码来获取了,步骤是先获取到应用程序的路径,然后得到xib文件中的数组,根据索引,取出想要的界面。
代码
UIView *view = [[NSBundle mainBundle] loadNibNamed:@"JRTemp" owner:nil options:nil][];
获取xib文件中全部界面需要调用loadNibNamed:方法,第一个参数是文件名称,第二个参数是xib文件的所有者,如果当前的xib文件是当前所在的控制器特有的,这个参数可以添加控制器,但是这样的话在其他控制器中就不能再使用该xib中的界面。如果xib文件中的界面是可以在多个控制器中展示,那么owner就设置为nil。
<三> 封装xib中的UIView
通过xib表示局部视图后,可以在需要的地方通过代码从xib文件中获取,如果每次都直接从xib中获取非常麻烦,通常我们会把xib中的每个小的局部界面用对应的类来进行封装,并在这个类中提供得到该视图对象的方法,用此来优化代码,步骤如下。
1、先创建一个类来表示xib文件中对应的局部界面。

2、在xib中找到要关联的view,在右侧边栏设置它的class为新创建的类,让二者进行关联。

3、把xib中的小控件与新增的类进行连线,让小控件成为类的属性,这样在后面用起来会方便许多。


4、在新增中添加一个方法,从xib文件中获取局部界面,代码如下:
代码
+(instancetype)rowViewFromFile{
return [[NSBundle mainBundle] loadNibNamed:@"JRTemp" owner:nil options:nil][];
}
5、完成以上步骤,使用局部界面的时候,就可以通过类创建对象的方式来快速的得到界面并使用,代码如下:
代码
RowView *rowView = [RowView rowViewFromFile];
[self.view addSubview:rowView];
xib文件中的第一个小的view就被添加到了界面上,如果不设置frame,默认坐标为原点,尺寸为xib中的尺寸,在这里可以根据自己需求进行设置,效果如下:

出处:http://www.cnblogs.com/jerehedu/
版权声明:本文版权归烟台杰瑞教育科技有限公司和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
技术咨询:

IOS Xib使用——Xib表示局部界面的更多相关文章
- 【iOS系列】-xib封装使用
[iOS系列]-xib封装使用 Xib文件可以用来描述某一块局部的UI界面 Xib文件的加载 修改xib文件的大小size(Freeform) 第一: NSArray *objs = [[NSBund ...
- iOS 用代码+Xib搭建UI界面实例
1.背景 有些我们不能只用代码去构建界面,代码是万能的,你用其他方式可以实现的界面,用代码也一定能 实现,但是我们没必要这样做,有的时候用xib会是更好的选择,代码和xib的优劣地方我们得知道,为了 ...
- iOS开发之Xib和storyboard对比
相同点: (2)都用来描述软件界面 (2)都用Interface Builder工具来编辑 不同点: (1)Xib是轻量级的,用来描述局部的UI界面 (2)Storyboard是重量级的,用来描述整个 ...
- IOS开发中xib和StoryBoard的优缺点
总所周知,苹果官方为IOS开发提供了3种制作UI方式,让我们能够快速开发漂亮APP界面,每一种方式都有他们各自的特点,谁也不能代替谁.但是国内开发人员为此时争得不可开交. 大家各说各有理,说都想说服谁 ...
- iOS开发中xib和Storyboard中需要注意的事项
使用xib注意事项: 1.只有自带view的控件才可以使用xib,因为它本身就是一个view 2.在使用可视化控件添加属性(代码)时候,如果删除了属性代码,一定要在xib上解除关联(不然会崩溃) 3. ...
- IOS 加载Xib 后 如何 动态修改xib中的控件frame
看看xib里view是不是设置了自动布局 use auto layout.取消掉就可以了.
- iOS之用xib给控件设置圆角、边框效果
xib中为各种控件设置圆角 通过代码的方式设置 @interface ViewController () @property (weak, nonatomic) IBOutlet UIView *my ...
- iOS swift使用xib绘制UIView
目标:用xib绘制一个UIView,在某个ViewController中调用. 三个文件:ViewController.Swift DemoView.swift DemoView.xib ...
- (iOS)Storyboard/xib小技巧
1.选择被view覆盖住的view 当你想直接在view中选择自己想要的元素时,但是又碍于一个view上叠加的元素太多很难直接选中,那么在这时,你同时按住键盘上的shift和 control键,然后在 ...
随机推荐
- 模板优化 运用 function 及 外部模板
我们都知道模板是泛型的,但是,它一旦被实例化就会产生一个实例化的副本. 好了,大家应该能够猜到,低效模板和高效模板的差异了 一般的低效模板: 1.泛型实参表达形式多样导致的低效模板 2.多文件引用同一 ...
- Bipartite Graph hdu 5313 bitset 并查集 二分图
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5313 题意: 给出n个顶点,m条边,问最多添加多少条边使之构成一个完全二分图 存储结构: bitset ...
- sort change from to range
SORT FIELDS=COPY OUTREC FINDREP=(IN=X'05',OUT=X'40', STARTPOS=107,ENDPOS=204)
- map赋值前要先初始化:assignment to entry in nil map
注意这种map的嵌套的形式,make只初始化了map[string]T部分(T为map[int]int),所以下面的赋值会出现错误: test := make(map[string]map[int]i ...
- HTML 模板继承
网站模板的设计,一般的,我们做网站有一些通用的部分,比如 导航,底部,访问统计代码等.合理的规划模板往往会减少工作量,同时也使得罗乱.难以阅读的静态页面布局变得优雅. 假设,我们的网站主页面除了正文是 ...
- 在python中独立运行orm
- luogu4595 [COCI2011-2012#5] POPLOCAVANJE 后缀自动机
看着就像后缀自动机.... 然后搜了一下,网上一大把的\(AC\)自动机 嗯...... 不管了,打一个试试 然后就过了\(QAQ\) 我们考虑对于每个点\(i\)求出它往前最长能匹配的子串的长度 可 ...
- bzoj 2961
根据“点在圆内”关系,列出点P(x0,y0)在圆C(x,y)内的关系: (x-x0)^2+(y-y0)^2 <= x^2+y^2 化简得: 2*x0*x+2*y0*y >= x0^2+y0 ...
- SGU 403 Game with points
408. Game with points Time limit per test: 0.25 second(s)Memory limit: 65536 kilobytes input: standa ...
- Qt 4.7.2移植到ARM教程
Qt的移植包括步骤如下: 1.下载并安装VMware WorkStation 12(最好比较高级的版本,早期的版本共享目录在虚拟机里可能显 示不了). 2.下载ubuntu 14.0.4(最好是lts ...