iOS中的触摸事件

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

触摸事件一共有四种状态

触摸开始 :用手指按在屏幕上-(void)touchesBegan:(NSSet*)touches withEvent:(UIEvent *)event

触摸移动:手指在屏幕上移动-(void)touchesMoved:(NSSet*)touches withEvent:(UIEvent *)event;

//这个方法会在手指移动的过程中反复的被调用

触摸结束:手指离开屏幕-(void)touchesEnded:(NSSet*)touches withEvent:(UIEvent *)event;

触摸被取消 :触摸被取消(一般情况是系统事件将本次次触摸打断 如:电话呼入)-(void)touchesCancelled:(NSSet*)touches withEvent:(UIEvent *)event;

ps:一个完整的触摸事件必须至少包含开始和结束

触摸对象的属性

1> view 发生触摸事件的view

2> window 发生触摸事件的窗口

3> phase 相位属性,用于自定义手势

4> timestamp 发生触摸的时间

//3和4在实际开发中用到的非常少通常用于自定义手势

5> tapCount 发生触摸时短时间内的连按次数

触摸对象的常用方法:

1> locationInView:view view传入某一个视图 返回值是触摸的点在该视图上的位置

2> PReviousLocationInView: view 上一次点击在某个视图中的位置

3> UITouch *touch = [touches anyObject]; 在单点触摸的处理中通常用此方法从touchues数组中返回touchu对象

多点触摸的处理

首先需要设置视图允许多点触摸

[view setMultipleTouchEnabled:YES];

view为需要设置允许多点触摸的视图

在实际应用过程中

需要在处理时分别对touches这个集合中的每一个touch对象分别处理即可

因为touches是一个NSSet,所以造成了多点触摸时取出的touch对象的顺序没办法固定,但是在一次触摸事件的过程中即该视图没有调用touchesEnded:方法和touchesCancelled:两个方法之前touches里面的touch顺序是不变的

示例代码:

http://dl.vmall.com/c01at1z0hp

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航