04章 风水宝地--界面生成器
4.1 简介
Xcode 6中,有三种制作UI的方式:使用代码构建UI及布局、使用Xib文件构建UI、使用Storyboard来构建UI。
使用代码有利于多人合作和重用。
使用Storyboard可以将多个Xib统一管理,但如果使多人修改,可能会产生冲突。
4.2 界面生成器
4.2.1 画布 Canvas
对于Storyboard文件来说,对象窗口内部显示的是一系列场景,每个场景对应一个高级对象视图。高级对象视图中的项目从左到右依次是:视图控制器View Controller、First Responder、场景的退出segue(Exit)
4.2.2 StoryBoard的对象窗口
StoryBoard Entry Point一项,表明这个场景是入口点。
4.2.3 检查器
在检查器中,我们可以方便地查看和编辑界面空间和对象的属性。一般而言,界面生成器的检查器都包含了以下几个检查器:
1:文件检查器(File inspector);
2:快速帮助检查器(Quick Help inspector);
3:标识检查器(Identity inspector)
4:属性检查器:Attribute inspector;
5:尺寸检查器,iOS中统一使用点(Point)对界面元素进行描述。对于普通屏幕,1点 = 1像素;Retina屏,1点=2像素;
6:连接检查器 Connections inspector:主要定义连接口的相关设置;
4.3 Xib文件
使用Xib进行iOS应用的界面管理时,使用IB(Interface Builder)只能对每个界面进行单独管理,它的好处在于所有即所得。
Xib出现的目的是为了更好地让视图和控制器分离,因为一般来说,单独的Xib对应一个视图控制器。
Xib是使用XML来实现的。可以用文本应用打开Xib文件。对于Xib文件来说,其和纯代码的版本管理上已经没有太大的差异了。
尽量将Xib的工作和代码隔离开来,能够使用Xib完成的工作就交给Xib来完成,而不要东一脚西一脚,这样很可能导致UI显示结果不在你的预料之中。
4.4 故事板
Storyboard可以在一个窗口中管理多个场景(Scene),方便开发者清理各个场景之间的逻辑关系。
Storyboard的麻烦之处在于,多人协作时。由于几乎所有的界面都放在同一个文档中,这样会导致合并(Merge)的时候会出现过多的错误。
解决这个问题的方法是将项目的不同部分分解成若干个Storyboard.Storyboard更重视场景的层次,而不是单个视图的高级功能,因此对于自定义视图的处理也不太好。
4.4.1 添加新的场景
4.4.2 设置初始场景
初始场景是这个Storyboard被启动时首先显示的界面,也就是程序的UI入口。要修改初始场景,拖动画布的“起始标签”到新的页面即可。如果找不到“起始标签”,选中你要设置为初始场景的ViewController,打开属性检查器,勾选“Is Initial View Controller”即可。
4.4.3 添加页面间的转场
1)按住Control键将一个控件拖动到另外一个场景。
2)在弹出的菜单中选择Segue的方式。
3)选中刚生成的Segue。
4)打开工具区域的“标识检查器”(Identity inspector)。
5)输入Segue的标识字段,将其命名为“gameStartSegue”。