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][0];

  获取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][0];
}

  5、完成以上步骤,使用局部界面的时候,就可以通过类创建对象的方式来快速的得到界面并使用,代码如下:

  代码

RowView *rowView = [RowView rowViewFromFile];
[self.view addSubview:rowView];

xib文件中的第一个小的view就被添加到了界面上,如果不设置frame,默认坐标为原点,尺寸为xib中的尺寸,在这里可以根据自己需求进行设置,效果如下:

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

技术咨询:

时间: 2024-12-10 15:40:07

IOS Xib使用——Xib表示局部界面的相关文章

iOS开发UI篇—以微博界面为例使用纯代码自定义cell程序编码全过程(一)

iOS开发UI篇-以微博界面为例使用纯代码自定义cell程序编码全过程(一) 一.storyboard的处理 直接让控制器继承uitableview controller,然后在storyboard中把继承自uiviewcontroller的控制器干掉,重新拖一个tableview controller,和主控制器进行连线. 项目结构和plist文件 二.程序逻辑业务的处理 第一步,把配图和plist中拿到项目中,加载plist数据(非png的图片放到spooding files中) 第二步,字

iOS: 学习笔记, 添加一个带界面约束的控制器

1. 创建一个空iOS应用程序(Empty Application). 2. 添加加控制器类. 修改控制器类的viewDidLoad 1 - (void)viewDidLoad 2 { 3 [super viewDidLoad]; 4 //创建标题 5 UILabel *header = [[UILabel alloc] init]; 6 header.text = @"欢迎来到我的世界!"; 7 header.textAlignment = NSTextAlignmentCenter

iOS开发项目篇—54&quot;设置&quot;界面的搭建

iOS开发项目篇—54"设置"界面的搭建 一.实现 新建一个设置控制器,当点击“我”控制器导航栏“设置”按钮时,即跳转到该界面 1.在“我”控制器中对导航栏“设置按钮”的处理 1 // 2 // YYProfileViewController.m 3 // 4 5 #import "YYProfileViewController.h" 6 #import "YYCommonGroup.h" 7 #import "YYCommonItem

iOS开发项目篇—53&quot;我&quot;界面的搭建

iOS开发项目篇—53"我"界面的搭建 一.简单说明 由于“我”这个界面和发现控制器的界面在本质上是一样的,所以,在这里可以拷贝以快速的完成“我”这个控制器界面的搭建. 全部拷贝,粘贴之后,简单的调整就可以了. 实现的代码如下: YYProfileViewController.m文件 1 // 2 // YYProfileViewController.m 3 // 4 5 #import "YYProfileViewController.h" 6 #import &

iOS开发项目篇—49“发现”界面完善

iOS开发项目篇—49“发现”界面完善 一.简单说明 已经完成的效果:----->目标效果        需要完善的地方: (1)子标题和标题显示在同一行上. 修改样式:UITableViewCellStyleSubtitle--->UITableViewCellStyleValue1 1 //初始化类方法 2 +(instancetype)cellWithTablView:(UITableView *)tableView 3 { 4 static NSString *ID=@"ID

iOS 用代码+Xib搭建UI界面实例

1.背景 有些我们不能只用代码去构建界面,代码是万能的,你用其他方式可以实现的界面,用代码也一定能 实现,但是我们没必要这样做,有的时候用xib会是更好的选择,代码和xib的优劣地方我们得知道,为了 兼顾这两种构建界面得优势,混合使用是一种不错得选择.(我遇到这个问题是在用代码写一个静态得表单 ,我不会弄这个,所以实现得也是动态得,我想其实也是没法实现静态得吧,用这种方式实现得表单获取数据会是 一个很大得难题:用代理可以实现,真的用这种方式去做你会觉得很麻烦,Xib得静态表格也就有很大得方便性,

iOS开发之Xib和storyboard对比

相同点: (2)都用来描述软件界面 (2)都用Interface Builder工具来编辑 不同点: (1)Xib是轻量级的,用来描述局部的UI界面 (2)Storyboard是重量级的,用来描述整个软件的多个界面,并且能展示多个界面之间的跳转关系 3.使用xib封装一个自定义view的步骤 (1)新建一个继承UIView的自定义view,假设类名叫做(MJAppView) (2)新建一个MJAppView.xib文件来描述MJAppView内部的结构 (3)修改UIView的类型为MJAppV

iOS开发中xib和Storyboard中需要注意的事项

使用xib注意事项: 1.只有自带view的控件才可以使用xib,因为它本身就是一个view 2.在使用可视化控件添加属性(代码)时候,如果删除了属性代码,一定要在xib上解除关联(不然会崩溃) 3.在使用xib自定义cell的时候,必须在代码中注册cell 使用storyboard注意事项: 1.storyboard和xib的使用,都是偏向于界面的设置,很多数据操作功能都还是需要代码. 2. stroyboard在定义cell的时候,不需要注册,但是必须在可视化界面上添写identifier(

ios 加载xib遇到的坑

storyboard,个人觉得是个好玩意儿,但是什么都做到其中总觉得杂乱.个人偏好把复杂的局部控件(比如定制的collectionviewcell)在xib文件中拉好. 在开发过程中遇到不少坑,记忆犹新的是:xib中的部件(比如button)设置圆角的效果不对:加载的xib不能resize大小. 第一个问题: 圆角的设置代码: view.layer.cornerRadius = view.frame.size.height / 2; 使用了autolayout则需要注意调用的地方:(因为auto