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键,然后在 ...
随机推荐
- python-arcade时钟
最近开始学习arcade的图形库,感觉功能很丰富,尝试画了个时钟,显示如下: 贴上调整好的代码: import arcade import math,time SCREEN_WIDTH = 800 S ...
- css选择器(第n个类选择器)的坑
css选择器选择第n个子元素,共有两种写法: .parent span:nth-child(n) 选择parent下的第n个子元素(不管前边是不是span,都算在内) .parent span:nth ...
- bzoj5102 [POI2018]Prawnicy 线段树
$bzoj$跑的太慢了...... 我们考虑用线段树来解决这个问题 考虑扫描线 当扫到左端点$i$时,我们把线段$i$加入线段树 同时,对于每个左端点$i$,我们在线段树上二分出最远的$r$满足$r$ ...
- 拆分Cocos2dx渲染部分代码
纹理实现 思想 这个是Cocos2dx的渲染部分的最基本的实现,被我拆分到mac上,但是并不是用的EGLContext,而是搭配glfw,还有soil第三方图形库. 实现 // // main.cpp ...
- 洛谷P3119 USACO15JAN 草鉴定
题目描述 In an effort to better manage the grazing patterns of his cows, Farmer John has installed one-w ...
- php发送get、post请求的6种方法代码示例
本文主要展示了php发送get.post请求的6种方法的代码示例,分别为使用file_get_contents .fopen.fsockopen.curl来发送GET和POST请求,代码如下: 方法1 ...
- LogStash日志分析系统
简介 通常日志管理是逐渐崩溃的——当日志对于人们最重要的时候,也就是出现问题的时候,这个渐进的过程就开始了.日志管理一般会经历一下3个阶段: 初级管理员将通过一些传统工具(如cat.tail.sed. ...
- CentOS 7提示:ERROR unsupported format character '(0xffffffe7) at/域安装失败,您可以运行下列命令重启您的域:
别理会,直接装即可,这个错误不影响使用.
- vim segment fault when i upgrade to macOS Mojave 103_PollServerReady
系统升级到 macOS Mojave, vim插件YouCompleteMe出错. Vim: Caught deadly signal SEGV Error detected while proces ...
- [JAVA] JAVA JDK 安装配置
JDK 安装 下载安装 下载JDK 从oracle官方网站下载并安装JDK. 下载使用文档 从oracle官方网站下载使用帮助文档. 安装库源文件 源文件位于安装目录的 /Library/Java/J ...