手势

使用iOS手势UIGestureRecognizer

不羁的心 提交于 2020-12-02 06:41:01
UIKit中包含了UIGestureRecognizer类,用于检测发生在设备中的手势。UIGestureRecognizer是一个抽象类,定义了所有手势的基本行为,它有下面一些子类用于处理具体的手势:   1、拍击UITapGestureRecognizer (任意次数的拍击)   2、向里或向外捏UIPinchGestureRecognizer (用于缩放)   3、摇动或者拖拽UIPanGestureRecognizer   4、擦碰UISwipeGestureRecognizer (以任意方向)   5、旋转UIRotationGestureRecognizer (手指朝相反方向移动)   6、长按UILongPressGestureRecognizer 对于不同类型的手势识别器,具有不同的配置属性。比如UITapGestureRecognizer,可以配置拍击次数。界面接收到手势之后,可以发送一个消息,用于处理响应手势动作后的任务。当然,不同的手势识别器,发送的消息方法也会有所不同。下面列举几个具体示例 代码 : 一个手指,拍击两次手势 // 创建一个手势识别器 UITapGestureRecognizer *oneFingerTwoTaps = [[[UITapGestureRecognizer alloc] initWithTarget:self action:

Swift开发:仿Clear手势操作(拖拽、划动、捏合)UITableView

大兔子大兔子 提交于 2020-04-17 03:32:26
【推荐阅读】微服务还能火多久?>>> 这是一个完全依靠手势的操作ToDoList的演示,功能上左划删除,右划完成任务,拖拽调整顺序,捏合张开插入。 项目源码: https://github.com/luan-ma/ClearStyleDemo.Swift 初始化 TDCToDoItem.swift 定义模型对象 TDCToDoListController.swift 继承自 UITableViewController, 演示UITableView操作 var items = [ TDCToDoItem(text: "Feed the cat"), TDCToDoItem(text: "Buy eggs"), TDCToDoItem(text: "Pack bags for WWDC"), TDCToDoItem(text: "Rule the web"), TDCToDoItem(text: "Buy a new iPhone"), TDCToDoItem(text: "Find missing socks"), TDCToDoItem(text: "Write a new tutorial"), TDCToDoItem(text: "Master Objective-C"), TDCToDoItem(text: "Remember your wedding anniversary

css手势状态定义属性cursor和自定义鼠标手势详解

荒凉一梦 提交于 2020-04-06 21:52:30
css手势状态定义:cursor 和自定义鼠标手势详解 ,示例演示cursor手势状态如下: auto : 默认值。浏览器根据当前情况自动确定鼠标光标类型。 all-scroll : 有上下左右四个箭头,中间有一个圆点的光标。用于标示页面可以向上下左右任何方向滚动。 col-resize : 有左右两个箭头,中间由竖线分隔开的光标。用于标示项目或标题栏可以被水平改变尺寸。 crosshair : 简单的十字线光标。 default : 客户端平台的默认光标。通常是一个箭头。 hand : 竖起一只手指的手形光标。就像通常用户将光标移到超链接上时那样。 move : 十字箭头光标。用于标示对象可被移动。 help : 带有问号标记的箭头。用于标示有帮助信息存在。 no-drop : 带有一个被斜线贯穿的圆圈的手形光标。用于标示被拖起的对象不允许在光标的当前位置被放下。 not-allowed : 禁止标记(一个被斜线贯穿的圆圈)光标。用于标示请求的操作不允许被执行。 pointer : 和 hand 一样。竖起一只手指的手形光标。就像通常用户将光标移到超链接上时那样。 progress : 带有沙漏标记的箭头光标。用于标示一个进程正在后台运行。 row-resize : 有上下两个箭头,中间由横线分隔开的光标。用于标示项目或标题栏可以被垂直改变尺寸。 text :

手势识别软件

生来就可爱ヽ(ⅴ<●) 提交于 2020-03-26 07:21:14
手势识别技术 手势识别技术,使得人们能够使用简单的手势与设备进行交互。我们的解决方案:在设备的摄像头前跟踪用户的手部动作,并把这些手势转换成控制设备及其应用的用户输入的命令。“免触摸”的解决方案是基于先进的图像处理和机器视觉算法,它分析常见的内置摄像头的实时视频输入。该技术是独立于底层处理器和摄像头硬件。它使用低端的VGA相机,但是做到了高品质的手势识别。 此外,该技术是专为嵌入式平台而优化设计。他使用最少的CPU和功率功耗,支持具有挑战性的较差环境以及直接的照明条件。昌海信息科技的手势识别技术可作为设备软件堆栈的一部分或者作为相机传感器芯片级的应用,能够集成在任何一层。 1)小尺寸,非常保守的电源功耗,CPU和内存消耗。 2)无关于相机质量或底层硬件 3)可使用不断移动的相机(例如,在移动电话,便携式游戏机和导航系统)。 4)简单的API,方便与任何操作系统和应用程序轻松集成。 解决方案 手势识别技术增强了免触摸用户界面的解决方案,它提高了用户在操作设备和和应用的体验。这些UI解决方案,使用户能够使用自然的手势来控制设备和应用。 基于此专利技术,昌海信息科技提供各种各样的消费电子免触摸用户界面解决方案: 1)多媒体设备 “免触摸”的解决方案,使得可以虚拟远程控制多媒体设备,使用简单的手势来跳过频道,暂停/播放视频,控制音量以及更多。 2)移动电话 手机目前的“免触摸

iOS手势识别

拜拜、爱过 提交于 2020-03-26 07:17:01
一、手势识别与触摸事件 1、如果想监听一个view上面的触摸事件,可选的做法是: (1)自定义一个view (2)实现view的touches方法,在方法内部实现具体处理代码 2、通过touches方法监听view触摸事件,有很明显的几个缺点 (1)必须得自定义view (2)由于是在view内部的touches方法中监听触摸事件,因此默认情况下,无法让其他外界对象监听view的触摸事件 (3)不容易区分用户的具体手势行为 3、iOS 3.2之后,苹果推出了手势识别功能(Gesture Recognizer),在触摸事件处理方面,大大简化了开发者的开发难度 二、手势识别——Gesture Recognizer 1、手势识别器:UIGestureRecognizer (1)UIGestureRecognizer是一个抽象类,定义了所有手势的基本行为,使用它的子类才能处理具体的手势 (2)子类的继承和功能 图示: 2、手势识别的使用方法及步骤 (1)创建手势识别实例 (2)设置手势识别属性,例如手指数量,方向等 (3)将手势识别附加到指定的视图之上 (4)编写手势触发监听方法 (5)手势触发监听方法后,要还原手势识别实例的属性,比如:获取了缩放比例,然后给某个控件进行了缩放,最后再把缩放比例还原为1。这样后续的手势操作会从新开始,避免错误 3、手势识别的状态 (1)类似于触摸事件

iOS-事件处理

房东的猫 提交于 2020-03-26 07:16:18
一.事件的基本概念 1.事件是当用户手指触击屏幕及在屏幕上移动时,系统不断发送给应用程序的对象 2.系统将事件按照特定的路径传递给可以对其进行处理的对象 3.在iOS中,一个UITouch对象表示一个触摸,一个UIEvent对象表示一个事件。事件对象中包含与当前多点触摸序列相对应的所有对象,还可以提供与特定视图或窗口相关联的触摸对象 二.触摸的基本概念 1.触摸信息有时间和空间两方面,时间方面的信息称为阶段(phrase),表示触摸是否刚刚开始,是否正在移动或处于静止状态,以及何时结束----也就是手指何时从屏幕抬起。 2.触摸信息还包括当前在视图或窗口中的位置信息,以及之前的位置信息(如果有的话)。当一个手指接触屏幕时,触摸就和某个窗口或视图关联在一起,这个关联在事件的整个生命周期都会得到维护。 1.当一个或多个手指触碰屏幕时,发送[touchesBegan : withEvent :]消息 2.当一个或多个手指在屏幕上移动时,发送[touchesMoved : withEvent :]消息 3.当有一个或多个手指离开屏幕时,发送[touchesEnded : withEvent]消息 三.响应者链 1.响应者链是一个响应者对象的连接序列,事件或动作消息(或菜单编辑消息)一次传递。它允许响应者对象把事件处理的职责转交给其它更高层的对象

iOS 手势+触摸事件

这一生的挚爱 提交于 2020-03-26 07:10:59
一、响应链 在IOS开发中会遇到各种操作事件,通过程序可以对这些事件做出响应。 首先,当发生事件响应时,必须知道由谁来响应事件。在IOS中,由响应者链来对事件进行响应,所有事件响应的类都是UIResponder的子类, 响应者链是一个由不同对象组成的层次结构,其中的每个对象将依次获得响应事件消息的机会。当发生事件时,事件首先被发送给第一响应者,第一响应者往往是事 件发生的视图,也就是用户触摸屏幕的地方。事件将沿着响应者链一直向下传递,直到被接受并做出处理。一般来说,第一响应者是个视图对象或者其子类对象,当 其被触摸后事件被交由它处理,如果它不处理,事件就会被传递给它的视图控制器对象viewcontroller(如果存在),然后是它的父视图 (superview)对象(如果存在),以此类推,直到顶层视图。接下来会沿着顶层视图(top view)到窗口(UIWindow对象)再到程序(UIApplication对象),如果UIApplication也不响应,那么还有一个地方可以 构建一个全局响应者作为响应链的最后一个环节,那就是应用程序的委托,前提是他是UIResponder的子类。如果整个过程都没有响应这个事件,该事件 就被丢弃。一般情况下,在响应者链中只要由对象处理事件,事件就停止传递。 一个典型的相应路线图如: First Responser -- > The Window --

android事件系列-onTouch事件与手势操作

蹲街弑〆低调 提交于 2020-03-26 07:05:50
提示记忆:应用流程:在Activity中对控件执行 view.setOnTouchListener( OnTouchListener i);实现里面的OnTouchListener 接口中的方法,重点再于理解里面的方法的实现步骤, 触摸,手势操作已经很好的融入了我们的生活。那么 Android 开发中触摸事件要如何捕捉?如何处理?如何识别手势?事件的传递机制又是怎么样的?下面我们将通过一个小例子来进行这方面的学习。 先看效果图 <ignore_js_op> 如上图所示,就是一个跟随手指移动的按钮。用来演示我们接下来要说的 onTouch 事件和手势操作。 为了让大家看懂里面的代码,我们来先介绍一下基础知识。 onTouch 事件 做什么都好先了解原理以后的工作就会更简单,关于手势以及我们熟悉的 onclick , onLongClick 事件都是基于对 onTouch 事件的捕捉和处理。那么在使用手势工具类的前提下我们应该去学习了解基本的 onTouch 事件。 onTouch 常用的以下 4 个事件: 1 、 ACTION_DOWN : 表示按下了屏幕,第一个执行也是必然执行的方法。 2 、 ACTION_MOVE : 表示为移动手势,会不断的执行直到触摸停止。 3 、 ACTION_UP : 表示为离开屏幕,触摸停止的时候执行。 4 、 ACTION_CANCEL :

GestureDetector和SimpleOnGestureListener的使用教程

拈花ヽ惹草 提交于 2020-03-26 07:03:18
1. 当用户触摸屏幕的时候,会产生许多手势,例如down,up,scroll,filing等等,我们知道View类有个View.OnTouchListener内部接口,通过重写他的 onTouch ( View v, MotionEvent event)方法,我们可以处理一些touch事件,但是这个方法太过简单,如果需要处理一些复杂的手势,用这个接口就会很麻烦(因为我们要自己根据用户触摸的轨迹去判断是什么手势)Android sdk给我们提供了GestureDetector(Gesture:手势Detector:识别)类,通过这个类我们可以识别很多的手势,主要是通过他的onTouchEvent(event)方法完成了不同手势的识别。虽然他能识别手势,但是不同的手势要怎么处理,应该是提供给程序员实现的,因此这个类对外提供了两个接口:OnGestureListener,OnDoubleTapListener,还有一个内部类SimpleOnGestureListener,SimpleOnGestureListener类是GestureDetector提供给我们的一个更方便的响应不同手势的类,这个类实现了上述两个接口(但是所有的方法体都是空的),该类是static class,也就是说它实际上是一个外部类。程序员可以在外部继承这个类,重写里面的手势处理方法。

Flutter-手势处理

五迷三道 提交于 2020-03-26 06:58:07
在 iOS 中,你给一个 view 添加 GestureRecognizer 来处理点击事件。在 Flutter 中,有两种方法来添加点击监听者: 本身支持事件监测的,传递一个函数,实现响应方法,如:RaisedButton 如果本身不支持的,则在外面包裹一个GestureDetector,并给它的交互属性(Tapping、Double tapping、Long pressing等)传递一个函数 Tapping onTapDown — 在特定位置轻触手势接触了屏幕。 onTapUp — 在特定位置产生了一个轻触手势,并停止接触屏幕。 onTap — 产生了一个轻触手势。 onTapCancel — 触发了 onTapDown 但没能触发 tap。 Double tapping onDoubleTap — 用户在同一个位置快速点击了两下屏幕。 Long pressing onLongPress — 用户在同一个位置长时间接触屏幕。 Vertical dragging onVerticalDragStart — 接触了屏幕,并且可能会垂直移动。 onVerticalDragUpdate — 接触了屏幕,并继续在垂直方向移动。 onVerticalDragEnd — 之前接触了屏幕并垂直移动,并在停止接触屏幕前以某个垂直的速度移动。 Horizontal dragging