转自: http://book.51cto.com/art/201110/297453.htm

4.2.2 iOS多点触摸与手势

iOS赋予用户至少3.5英寸的宽广视野,在当时可谓令人眼前一亮。在这不大不小的舞台上,手指可以灵活地跳动,而在此之前,传统的触屏手机都只能用单指,而且很多都是电阻屏。但是自从iOS 横空出世之后,一切都改变了。

1)多点触摸

iOS彻底打破了传统手机的操作模式,多点触摸使之更为人性化。多点触摸的实现代码如下:

  1. -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
  2. NSUInteger numTouches = [touches count];
  3. }

上述方法传递一个NSSet实例与一个UIEvent实例,可以通过获取touches参数中的对象来确定当前有多少根手指触摸,touches中的每个对象都是一个UITouch事件,表示一个手指正在触摸屏幕。倘若该触摸是一系列轻击的一部分,则还可以通过询问任何UITouch对象来查询相关的属性。

同鼠标操作一样,iOS也可以有单击、双击甚至更多类似的操作,有了这些,在这个有限大小的屏幕上,可以完成更多的功能。正如上文所述,通过访问它的touches属性来查询:

  1. -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
  2. NSUInteger numTaps = [[touches anyObject] tapCount];
  3. }

2)手势

手势是指从一个或多个手指接触屏幕开始,到手指离开屏幕为止所发生的所有事件。无论这个过程耗时多长,只要还有手指停留在屏幕上,就处于某个手势之中,除非发生意外情况。

有了手势之后,屏幕才可以感应到我们的手在做什么动作。很多场合,一些控件已经能够支持双指拉开放大、捏合缩小的动作,图片的多指旋转功能灵活、方便,符合我们的生活习惯,诸如此类的功能都是多指技术应用于现实的最好证明。可以通过以下方式检测手势:

  1. -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
  2. If ([touches count]==2) { // 检测触摸点个数
  3. NSArray *twoTouches = [touches allObjects];   // 获取触摸点数组
  4. UITouch *first = [twoTouches objectAtIndex:0]; // 第一个触摸点
  5. UITouch *second = [twoTouched objectAtIndex;1];// 第二个触摸点
  6. CGFloat initialDistance = distanceBetweenPoints(
  7. [first locationInView:self.view],[second  locationInView:self.view]);  // 计算两个触摸点之间的距离
  8. }
  9. }

iPhone iOS 4.x可以通过设置开启屏幕的缩放功能:三指连按两次便可切换放大,在放大的情况下还可以通过三指来移动屏幕;再次三指连按两次便可恢复正常状态。

iPad iOS 4.3已经可以支持四指操作,通过各种手势,可以实现诸多以前无法实现的效果:四指向上滑动可以显示后台运行的程序;四指向左滑动可以向左切换已打开的程序,四指向右滑动则可以向右切换已打开的程序;在程序打开的情况下,四指捏合可以关闭当前程序。

iOS多点触摸与手势相关推荐

  1. iPhone/iPad高级应用与手游开发学习笔记:多点触摸与手势检测(三:UIPinchGestureRecognizer和UIRotationGestureRecognizer)

    先说一件不幸的事情,本人中午打篮球,不慎脚拐了......悲催啊,愚人节,但是这件事情绝不愚人. 言归正传,上一篇学习了捏合手势,这一篇中我们学习旋转手势,并且使用旋转和捏合做一个操作图片的例子 使用 ...

  2. ipados远程linux软件,JingOS Linux平板系统v0.6下载发布 支持多点触摸手势

    原标题:JingOS Linux 平板系统 v0.6 下载发布:iPadOS 风格,附安装方法 1月29日消息 今年1月份,一款新的操作系统 JingOS 官网上线,官方介绍是全球首个 iPadOS ...

  3. Unity判断手势的滑动方向,单点触摸和多点触摸,并获取刚触摸以及触摸结束事的坐标

    Unity判断手势触摸的类型 ,判断手势的滑动方向,并获取刚触摸以及触摸结束事的坐标 本章咱们一起来看下unity对有触摸手势做出的响应 单点触摸 Input.touchCount==1 移动触摸 I ...

  4. iOS 一一 触摸事件和手势

    iOS触摸事件和手势 文章出处:http://www.jianshu.com/p/cb0314b72883 在iOS中,触摸表示用户手指触击屏幕及在屏幕上移动时,系统不断发送给应用程序对象,一个UIT ...

  5. ios实例开发精品文章推荐(8.12)11个处理触摸事件和多点触摸的JS库

    11个处理触摸事件和多点触摸的JS库 触摸屏是现在所有智能手机的标配,还包括各种平板设备,而且很多桌面也慢慢在开始支持触摸操作.要开发支持触摸屏设备的Web应用,我们需要借助浏览器的触摸事件来实现. ...

  6. Cocos2dx在ios上多点触摸失效

    原文地址:https://blog.csdn.net/lognic10/article/details/41021967 如题,在做cocos2dx项目时,苹果手机上多个触摸事件不能同时响应. 项目环 ...

  7. ios事件-触摸事件2(手势 和 pointInSide()、hitTest()、touchesBegan()、touchesMoved()、touchesEnded()的关系)

    ios事件-触摸事件2(手势 和 pointInSide().hitTest().touchesBegan().touchesMoved().touchesEnded().touchesCancell ...

  8. WPF 多点触摸开发[2]:WPF触摸的几个手势的执行顺序

    原文:WPF 多点触摸开发[2]:WPF触摸的几个手势的执行顺序 前面我讲了在win7下使用模拟器,进行调试模拟多点触摸,其实际开发中这样也比较麻烦.. 要拿几个鼠标. 所以更多的人会 买个触摸套 套 ...

  9. android+触摸绘图,GitHub - lslwsjly/touchvg: 支持多点触摸的矢量绘图框架(iOS、Android、Windows)...

    关于 TouchVG TouchVG 是一个主要由C++开发的轻量级2D矢量绘图框架,可在 iOS.Android.Windows 等多个平台构建矢量绘图应用. 作者:张云贵 rhcad@hotmai ...

最新文章

  1. 023 判断出栈顺序是否正确
  2. 动静结合学内核:linux idle进程和init进程浅析
  3. 国家服务器1eb硬盘,仅一个月:奇亚币已占用超过1EB存储空间
  4. DayDayUp:今天早上看到一条朋友圈——《吃苦与穷的深刻认知》
  5. C++const修饰成员函数
  6. java里的主线程和子线程以及finally不会执行的特殊情况
  7. oracle使用with as提高查询效率
  8. python输入输出有问题_Python中的输入与输出
  9. Problem C: 爬楼梯
  10. 什么是BI(Business Intelligence
  11. 500 lines or less_EXCL公式入门——AND和OR
  12. 启用了文件索引,干脆连文件都找不到了
  13. 【质量管理】41页PPT系统学习质量管理体系!
  14. 怎么把EXCEL内的十六进制数进行两位两位倒序排列
  15. 计算机图形学 之 直线裁剪算法
  16. 考研杂谈一:计算机专业有必要考研吗?
  17. 回溯法求解N皇后问题及其时间复杂度分析
  18. mq for java,MQ For JAVA学习记录
  19. 使用计算机翻译软件,memoQ(计算机翻译工具)
  20. Ubuntu14.04虚拟机下基本操作(typical安装)

热门文章

  1. 拳头服务器什么时候修复,这些LOL客户端BUG你中招了吗?拳头设计师要修复,时长令人无语...
  2. Unity 如何实现第一人称射击游戏(吃鸡游戏)
  3. DayN剑指offer树基础
  4. MySQL 插件分析 Connection control
  5. 创维Android4.4.4,创维电视手机遥控
  6. ajax必填项验证,jQuery验证 - 通过MVC2中的ajax动态添加必填字段
  7. XBOX播放mkv电影
  8. 美国兰德公司《未来战争2030》(the Future of Warfare in 2030)系列研究报告概述(上)
  9. 企业经营管理的核心是什么?
  10. MicroSoft PowerPoint 提示打开.ppt文件发生错误,要修复,修复后部分页面丢失的问题