一、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. ios 利用UIScrollView实现图片缩放

    前言:我们希望做出的效果是,实现图片的分页滑动,且每张图片都可以双击或用手指捏合来缩放大小.上一篇讲解UIGestureRecognizer的中,我们介绍的UIPinchGestureRecogniz ...

  2. python练习笔记——计算1/1-1/3+1/5-1/7……的和

    1 / 1 - 1 / 3 + 1 / 5 - 1 / 7 + ....求100000个这样的分式计算之为是多少?将此值乘以4后打印出来,看看是什么? num_list = [] count = -1 ...

  3. Workflow_工作流的基本元素(概念)

    2014-05-31 Created By BaoXinjian

  4. Workflow_工作流的基本概念(概念)

    2014-06-01 Created By BaoXinjian

  5. Linux时间子系统(六) POSIX timer

    一.前言 在用户空间接口函数文档中,我们描述了和POSIX timer相关的操作,主要包括创建一个timer.设定timer.获取timer的状态.获取timer overrun的信息.删除timer ...

  6. repcached配置与简单測试

    安装libevent-devel watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGFueXVlcWk=/font/5a6L5L2T/fontsize/40 ...

  7. ie11 下 input 默认有 X 关闭按钮的问题

    &::-ms-clear, ::-ms-reveal{display: none;}

  8. 【Android】20.3 拍照和视频录制

    分类:C#.Android.VS2015: 创建日期:2016-03-13 一.简介 Android提供的Camera有两个典型的版本,一个是在Android 5.0以前提供的,称为Camera:另一 ...

  9. onethink迁移

    修改applicattion下面的Common跟User里面的config.php文件两个

  10. CocoaPods did not set the base configuration of your project 问题解决方式

    今天在使用pod install的时候.出现了 [!] CocoaPods did not set the base configuration of your project because you ...