IOS之触摸事件和手势

IOS之触摸事件和手势

ID:39550534

大小:240.96 KB

页数:7页

时间:2019-07-06

IOS之触摸事件和手势_第1页
IOS之触摸事件和手势_第2页
IOS之触摸事件和手势_第3页
IOS之触摸事件和手势_第4页
IOS之触摸事件和手势_第5页
资源描述:

《IOS之触摸事件和手势》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、13.1事件概述事件是当用户手指触击屏幕及在屏幕上移动时,系统不断发送给应用程序的对象。系统将事件按照特定的路径传递给可以对其进行处理的对象。在iOS中,一个UITouch对象表示一个触摸,一个UIEvent对象表示一个事件。事件对象中包含与当前多点触摸序列相对应的所有触摸对象,还可以提供与特定视图或窗口相关联的触摸对象。响应者对象响应者对象是可以响应事件并对其进行处理的对象。UIResponder是所有响应者对象的基类,它不仅为事件处理,而且也为常见的响应者行为定义编程接口。UIApplication、UIView、和所有从UIView派生出来的UIKit类(包括UIWindow)都

2、直接或间接地继承自UIResponder类。第一响应者是应用程序中当前负责接收触摸事件的响应者对象(通常是一个UIView对象)。UIWindow对象以消息的形式将事件发送给第一响应者,使其有机会首先处理事件。如果第一响应者没有进行处理,系统就将事件(通过消息)传递给响应者链中的下一个响应者,看看它是否可以进行处理。响应者链响应链是一个响应者对象的连接序列,事件或动作消息(或菜单编辑消息)依次传递。它允许响应者对象把事件处理的职责转交给其它更高层的对象。应用程序通过向上传递一个事件来查找合适的处理对象。因为点击检测视图也是一个响应者对象,应用程序在处理触摸事件时也可以利用响应链。响应链

3、由一系列的下一个响应者组成。响应者链处理原则1.点击检测视图或者第一响应者传递事件或动作消息给它的视图控制器(如果它有的话);如果没有一个视图控制器,就传递给它的父视图。2.如果一个视图或者它的视图控制器不能处理这个事件或动作消息,它将传递给该视图的父视图。3.在这个视图层次中的每个后续的父视图遵循上述的模式,如果它不能处理这个事件或动作消息的话。4.最顶层的视图如果不能处理这个事件或动作消息,就传递给UIWindow对象来处理。5.如果UIWindow对象不能处理,就传给单件应用程序对象UIApplication。如果应用程序对象也不能处理这个事件或动作消息,将抛弃它。13.2触摸事

4、件触摸信息有时间和空间两方面,时间方面的信息称为阶段(phrase),表示触摸是否刚刚开始、是否正在移动或处于静止状态,以及何时结束—也就是手指何时从屏幕抬起。触摸信息还包括当前在视图或窗口中的位置信息,以及之前的位置信息(如果有的话)。当一个手指接触屏幕时,触摸就和某个窗口或视图关联在一起,这个关联在事件的整个生命周期都会得到维护。触摸事件的阶段事件处理方法在给定的触摸阶段中,如果发生新的触摸动作或已有的触摸动作发生变化,应用程序就会发送这些消息:当一个或多个手指触碰屏幕时,发送touchesBegan:withEvent:消息。当一个或多个手指在屏幕上移动时,发送touchesMo

5、ved:withEvent:消息。当一个或多个手指离开屏幕时,发送touchesEnded:withEvent:消息。当触摸序列被诸如电话呼入这样的系统事件所取消时,发送touchesCancelled:withEvent:消息。触摸事件实例EventInfo按Ctrl+C复制代码按Ctrl+C复制代码 按Ctrl+C复制代码按Ctrl+C复制代码 touch.phase,触摸事件的阶段。touch.tapCount,触摸事件的轻碰次数,可以判断双击事件。UIEvent的allTouches方法,可以获得触摸点的集合,可以判断多点触摸事件。按Ctrl+C复制代码按Ctrl+C复制代码 

6、13.3手势手势在iPhone中很重要,手势就是手触摸屏幕的方式。单碰击双碰击多点触摸(合拢和展开)轻抚……单碰击和双碰击实例:MultiTap单碰击为红色,双碰击为蓝色#import@interfaceMultiTapView:UIView{ }@end 按Ctrl+C复制代码按Ctrl+C复制代码[selfperformSelector:@selector(turnRed)withObject:nilafterDelay:0.10f];是在0.1秒后调用turnRed方法。[[selfclass]cancelPreviousPerformRequest

7、sWithTarget:selfselector:@selector(turnRed)object:nil];是取消调用方法turnRed。多点触摸(合拢和展开)PinchZoomPinchZoomView.h文件按Ctrl+C复制代码按Ctrl+C复制代码 m文件按Ctrl+C复制代码按Ctrl+C复制代码 awakeFromNib当nib文件被加载的时候,加载器会发送一个awakeFromNib的消息到nib文件中的每个对象,每个对象都可以

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。