View Programming Guide for iOS官方文档翻译<一>
版权声明:本文为博主原创文章,转载请声明出处,谢谢!
关于窗口和视图
在iOS中,您可以使用窗口(windows)和视图(views)在屏幕上显示APP的内容。 窗口(Windows)本身没有任何可见的内容,但为APP的视图提供了一个基本的容器。 视图(views)定义了您想要填充某些内容的窗口的一部分。例如,您可能具有一些显示图像、文本、形状或其组合的视图。 您还可以使用视图来组织和管理其他视图。
概述
每个APP至少有一个窗口(windows)和一个视图(view)来呈现其内容。UIKit和其他系统框架提供了可用于展示内容的预定义视图。这些视图的范围比较广泛,囊括了从简单的按钮和文本标签到更复杂的视图的范畴,如表视图,选取器视图和滚动视图。如果预定义的视图不能满足你的需求,您可以进行自定义视图并自行管理视图的绘制以及相关事件的处理工作。
视图管理您的应用程序的可视内容
视图是UIView类(或其子类之一)的实例,并在APP窗口中管理着一个矩形区域。视图负责绘制内容,处理多点触控事件以及管理任何子视图的布局。绘图涉及使用图形技术(例如Core Graphics,OpenGL ES或UIKit)在视图矩形区域内绘制形状、图像和文本。视图通过使用手势识别器或直接处理触摸事件来响应其矩形区域中的触摸事件。 在视图层次结构中,父视图负责定位和调整其子视图的大小,并且可以动态的计算子视图的位置和大小。这种动态修改子视图的功能使您的视图能够适应不断变化的条件,如界面旋转和动画。
您可以将视图视为构建用户界面的砖块。 一般不会用一个视图来呈现所有内容,而是使用多个视图来构建视图层次结构。层次结构中的每个视图负责展示用户界面的特定部分,并且通常针对特定类型的内容进行优化。 例如,UIKit中具有专门用于呈现图像、文本和其他类型内容的视图。
相关章节:视图和窗口体系结构,视图
窗口协调视图的显示
窗口是UIWindow类的一个实例,并处理应用程序用户界面的整体表示。窗口使用视图(及其拥有的视图控制器)来管理可见视图层次结构的交互以及对可见视图层次结构的更改。大多数情况下,APP的窗口几乎不会发生改变。窗口创建后,它保持不变,只有它显示的视图才会发生变化。每个APP至少有一个窗口,用于在设备的主屏幕上显示应用程序的用户界面。如果有外部显示器连接到该设备,APP可以创建第二个窗口来在该屏幕上显示相关内容。
相关章节:窗口
动画为用户提供接口更改的可视化反馈
动画向用户提供有关视图层次结构更改的可视化反馈。系统定义了用于呈现模态视图和在不同视图组之间转换的标准动画。但是,视图的许多属性也可以直接产生动画。例如,通过动画,您可以更改视图的透明度、位置、大小、背景颜色或其他属性。如果您直接使用视图的底层Core Animation图层对象,那么还可以执行许多其他的动画效果。
相关章节:动画
界面构造器(Interface Builder,也简称IB)的角色
界面构造器(Interface Builder)是一个用于可视化构造和配置APP的窗口和视图的应用程序。 使用界面构造器(Interface Builder),您可以组装视图并将它们放置在一个nib文件中 ,该文件是一个用于存储视图和其他对象的”冻干版本”的资源文件。 当你在运行时加载一个nib文件时,它里面的对象被重构成实际的对象,然后你的代码就可以通过编程操作这些对象。
界面构造器(Interface Builder)大大简化了创建APP用户界面所需的工作。 由于对Interface Builder和nib文件的支持已整合到iOS中,因此只需要花费很少精力就可以把nib文件整合到应用程序的设计中。
有关如何使用Interface Builder的更多信息,请参阅Interface Builder用户指南。有关视图控制器如何管理包含其视图的nib文件的信息,请参阅视iOS视图控制器编程指南(View Controller Programming Guide for iOS)中创建自定义内容视图控制器的相关内容。
同时参考
因为视图是非常复杂和灵活的对象,所以不可能在一个文档中涉及到全部内容。但是,其他文档可帮助您了解管理视图和整个用户界面的其他方面。
-
视图控制器是管理应用程序视图的重要部分。 一个视图控制器管理者一个视图层次结构中的所有视图,并在屏幕上展示这些视图。有关视图控制器及其扮演的角色的更多信息,请参阅适iOS视图控制器编程指南(View Controller Programming Guide for iOS)。
-
视图是APP中手势和触摸事件的主要接收者。有关使用手势识别器和直接处理触摸事件的更多信息,请参阅 iOS事件处理指南(Event Handling Guide for iOS)。
自定义视图必须使用可用的绘图技术来呈现其内容。有关使用这些技术绘制视图的信息,请参iOS绘图和打印指南(Drawing and Printing Guide for iOS)。 -
如果标准视图动画不能满足你的需求,您可以使用Core Animation。有关使用Core Animation实现动画的信息,请参阅核心动画编程指南(Core Animation Programming Guide)。