views 是你的user interface 构建的基本的模块。用一种清晰,简洁,有效地方式呈现你的app的内容是十分重要的,对一个成功的app来说,a great user interface 去展示app的内容是必不可少的。在这里,你将通过去定义一个interface,学习到怎样在一个storyboard上创建views和管理views.
1 view hierarchy:view 不仅能够在storyboard上显示他自己,并与用户的input进行交互,而且还能做为其他views的容器,包含其他的views.views的嵌套使用,我们叫它view hierarchy.
2 subview and superview: view hierarchy定义了一个view相对于其他views的layout.包含在一个view中的view instance 叫做subviews.包含其他views的父类view叫做superview.一个superview可以有多个subviews,但一个subview只能有一个superview
3 window: view hierarchy 最顶层是UIwindow class的一个实例,是一个window object,他不能显示出任何东西,你必须向他添加合适的content views来显示你所要显示的内容。a widow是最基本的容器,你可以添加各种view去显示在屏幕上。
4 为了使content view 和他的subview对用户可见,必须把content view 插入到window's view hierarchy. storyboard能够自动的实现这种配置。
application object先load storyboard,创建各个view controllers class 的实例,把每一个view controller 上的content view hierarchy unarchived ,然后添加the initial view controller的content view 到window.
5 building an interface using views
在设计你的app的interface时,你需要知道,那种view能够达到什么样的purpose,如当你需要得到用户input 信息时,你要用input类的 view如 text field而不是用其他种类的view如label. UIkit view 使你能够容易快速的custom你的view elements,UIkit对象是UIView类或其子类的实例。UIkit framework 中有许多类型的类去帮助display 和organize data.
在interface builder 里面有许多已经封装好并用图形显示出来的view,他是一个view library,你可以拖曳libray中的任何一个view到你的canvas中。下一步你可以用inspectors去设置这个view的property设置完后会自动保存在storyboard上,你不用run,不用做任何事情,就可以马上看到你设置的效果。
你可以用UIview或UIview的后代custom你自己的view,你的custom view是UIview的子类,你可以draw任何你想要的形状,实现任何你想要封装的行为。
6 using a storyboard to layout views
storyboard 提供了图像化的界面,让我们可以直观的用views去构建app的interface.
storyboard可以有许多个scenes,每一个scene都有一个与她相联系的view hierarchy ,你可以拖曳view library中的任何一个view带你的scenes中,这个view会自动的添加到该scenes所对应的view hierarchy中,view在hierarchy中的位置有你决定,当你已经添加一个view到scenes当中后,你就可以对这个view的大小,位置进行配置,对她的属性进行设置来做出你想要的效果。
在canvas的最左边,你可以看到在这个interface上的所有objects,它使你对在该storyboard上的所有对象都有一个hierarchy的认识。
7 use Inspector to configure views
在你已经添加了view到storyboard中之后,Inspector pane是一个非常重要的工具,它storyboard的位于右上角,在你选中对象之后,你可以用Inspector去customize view object的不同property.
你可以用Attribute inspector 去配置views,用identity inspector去配置view controllers。用connection inspector 去在views和view controllers之间创建连接。
8 use auto layout to Position views
在你开始为你的view确定位置时, 你需要考虑各种不同的情况。 一个ios应用可以运行在不同的ios设备上,这些设备有着不同的屏幕大小,不同的显示方向,不同的显示语言。 因此,你需要设计一个dynamic的interface,他要无缝的与对屏幕大小,显示方向和显示语言作出响应。为了帮助你创建一个多功能的interface,xocde提供了auto layout去帮你实现这些功能。
auto layout描述了在interface中的所有views之间的关系,让你能够用各个view之间或各个views之间的constraints 定义这种关系,这种关系在各个设备上是不变的,这就保证了app的interface中的各个views在不同设备上显示出来的效果是一样的。auto layout menu在canvas的底部,由四个部分组成,。