一、Xib和storyboard对比

  *共同点:

  1>都用来描述软件界面

  2>都用Interface Builder工具来编辑

  3>本质都是转换成代码去创建控件

  *不同点

  1>Xib是轻量级的,用来描述局部的UI界面

  2>storyboard是重量级的,用来描述整个软件的多个界面,并且能展示多个界面之间的跳转关系

二、Xib的加载方法

  方法1:

  NSArray *views = [[NSBundle mainBundle] loadNibNamed:@"xib文件名" owner:nil options:nil];

  方法2:

  UINib *nib = [UINib nibWithNibName:@"xib文件名" bundle:nil];

  NSArray *views = [nib instantiateWithOwner:nil options:nil];

三、使用xib自定义view的步骤

  *新建自定义控件类,继承自UIView

  *新建xib文件(文件名建议和view的类名一致)

    

  *修改xib中view的类名

  *封装xib的加载过程,将读取xib文件的步骤封装到类里面,由于xib文件名与类同名,所以可以直接获取类的名称来使用NSStringFromClass(self)

 + (ChaosShopView *)shopView
{
ChaosShopView *shopView = [[[NSBundle mainBundle] loadNibNamed:NSStringFromClass(self) owner:nil options:nil] lastObject];
return shopView;
}

  *增加模型属性,在模型属性的set方法中设置数据到子控件上

 // 重写setShopModel方法,给模型赋值的过程中,给子控件数据
- (void)setShopModel:(ShopModel *)shopModel
{
// 重写set方法必备一句,将传过来的变量赋值给成员变量
_shopModel = shopModel; [_viewImage setImage:[UIImage imageNamed:shopModel.icon]];
_nameLabel.text = shopModel.name;
}

  *子控件的访问可以定义在扩展类中,用“脱线”的方式来实现

iOS边练边学--xib文件初使用的更多相关文章

  1. iOS边练边学--plist文件,懒加载,模型初使用--补充instancetype

    一.什么是plist文件 1>将数据直接写在代码里面,不是一种合理的做法.如果数据经常修改,就要经常翻开对应的代码进行修改,造成代码扩展性低 2>因此,可以考虑将经常变得数据放在文件中进行 ...

  2. iOS边练边学--UIScrollView和xib文件实现简单分页+定时器初使用

    一.xib文件构成 二.自定义控件类(xib文件与自定义控件类的文件名字相同,并且将xib文件中父类控件的类名改成自定义控件类的名称) ***********自定义控件类需要的属性********** ...

  3. iOS开发之 Xcode6 添加xib文件,去掉storyboard的hello world应用

    iOS开发之  Xcode6.1创建仅xib文件,无storyboard的hello world应用 由于Xcode6之后,默认创建storyboard而非xib文件,而作为初学,了解xib的加载原理 ...

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

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

  5. iOS边练边学--自定义非等高的cell

    一.使用xib或者storyboard自定义非等高的cell实现方式差不多,这里简单介绍一下通过xib文件实现的方法 <1.1>创建一个继承自UITableViewCell的子类,比如Ch ...

  6. iOS边练边学--自定义等高的cell

    一.storyboard自定义cell <1>创建一个继承自UITableViewCell的子类,比如ChaosDealCell <2>在storyboard中 <2.1 ...

  7. iOS边练边学--NSURLSessionDataTask实现文件真正的断点续传

    实现重点: NSURLSessionDataTask要设置请求头,从路径中获取文件已经下载的长度(文件没有下载过的话,长度为0).通过这个长度设置请求的Range 如图: 接收到请求的时候key:文件 ...

  8. iOS边练边学--文件压缩和解压缩的第三方框架SSZipArchive的简单使用

    一.非cocoaPods方法,需要注意的是:直接将SSZipArchive拖入项目编译会报错. Undefined symbols for architecture x86_64: "_cr ...

  9. iOS Interface Builder:在.xib文件中加载另一个.xib文件

    在开发中,经常会用到一个需要重复使用的模块,比如好友列表中每个用户的展示或每条动态,这些都是相同的模版,这样我们就可以把这个部分提取出来放到一个单独的.xib中.那么提取出的.xib如何在其他.xib ...

随机推荐

  1. Android学习系列(18)--App工程结构搭建

     本文算是一篇漫谈,谈一谈关于Android开发中工程初始化的时候如何在初期我们就能搭建一个好的架构.      关于android架构,因为手机的限制,目前我觉得也确实没什么大谈特谈的,但是从开发的 ...

  2. 百度UEditor富文本编辑器去除过滤div等标签

    将设计排版好的页面html代码上传到数据库,再读取出来的时候发现所有的div都被替换成了p标签. 解决方法: 首先在ueditor.all.js文件内搜索allowDivTransToP,找到如下的代 ...

  3. zabbix客户端安装和配置(windows)

    下载相应版本客户端软件 zabbix_agents_2.4.4.win.zip 安装步骤 解压 1.如果是64位系统,则把\bin\win64\下面的三个文件拷贝到c:\zabbix目录下:如果是32 ...

  4. OGG_GoldenGate安装和环境搭建(案例)

    2014-03-02 Created By BaoXinjian

  5. vim 折叠

    zR 打开全部折叠 zr 打开当前折叠 zM 关闭全部折叠 zm 关闭当前折叠

  6. SIPp常用脚本之一:register注册

    SIPp,VOIP并发测试.性能测试的神器. 本文记录一下常用的脚本文件. 一.reg.xml 此文件是sipp的执行的脚本流程. <!-- --> <!-- You should ...

  7. JavaScript / Html 转 pdf、图片

    Javascript 将 HTML 页面生成 PDF html2canvas: https://github.com/niklasvh/html2canvas jsPDF: https://githu ...

  8. PHP位操作符

    二进制怎么算 http://www.doc88.com/p-474114598610.html 这个涉及到系统底层,WEB开发中几乎没用到,知道下有这个东西就好了.底层的东西解释总是简单不了的. 变量 ...

  9. [Jobdu] 题目1499:项目安排

    题目描述: 小明每天都在开源社区上做项目,假设每天他都有很多项目可以选,其中每个项目都有一个开始时间和截止时间,假设做完每个项目后,拿到报酬都是不同的.由于小明马上就要硕士毕业了,面临着买房.买车.给 ...

  10. Mac 下的矢量图设计工具

    Mac 下的矢量图设计工具 一图胜千言.一张清晰的示意图无论对于系统设计,流程梳理,还是其他的方方面面,都非常重要. 曾经亲见一位老同事把 FreeHand 这个矢量绘图工具用得出神入化,并且非常成功 ...