1 IB简介
IB(interface Builder)是苹果提供的一个可视化的编辑工具,以前是一个独立的软件,从XCode4以后开始集成到了Xcode中,方便程序使用,也称为Xib;
2 作用
程序员可以少写代码,通过XIB来构建程序的界面,以提高开发效率;
3 工作原理
当界面上所需要的控件对象的创建,属性的设置,之间的关系本质都保存在一个xml文件中,当程序运行时,会从xml文件中读取所有的控件的相关设置,自动创建出相应的对象,并添加到父视图上,
4 如何使用
见【Demo】-【1-XIB】
1)创建视图控制器类,勾选xib复选框,即同时创建一个配套的xib文件;
2)在程序的入口方法中,创建控制器对象的时候,使用initWithNibName:bundle进行初始化;
3)在项目中选中xib文件,从右边栏下方的对象库中拖拽界面所需要的控件xib界面中;
4)右边栏的检查器中可以对控件的属性进行设置,以完成界面的构建;
5 IBOutlet
IBOutlet 输出口是一种属性,这种属性指向了xib中的一个对象,可以通过代码来操作xib中的对象;
进行原理:IBOutlet输出口属性其实是将xib文件中的某个对象的地址赋值给了视图控制器类中的某个属性,其本质就是做了一个指针赋值的操作;
6 IBAction
IBAction是一个方法,该方法连接了xib中的一个控件的某个事件上,当用户触发了该控件的这个事件是,就会调用此方法!
运行原理:连接IBAction方法,相当于通过addTarget.........action........方法给xib中的控件添加了事件的响应方法,此处的target参数传的是该视图控制器对象;
7 为什么IBOutlet连接的属性是用weak修饰而不是strong?
由于视图控制器对象已经间接strong指向了xib中创建的对象,所以IBOutlet属性再次指向这些对象时,使用weak而不是strong;
二 使用XIB封装UIView
View的封装
如果一个View的内部子控件较多,一般会考虑自定义一个View。把他内部子控件的创建封装起来,不让外界关心,外界可以传入对应的数据模型给view,view拿到数据模型给内部的子控件设置对应的数据;
XIB文件可以用来描述某一块局部的UI界面;