xib使用-part2 viewController的xib文件中添加多个视图

创建一个ViewController类的时候,有个勾选项,可以同时创建一个同名的xib文件。当viewController调用view的getter方法时,若view为nil,则会调用loadView方法创建view。此时,如果有对应xib文件,则会通过xib文件创建view,如果没有xib文件,loadView方法会创建一个默认的view。
ViewController的xib中,默认只有一个view,关联controller对象中的view属性。本节介绍在ViewController的xib中添加更多的view,并且关联到controller对象。
demo地址:https://github.com/huibaoer/Demo_xib

1.首先创建工程,添加RootViewController,注意添加的时候将xib文件一并加上。

2.打开RootViewController的xib文件,看到默认只有一个view。选中File’s Owner,右侧选择第三个选项卡,确认class为RootViewController,说明当前的xib文件是属于RootViewController所有。选择最后一个选项卡(连接选项卡),确认RootViewController的view属性已经连接到当前xib文件中的view,鼠标指向该连接,view会闪动。再重新选中xib中的view,尝试修改view的背景颜色,运行工程,确认xib中的view就是显示的页面。

3.xib中添加新的view。拖拽一个view控件到xib中,不要放在之前的默认view上,确保新添加了一个view到xib中。选中新添加的view,在右侧选中其属性设置栏,Simulated Metrics下设置Size为Freeform,Status Bar为None,调整大小为320*100。

4.编辑新添加的view,在view上添加一个imageView作为头像,一个label作为标题,再一个label作为描述,修改一下背景颜色,方便识别。

5.将编辑好的view关联到RootViewController。选择Xcode右上侧的一个两个圈的按钮,Xcode编辑区被分成两部分,左侧为xib,右侧为xib对应的File’s Owner(RootViewController),偶尔关联的不正确可自行在右侧选择正确的文件。选中新添加的视图,点击右键,会有该视图支持的操作,因为是view,不是button,所以只有outlets(引用输出口),选中New Referencing Outlet,拖拽到右侧RootViewController上,创建一个outlet(引用输出口,也就是一个属性),不需要外部操作的尽量拖拽到延展中,保持良好的封装。将其他需要outlet的控件以同样的方法拖拽好。

xib使用-part2 viewController的xib文件中添加多个视图_第1张图片
xib_demo_02_1

6.在RootViewController的viewDidLoad方法中,将新添加的视图贴在view上,代码如下:

// add headerView
[self.view addSubview:self.headerView];
self.headerTitle.text = @"test title";
self.headerDescription.text = @"test description";

这里需要注意的一点,因为xib文件是RootViewController自带的xib,在其创建view的过程中会自动加载xib,所以不需要我们手动加载xib文件,到viewDidLoad方法中,view已经加载完毕,所以xib也必定加载完毕,所以我们关联的属性(headerView等)也必定已经加载好,所以可以直接贴到self.view上。

7.运行工程,查看效果如下:

xib使用-part2 viewController的xib文件中添加多个视图_第2张图片
xib_demo_02_2

你可能感兴趣的:(xib使用-part2 viewController的xib文件中添加多个视图)