iOS应用程序开发方法与实践 教学课件 ppt 作者 金福生 李朴之_ iOS应用程序开发方法与实践-第03章

上传人:E**** 文档编号:89494966 上传时间:2019-05-25 格式:PPTX 页数:32 大小:3.76MB
返回 下载 相关 举报
iOS应用程序开发方法与实践 教学课件 ppt 作者  金福生 李朴之_ iOS应用程序开发方法与实践-第03章_第1页
第1页 / 共32页
iOS应用程序开发方法与实践 教学课件 ppt 作者  金福生 李朴之_ iOS应用程序开发方法与实践-第03章_第2页
第2页 / 共32页
iOS应用程序开发方法与实践 教学课件 ppt 作者  金福生 李朴之_ iOS应用程序开发方法与实践-第03章_第3页
第3页 / 共32页
iOS应用程序开发方法与实践 教学课件 ppt 作者  金福生 李朴之_ iOS应用程序开发方法与实践-第03章_第4页
第4页 / 共32页
iOS应用程序开发方法与实践 教学课件 ppt 作者  金福生 李朴之_ iOS应用程序开发方法与实践-第03章_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《iOS应用程序开发方法与实践 教学课件 ppt 作者 金福生 李朴之_ iOS应用程序开发方法与实践-第03章》由会员分享,可在线阅读,更多相关《iOS应用程序开发方法与实践 教学课件 ppt 作者 金福生 李朴之_ iOS应用程序开发方法与实践-第03章(32页珍藏版)》请在金锄头文库上搜索。

1、第3章 视图与触屏事件,本章内容概要,了解视图的主要作用。 了解视图的层次特征,掌握创建程序界面的主要方法。 了解UIKit坐标系以及视图的几何特征,掌握如何设置视图的位置和尺寸。 了解视图的展现特征,例如设置视图的外观、背景、透明色与视图缩放区域等。 了解事件对象都包含哪些信息。,iOS应用程序开发方法与实践,2,本章内容概要,理解应用程序处理事件的完整流程。 理解点击测试的作用以及过程。 了解响应对象和响应对象链表的作用。 理解多点触屏内部机制。 熟练掌握响应多点触屏事件的过程。,iOS应用程序开发方法与实践,3,3.1 视图,程序界面都是利用不同的视图构成。 视图就是程序界面中一个用于显

2、示内容或者接收触屏事件的矩形区域。 视图是UIView对象。 视图的作用: 响应发生于视图区域内的触屏事件。 管理子视图的层次和布局。 在其中绘制文字、图形与动画。,iOS应用程序开发方法与实践,4,3.1.1 视图层次与视图树,常用界面类的类图,iOS应用程序开发方法与实践,5,3.1.1 视图层次与视图树,程序界面对应一棵视图树。 主窗口对象(UIWindow类的对象)为视图树的根节点。 其他视图都会有一个唯一的父节点,以及零或若干个子节点。,iOS应用程序开发方法与实践,6,3.1.1 视图层次与视图树,程序界面中的视图具有层次关系。 子视图位于父视图之上,会覆盖父视图的一部分或者全部。

3、,iOS应用程序开发方法与实践,7,3.1.1 视图层次与视图树,UIView类定义了若干属性,可以获取父视图、子视图数组和主窗口对象。 兄弟视图:具有相同父视图的视图。 位于视图树中的同一层。 根据subviews数组下标决定先后顺序。 下标大的视图会覆盖下标小的视图的内容。,iOS应用程序开发方法与实践,8,3.1.1 视图层次与视图树,UIView类允许对视图树进行增删改查操作: 增:添加子视图。 删:删除某个子视图树。 改:调整视图在视图树中的位置和层次。 查:获取父视图、获取所有子视图、获取主窗口、根据Tag查找子视图等。 详细方法说明请参见UIView类的文档,以及教材“视图层次与

4、视图树”一节内容。,iOS应用程序开发方法与实践,9,3.1.2 UIKit坐标系,视图的尺寸大小和位置,与坐标系息息相关。 UIKit坐标系: 原点默认位于视图左上角。 横坐标正方向水平向右。 纵坐标正方向竖直向下。 坐标值由浮点数表示。,iOS应用程序开发方法与实践,10,3.1.2 UIKit坐标系,iPhone的屏幕尺寸为320*480,iPad为768*1024。 坐标空间分为“逻辑坐标空间”与“设备坐标空间”。 逻辑坐标空间:单位为“点”。 设备坐标空间:单位为“像素”。 两者之间存在对应关系。 所有与绘图相关的框架均针对逻辑坐标空间。,iOS应用程序开发方法与实践,11,3.1.

5、3 坐标点、尺寸与位置,坐标点:CGPoint结构体表示坐标系中的某个点,即横坐标x与纵坐标y。 struct CGPoint CGFloat x; /横坐标 CGFloat y; /纵坐标 ; 坐标值为浮点数,CGFloat即float。,iOS应用程序开发方法与实践,12,3.1.3 坐标点、尺寸与位置,矩形尺寸:CGSize结构体表示矩形的尺寸,即宽度width和高度height。 struct CGSize CGFloat width; /宽度 CGFloat height; /高度 ;,iOS应用程序开发方法与实践,13,3.1.3 坐标点、尺寸与位置,矩形的位置和尺寸:CGRect

6、结构体用于描述视图的位置与尺寸。 struct CGRect CGPoint origin; /矩形原点 CGSize size; /矩形尺寸 ;,iOS应用程序开发方法与实践,14,3.1.4 创建视图,initWithFrame:方法:创建视图并指定其初始的位置与尺寸。 /创建矩形,左上角(100, 120),宽140,高160 CGRect myViewFrame = CGRectMake(100, 120, 140, 160); /根据上述矩形创建视图 UIView* myView = UIView alloc initWithFrame:myViewFrame;,iOS应用程序开发方

7、法与实践,15,3.1.5 视图框架、边界与中心,UIView类定义了三个非常重要的属性: property(nonatomic) CGRect frame; /框架 property(nonatomic) CGRect bounds; /边界 property(nonatomic) CGPoint center; /中心坐标 框架:视图在其父视图坐标系中的位置与尺寸。 边界:视图在其自己的坐标系中的位置与尺寸。 中心:视图的中心点在其父视图坐标系中的位置坐标。 这三个属性相互关联。,iOS应用程序开发方法与实践,16,3.1.5 视图框架、边界与中心,bounds属性与center属性完全独

8、立,前者规定尺寸,后者定义位置。 修改bounds不影响center;修改center不影响bounds。 frame属性的值是由bounds属性和center属性计算得来。,iOS应用程序开发方法与实践,17,3.1.5 视图框架、边界与中心,UIView类还定义了若干方法: 坐标系转换。 进行仿射变换(例如平移、旋转、缩放等)。 子视图自动布局。,iOS应用程序开发方法与实践,18,3.1.6 视图的显示,UIView还定义了与视图显示相关的属性和方法: 背景颜色。 透明度。 绘图。 可缩放区域。,iOS应用程序开发方法与实践,19,3.2 事件,程序除了通过视图显示信息之外,还需要具有反

9、馈机制,即获取并处理事件。 事件引发与处理的整个过程: 硬件设备感知。 将事件信息发送给iOS操作系统。 iOS将事件信息打包到一个事件对象中,并放入应用程序的消息队列。 程序从消息队列中取出事件对象,并进行处理。,iOS应用程序开发方法与实践,20,3.2.1 事件对象,事件对象是UIEvent对象,包含事件类型、事件发生时间以及与事件相关的触屏信息。 事件的类型: 触屏事件:手指触屏、移动、离开屏幕时生成。 运动事件:移动、旋转设备时生成。 远程控制事件:外部设备生成。,iOS应用程序开发方法与实践,21,3.2.2 触屏对象,触屏表示为UITouch对象,包含触屏时间间隔、点击次数、位置

10、信息、所处阶段。 触屏时间间隔:触屏创建或者距离上一次变化的时间间隔。 点击次数:在某个预定义时间内触屏点击的次数。 位置信息:触屏相对于某一视图坐标系的位置。,iOS应用程序开发方法与实践,22,3.2.2 触屏对象,触屏的阶段表示触屏当前的状态,有以下几种阶段: 手指刚刚接触屏幕。 手指在屏幕上移动。 手指依然接触屏幕,但自上一次调用回调方法后尚未在屏幕上移动。 手指已经离开屏幕。 触屏被系统取消。 通过获取触屏对象的阶段,就能够知道用户的触屏动作。,iOS应用程序开发方法与实践,23,3.2.3 响应对象,响应对象:UIResponder对象。 UIResponder类提供了响应并处理事

11、件的回调方法。 很多与界面相关的类(如UIView、UIApplication等)都继承自基类UIResponder。,iOS应用程序开发方法与实践,24,3.2.3 响应对象-响应触屏事件,要响应触屏,需要重写UIResponder类的4个回调方法: /手指刚接触屏幕时调用 - (void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event; /手指在屏幕上移动时调用 - (void)touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event; /手指离开屏幕时调用 - (void)t

12、ouchesEnded:(NSSet*)touches withEvent:(UIEvent*)event; /触屏事件被系统取消时调用 - (void)touchesCancelled:(NSSet*)touches withEvent:(UIEvent*)event;,iOS应用程序开发方法与实践,25,3.2.3 响应对象-点击测试,当发生触屏事件后,哪个视图首先响应这个事件? 找到包含触屏点的层次最深的视图,然后优先调用该视图的触屏回调方法。 这个过程就叫做点击测试,从树根向树叶方向递归查找。 找到的目标视图就称作点击测试视图。,iOS应用程序开发方法与实践,26,3.2.3 响应对象

13、-点击测试,iOS应用程序开发方法与实践,27,3.2.3 响应对象-响应对象链表,如果视图不能处理触屏事件,则按照响应对象链表的顺序,查找其他能够处理该事件的响应对象。,iOS应用程序开发方法与实践,28,3.2.3 响应对象-响应对象链表,触屏事件的响应过程: 找到点击测试视图,并首先让点击测试视图处理该事件。 如果该视图能够处理,则进行处理并结束。 否则顺着响应对象链表,将该事件转发给其后续响应节点进行处理。 如果后续结点依然不能处理,则继续沿响应对象链表转发事件,直到找到一个响应对象能够处理该事件为止。 如果没有任何响应对象能够处理该事件,则将事件丢弃。 对于视图来说,其后续响应节点是

14、其视图控制器(如果有)或其父视图。 参见教材“案例:验证响应对象链表与点击测试过程”。,iOS应用程序开发方法与实践,29,3.2.5 多点触屏内部机制,每个多点触屏事件就是一个多点触屏序列。 开始于第一个手指接触屏幕,终止于最后一个手指离开屏幕,期间的任何操作都属于当前的多点触屏序列。 多点触屏事件持续的时间就是相邻两次无触屏之间的时间。 参见教材“多点触屏内部机制”与“案例:验证多点触屏机制”这两节的内容。,iOS应用程序开发方法与实践,30,3.3 综合案例,教材“综合案例:图片浏览程序”给出了一个利用单点与多点触屏来操作图片的例子,从中可以学习如何响应触屏。,iOS应用程序开发方法与实践,31,小结,本章主要介绍了以下内容: 视图的作用和特点。 UIKit坐标系及其方向。 重要的几何对象,描述视图的位置与尺寸。 应用程序处理事件的流程。 处理多点触屏事件的流程。 点击测试的目的与详细过程。 响应对象链表的结构及其作用。 多点触屏机制。,iOS应用程序开发方法与实践,32,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号