首页 > 代码库 > 开发进阶09_xib文件的基本使用_File's Owner
开发进阶09_xib文件的基本使用_File's Owner
storyboard:描述软件界面,大范围,重量级,比较适合描述整个软件的所有界面
xib:描述软件界面,小范围,轻量级,比较适合描述某个小界面
两个各有优缺点
//1.加载RowView.xib
NSArray *views = [[NSBundle mainBundle] loadNibNamed:@"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 mainBundle] loadNibNamed:@"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
这样就可以在xib中的控件上和RowView.h文件间进行连线
第三步:这样就可以在RowView.h中定义一些成员变量和xib中的控件关联,然后通过操作成员变量来改变控件的属性
RowView.h最好是提供一个类方法来进行对成员变量的操作
在其他的控制器中需要使用的时候需要自己创建UIView
RowView *newView = [RowView rowView];
通过上面三步产生的xib文件和.h和.m文件一起可以拷贝到其他项目中使用,在自身的项目中也可以重用
开发进阶09_xib文件的基本使用_File's Owner
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。