IOS开发学习之自定义XIB的使用

来源:互联网 发布:mac怎么玩最终幻想 编辑:程序博客网 时间:2024/04/30 02:57

刚学习IOS开发时的图书是推荐使用StoryBoard进行界面布局的,但是自己摸索一段时间发现XIB用起来更方便,尤其是自定义界面的时候,Storyboard更适合一个人完成小东西,可以自己很清晰和方便的实现界面之间的跳转关系,XIB更适合小部分界面的自定义,比如tableviewCell等等。

昨天同学出了个xib的错误问我,错误如下:


然后我在检查后发现了2个错误,第一她在自己自定义一个scrollview的时候,没有进行关联,就是将新的view与fileowener相关联,就是图中class,操作如下:


但是依然有错误,原来是她自己又将控件与filesOwener相连了,而在把控件拖动到.h和.m文件时,xcode就自动将控件与filesowener相关联,不必要自己再去连线。

File's Owner的作用

   View和ViewController之间的对应关系,需要一个桥梁来进行连接的(对于一个视图,他如何知道自己的界面的操作应该由谁来响应),这个桥梁就是File's Owner。

     选中某个XIB的File's Owner,在Inspector中可以看到属性:File Name和Custom Class,该File's Owner就是用来绑定File Name中的xib文件和Custom Class中的ViewController的,在做了这个绑定之后,按住control键,拖动File's Owner到xib中的某个控件的时候,就是Custom Class中定义的IBOutlet元素与xib中元素进行连接的过程,同样,拖动"xib中的控件的动作"到File's Owner的时候,就是将xib中该动作的响应与Custom Class中某个IBAction进行连接的过程。

     因此,在存在多个xib文件的情况下,即:有多个View,那么每个View可以采用不同的ViewController,也可以全部采用相同的一个ViewController,通过File's Owner进行关联即可。

     其实,File's Owner就是Custom Class类型的对象,而xib中的其他元素都是该对象的成员变量,但是需要手动来关联Custom Class中的成员变量与xib中对象之间的关系。

自定义XIB的使用

我们在自定义xib之后,使用时,有2种方法,一种是,如果是cell类的xib,可以用

[self.mytable registerNib:[UINib nibWithNibName:@"firstCell" bundle:nil] forCellReuseIdentifier:CellIdentifier];
还有一种是

 UINib *nib=[UINib nibWithNibName:@"TFPopOtherCell" bundle:nil]; NSArray *arr=[nib instantiateWithOwner:self options:nil];

这种方法可以获取到TFPopOtherCell下所有的视图,并存入一个arr这个数组中,这种方式有利于多个简单视图自定义使用,只需要一个xib即可。

0 0
原创粉丝点击