码迷,mamicode.com
首页 > 其他好文 > 详细

开发进阶09_xib文件的基本使用_File's Owner

时间:2014-10-28 00:32:31      阅读:232      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   color   ar   使用   sp   strong   

storyboard:描述软件界面,大范围,重量级,比较适合描述整个软件的所有界面

xib:描述软件界面,小范围,轻量级,比较适合描述某个小界面
 
两个各有优缺点

//1.加载RowView.xib

NSArray *views = [[NSBundle mainBundleloadNibNamed:@"RowView owner:self options:nil];

 
loadNibNamed:从资源中读取xib文件
 
如果想通过连线的方式去调用头文件中的方法,需要给xib文件设置File’s Owner的Custom Class 中的Class设置为ViewController(需要连线的控制器的名称)
在读取xib文件的时候owner属性需要执行相同的控制器名称(设置和代码中的需要一致)
 
以Dog为例:
如果xib文件中的按钮需要调用Dog头文件中的方法,同时xib文件的加载是放在ViewController文件中,那么NSArray *views = [[NSBundle mainBundleloadNibNamed:@"RowView owner:_d1 options:nil];
owner后面需要填写的就必须是Dog对象,根据不同对象可以使用对象的属性
 
 
xib的加载过程
 
首先解析xib文件
根据(根据添加的先后顺序)xib文件创建各个控件
然后返回一个集合(集合中装的时各个控件)
 
 
File’s Owner使用总结:
-》在xib文件中设置File’s Owner 的Class属性(目的是在xib文件中能找到Owner中的方法)
-》建立File’s Owner跟控件之间的联系
-》利用代码加载xib,注意owner参数(类型一定要匹配)
 
 
 
view的封装:
 
        我们可以使用File’s Owner将xib文件和控制器关联,这样就能再控制器中对xib文件进行操作,但是通常我们不会使用这种方法,因为xib文件将依赖于控制器,耦合性太强。
所以我们可以自定义一个view,也就是将xib文件和单独的文件联系起来。
 
以RowView为例:
第一步:新建一个RowView.xib文件和普通的文件RowView.h和RowView.m(继承自UIView),两个文件的文件名尽量相同(也可以不相同)
第二步:选中view,然后再右边将Class属性改成RowView
bubuko.com,布布扣bubuko.com,布布扣
这样就可以在xib中的控件上和RowView.h文件间进行连线
 
第三步:这样就可以在RowView.h中定义一些成员变量和xib中的控件关联,然后通过操作成员变量来改变控件的属性
RowView.h最好是提供一个类方法来进行对成员变量的操作
 
在其他的控制器中需要使用的时候需要自己创建UIView
RowView   *newView = [RowView rowView];
        通过上面三步产生的xib文件和.h和.m文件一起可以拷贝到其他项目中使用,在自身的项目中也可以重用

开发进阶09_xib文件的基本使用_File's Owner

标签:style   blog   http   io   color   ar   使用   sp   strong   

原文地址:http://www.cnblogs.com/yaofch107/p/4055425.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!