欢迎来到天天文库
浏览记录
ID:6127236
大小:1.17 MB
页数:26页
时间:2018-01-04
《iphone 开发 之 窗口和视图》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、窗口和视图窗口和视图是为iPhone应用程序构造用户界面的可视组件。窗口为内容显示提供背景平台,而视图负责绝大部分的内容描画,并负责响应用户的交互。虽然本章讨论的概念和窗口及视图都相关联,但是讨论过程更加关注视图,因为视图对系统更为重要。视图对iPhone应用程序是如此的重要,以至于在一个章节中讨论视图的所有方面是不可能的。本章将关注窗口和视图的基本属性、各个属性之间的关系、以及在应用程序中如何创建和操作这些属性。本章不讨论视图如何响应触摸事件或如何描画定制内容,有关那些主题的更多信息,请分别参见“事件处理”和“图形和描画”部分。什么是窗口和视图?和
2、MacOSX一样,iPhoneOS通过窗口和视图在屏幕上展现图形内容。虽然窗口和视图对象之间在两个平台上有很多相似性,但是具体到每个平台上,它们的作用都有轻微的差别。UIWindow的作用和MacOSX的应用程序有所不同,iPhone应用程序通常只有一个窗口,表示为一个UIWindow类的实例。您的应用程序在启动时创建这个窗口(或者从nib文件进行装载),并往窗口中加入一或多个视图,然后将它显示出来。窗口显示出来之后,您很少需要再次引用它。在iPhoneOS中,窗口对象并没有像关闭框或标题栏这样的视觉装饰,用户不能直接对其进行关闭或其它操作。所有对窗
3、口的操作都需要通过其编程接口来实现。应用程序可以借助窗口对象来进行事件传递。窗口对象会持续跟踪当前的第一响应者对象,并在UIApplication对象提出请求时将事件传递它。还有一件可能让有经验的MacOSX开发者觉得奇怪的事是UIWindow类的继承关系。在MacOSX中,NSWindow的父类是NSResponder;而在iPhoneOS中,UIWindow的父类是UIView。因此,窗口在iPhoneOS中也是一个视图对象。不管其起源如何,您通常可以将iPhoneOS上的窗口和MacOSX的窗口同样对待。也就是说,您通常不必直接操作UIWind
4、ow对象中与视图有关的属性变量。在创建应用程序窗口时,您应该总是将其初始的边框尺寸设置为整个屏幕的大小。如果您的窗口是从nib文件装载得到,InterfaceBuilder并不允许创建比屏幕尺寸小的窗口;然而,如果您的窗口是通过编程方式创建的,则必须在创建时传入期望的边框矩形。除了屏幕矩形之外,没有理由传入其它边框矩形。屏幕矩形可以通过UIScreen对象来取得,具体代码如下所示:UIWindow*aWindow=[[[UIWindowalloc]initWithFrame:[[UIScreenmainScreen]bounds]]autorelea
5、se];虽然iPhoneOS支持将一个窗口叠放在其它窗口的上方,但是您的应用程序永远不应创建多个窗口。系统自身使用额外的窗口来显示系统状态条、重要的警告、以及位于应用程序窗口上方的其它消息。如果您希望在自己的内容上方显示警告,可以使用UIKit提供的警告视图,而不应创建额外的窗口。UIView是作用视图是UIView类的实例,负责在屏幕上定义一个矩形区域。在iPhone的应用程序中,视图在展示用户界面及响应用户界面交互方面发挥关键作用。每个视图对象都要负责渲染视图矩形区域中的内容,并响应该区域中发生的触碰事件。这一双重行为意味着视图是应用程序与用户交
6、互的重要机制。在一个基于模型-视图-控制器的应用程序中,视图对象明显属于视图部分。除了显示内容和处理事件之外,视图还可以用于管理一或多个子视图。子视图是指嵌入到另一视图对象边框内部的视图对象,而被嵌入的视图则被称为父视图或超视图。视图的这种布局方式被称为视图层次,一个视图可以包含任意数量的子视图,通过为子视图添加子视图的方式,视图可以实现任意深度的嵌套。视图在视图层次中的组织方式决定了在屏幕上显示的内容,原因是子视图总是被显示在其父视图的上方;这个组织方法还决定了视图如何响应事件和变化。每个父视图都负责管理其直接的子视图,即根据需要调整它们的位置和尺
7、寸,以及响应它们没有处理的事件。由于视图对象是应用程序和用户交互的主要途径,所以需要在很多方面发挥作用,下面是其中的一小部分:§描画和动画§视图负责对其所属的矩形区域进行描画。§某些视图属性变量可以以动画的形式过渡到新的值。§布局和子视图管理§视图管理着一个子视图列表。§视图定义了自身相对于其父视图的尺寸调整行为。§必要时,视图可以通过代码调整其子视图的尺寸和位置。§视图可以将其坐标系统下的点转换为其它视图或窗口坐标系统下的点。§事件处理§视图可以接收触摸事件。§视图是响应者链的参与者。在iPhone应用程序中,视图和视图控制器紧密协作,管理若干方面
8、的视图行为。视图控制器的作用是处理视图的装载与卸载、处理由于设备旋转导致的界面旋转,以及和用于构建复杂用户界
此文档下载收益归作者所有