iOS触摸简介和简单实现
来源:互联网 发布:sai是什么绘图软件 编辑:程序博客网 时间:2024/06/06 09:28
iOS触摸简介和简单实现
1、触摸:
代表着iOS用户交互的核心,它为用户与应用程序的交互提供了最重要的方式。触摸不只限于按钮触摸和键盘交互,可以设计和构建直接通过轻击或其他手势进行工作的应用程序。应用程序在试图类中接收、处理并响应触摸事件。
2、为什么是在视图类UIView中处理触摸事件而不是视图控制器UIViewController?
答:因为视图控制器可以拥有多个视图,所有视图都可能不同程度的使用触摸,如果视图控制器直接处理所有触摸,其响应例程必须为每个视图选择适当的响应。这样一来,代码很快会变得复杂。而将该编程保持在视图级别可简化每个实现。另外,通过视图级别的编程,可以创建完全独立的定制用户界面。
3、触摸事件传达的信息包括:
触摸发生的位置(当前位置和最近的历史位置)
触摸的阶段(触摸按下、触摸移动、触摸弹起)
触摸轻击数量(单击、双击)
触摸发生的时间(时间戳)
4、UITouch对象
触摸事件及其信息存储在UITouch对象中。当用户触摸屏幕后,就会产生相应的事件,所有相关的UITouch对象都被包装在事件中,被程序交由特定的对象来处理。
4.1、UITouch类中包含5个属性:
window:触摸产生时所处的窗口。
view:触摸产生时所处的视图。
tapCount:轻击(Tap)操作和鼠标的单击操作类似,tapCount表示短时间内轻击屏幕的次数。因此可以根据tapCount判断单击、双击或更多的轻击。
timestamp:时间戳记录了触摸事件产生或变化时的时间。单位是秒。
phase:触摸事件在屏幕上有一个周期,即触摸开始、触摸点移动、触摸结束,还有中途取消。而通过phase可以查看当前触摸事件在一个周期中所处的状态。
phase是一个枚举,包含如下信息:
UITouchPhaseBegan, // whenever a finger touches thesurface.
UITouchPhaseMoved, //whenever a finger moves on the surface.
UITouchPhaseStationary, //whenever a finger is touching the surface but hasn't moved since the previousevent.
UITouchPhaseEnded, //whenever a finger leaves the surface.
UITouchPhaseCancelled, //whenever a touch doesn't end but we need to stop tracking (e.g. putting deviceto face)
4.2、UITouch类中包含如下成员函数:
- (CGPoint)locationInView:(UIView *)view:函数返回一个CGPoint类型的值,表示触摸在view这个视图上的位置,这里返回的位置是针对view的坐标系的。调用时传入的view参数为空的话,返回的时触摸点在整个窗口的位置。
- (CGPoint)previousLocationInView:(UIView *)view:该方法记录了前一个坐标值,函数返回也是一个CGPoint类型的值, 表示触摸在view这个视图上的位置,这里返回的位置是针对view的坐标系的。调用时传入的view参数为空的话,返回的时触摸点在整个窗口的位置。
当手指接触到屏幕,不管是单点触摸还是多点触摸,事件都会开始,直到用户所有的手指都离开屏幕。期间所有的UITouch对象都被包含在UIEvent事件对象中,由程序分发给处理者。事件记录了这个周期中所有触摸对象状态的变化。
只要屏幕被触摸,系统就会报若干个触摸的信息封装到UIEvent对象中发送给程序,由管理程序UIApplication对象将事件分发。一般来说,事件将被发给主窗口,然后传给第一响应者对象(FirstResponder)处理。
5、简单实现
很简单的一个视图,视图中有一个可以拖动的按钮。
工程源码路径如下:
http://download.csdn.net/detail/jjunjoe/5056882
- iOS触摸简介和简单实现
- IOS-触摸简单应用-触摸移动按钮
- IOS-触摸简单应用-触摸移动按钮
- iOS触摸和手势
- IOS学习 断点续传简单实现-ASIHTTPRequest类库简介和使用说明
- IOS触摸事件和手势
- [IOS]触摸事件和手势
- iOS触摸事件和手势
- Apache commons chain简介和简单实现
- 搜索引擎原理简介和简单实现
- UIView实现简单触摸拖拽手势
- Android触摸事件进行画图简单实现
- IOS触摸事件监听和操作
- ios之轻击、触摸和手势
- IOS之触摸事件和手势
- IOS之触摸事件和手势
- IOS触摸事件监听和操作
- IOS之触摸事件和手势
- 纵向三级导航
- 基于openswan klips的IPsec VPN实现分析(十)认证算法维护
- Game Development with JavaScript and the Canvas element
- JavaScript可否多线程? 深入理解JavaScript定时机制
- 2013寒假练习 1018:没有上司的聚会
- iOS触摸简介和简单实现
- 分布式文件系统(MooseFS)
- sunpinyin出词调用顺序
- 再议JQuery中Ajax内存溢出问题。
- 静态代码检查工具
- 读google c++ style的总结。
- 黑苹果安装要点1
- 探索Android 滑动置顶标题的实现
- 000webhost免费申请