手势

侧滑返回上一级

橙三吉。 提交于 2019-12-02 12:42:56
侧滑返回 NavigationController自从iOS7.0之后, 增加了一个滑动返回功能, 当push入一个控制器并且展示了这个控制器的View时, 除了点击左上方的返回按钮之外, 还可以向右滑动屏幕左边缘同样可以达到返回上一级界面的效果 但是侧滑返回的问题就在于, 我们在项目中, 经常要使用自定义的返回按钮. 而当你使用了自定义按钮时, 你会发现侧滑返回效果挂掉了 侧滑返回的原理分析 手势: 侧滑返回, 需要手指侧滑屏幕, 因此从这一点可以推断出来, 侧滑返回功能应该是一个 UIGestureRecognizer 进入UINavigationController的头文件中, 搜索 UIGestureRecognizer , 这时我们会发现一个属性, 他就是用来管理导航控制器侧滑返回功能的手势 // 这就是侧滑返回手势 @property ( nullable , nonatomic , readonly ) UIGestureRecognizer *interactivePopGestureRecognizer NS_AVAILABLE_IOS ( 7 _0) 通过查看文档, 可以了解到, 这个手势专门用来执行pop功能, 将栈顶控制器移除, 同时你还可以给当前这个View增加别的手势并且和侧滑返回手势绑定在一起( 但是尽量不要这么用, 不觉得很反人类么... ) 代理:

iOS侧滑返回功能实现

好久不见. 提交于 2019-12-02 12:35:22
方案一 : 开启使用系统自带的侧滑返回 iOS7之后系统提供了侧滑手势(interactivePopGestureRecognizer),即从屏幕左侧边缘滑起会pop回导航控制器栈的上个viewController。 不过如果你自定义了UINavigationViewController或者自定义了返回按钮,系统自带的侧滑返回功能会失效。 此时需要添加下面的代码解决: self .navigationController .interactivePopGestureRecognizer .delegate = ( id ) self ; 缺点: 必须从屏幕边缘左侧滑起才会触发; 一旦自定义导航控制器或者自定义返回按钮,就会失效。 方案二 实现UINavigationViewController的代理方法,自定义动画对象和交互对象。(即自定义转场动画) 这是苹果官方在WWDC上提倡的方法,灵活性高。可以高度自定义push和pop转场动画。 这种方法需要我们彻底实现侧滑返回,那我们的思路就是: 先给view添加一个UIPanGestureRecognizer手势; 再自定义该手势的触发方法,该方法里实现了侧滑。 1. 先创建一个BaseViewController,给该控制器的view添加拖动手势; - ( void )viewDidLoad { [ super viewDidLoad

iOS 侧滑返回手势

最后都变了- 提交于 2019-12-02 12:16:06
前言(其实就是废话,可以忽略 = =) 侧滑返回手势是从iOS7开始增加的一个返回操作,经历了两年时间估计iPhone用户大部分都已经忽略了屏幕左上角那个碍眼的按钮了。之前在网上搜过有关侧滑手势的技术博客,发现大多比较散乱,甚至有很多都是简单的粘贴复制,并不全面。在这里写这篇文章的目地,就是希望比较系统把侧滑手势的相关内容做下总结,也希望可以帮助到正在找相关资料的同学。(不知不觉iOS系统版本都已经更新到9了,想想最初还在纠结iOS6和iOS7适配问题,不禁感觉到时间过的飞快。) 正文 侧滑手势在应用的实际场景中应该分为两种情况 使用系统自带的返回按钮 使用自定义的返回按钮 那么在项目中我们会对侧滑手势做哪些自定义的操作呢?下面是我自己总结的几个常用的操作 禁用/启用侧滑手势 获取侧滑手势 好了,下面我们开始进入正题。 先创建一个继承自 UINavigationController 的子类,然后让我们来看一下 UINavigationController 的 @property ,可以找到下面这个属性: @property(nullable, nonatomic, readonly) UIGestureRecognizer *interactivePopGestureRecognizer 这个属性就是我们的侧滑返回手势,如果你的项目中没有需求要自定义返回按钮(虽然我觉得这并不太可能

百度大脑手势识别使用攻略

白昼怎懂夜的黑 提交于 2019-12-02 06:40:00
作者:busyboxs 上次我尝试做了一个给眼镜加特效,针对的是静态图像,具体文章参考 https://ai.baidu.com/forum/topic/show/942890 。 这次我尝试在视频中加眼镜特效,并且加上手势识别,不同的手势佩戴不同的眼镜。接下来将介绍手势识别接口,并介绍如何接入。 手势识别接口 接口描述 识别图片中的手势类型,返回手势名称、手势矩形框、概率分数,可识别24种常见手势,适用于手势特效、智能家居手势交互等场景。 支持的24类手势列表:拳头、OK、祈祷、作揖、作别、单手比心、点赞、Diss、我爱你、掌心向上、双手比心(3种)、数字(9种)、Rock、竖中指。 注: •上述24类以外的其他手势会划分到other类。 •除识别手势外,若图像中检测到人脸,会同时返回人脸框位置。 人体分析的请求方式和人脸识别的请求方式有所不同,具体的使用说明参见文档 https://ai.baidu.com/docs#/Body-API/27495b11 请求格式 POST 方式调用,请求 URL 为 https://aip.baidubce.com/rest/2.0/image-classify/v1/gesture ,Content-Type 为 application/x-www-form-urlencoded,然后通过 urlencode 格式化请求体。 请求参数

iOS开发中的手势体系——UIGestureRecognizer分析及其子类的使用

余生长醉 提交于 2019-12-01 22:30:24
iOS开发中的手势体系——UIGestureRecognizer分析及其子类的使用 一、引言 在iOS系统中,手势是进行用户交互的重要方式,通过UIGestureRecognizer类,我们可以轻松的创建出各种手势应用于app中。关于UIGestureRecognizer类,是对iOS中的事件传递机制面向应用的封装,将手势消息的传递抽象为了对象。有关消息传递的一些讨论,在前面的博客中有提到: iOS事件响应控制: http://my.oschina.net/u/2340880/blog/396161 。 二、手势的抽象类——UIGestureRecognizer UIGestureRecognizer将一些和手势操作相关的方法抽象了出来,但它本身并不实现什么手势,因此,在开发中,我们一般不会直接使用UIGestureRecognizer的对象,而是通过其子类进行实例化,iOS系统给我们提供了许多用于我们实例的子类,这些我们后面再说,我们先来看一下,UIGestureRecognizer中抽象出了哪些方法。 1、统一的初始化方法 UIGestureRecognizer类为其子类准备好了一个统一的初始化方法,无论什么样的手势动作,其执行的结果都是一样的:触发一个方法,可以使用下面的方法进行统一的初始化: - (instancetype)initWithTarget:(nullable

结合工程实践选题调研分析同类软件产品

こ雲淡風輕ζ 提交于 2019-11-30 12:13:18
  由于智能制造和人工智能的火热,直接让机器视觉这个行业也火热起来。目前的人机交互技术已经从以计算机为中心逐步转移到以用户为中心,而手势识别技术容许用户在不需要额外工具的前提下就可以与计算机或者其他智能终端进行交互。近年来由于VR/AR技术的兴起,手势识别技术也变得越发重要,市场需求更加迫切。本次工程实践拟实现通过计算机采集双目摄像头数据,基于计算机视觉以及OpenCV工具进行图像帧预处理,进而通过机器学习方法来开发一款手势识别系统。初步达到模拟鼠标键盘来对计算机进行交互的目的。本次我将结合工程实践选题调研分析手势识别方面的软件。   我们与计算机的交互经历了“键盘鼠标”到“触控屏幕”再到“语音手势”的发展历程。手势交互是指:利用计算机图形学等技术识别人的肢体语言,并转化为命令来操作设备。手势交流作为一种新兴的蓬勃发展的交互方式,具有自然方便的优点,它将不断融合到我们的日常生活中来。微软、Leap Motion、Hand CV是手势交互领域的行业先锋,它们依托摄像头、传感器等硬件技术,计算机视觉、深度学习等软件技术将手势识别应用到了游戏设备、VR设备、车载设备和智能家居等场景中。下列是三种手势交互产品介绍。 1、微软体感设备Kinect   Kinect是微软在2010年6月14日对XBOX360体感周边外设正式发布的名字。伴随着名称的正式发布,Kinect还推出了多款配套游戏

安卓自定义View进阶-手势检测(GestureDetector)

泪湿孤枕 提交于 2019-11-29 23:45:19
Android 手势检测,主要是 GestureDetector 相关内容的用法和注意事项,本文依旧属于事件处理这一体系,部分内容会涉及到之前文章提及过的知识点,如果你没看过之前的文章,可以到 自定义 View 系列 来查看这些内容。 在开发 Android 手机应用过程中,可能需要对一些手势作出响应,如:单击、双击、长按、滑动、缩放等。这些都是很常用的手势。就拿最简单的双击来说吧,假如我们需要判断一个控件是否被双击(即在较短的时间内快速的点击两次),似乎是一个很容易的任务,但仔细考虑起来,要处理的细节问题也有不少,例如: 记录点击次数 ,为了判断是否被点击超过 1 次,所以必须记录点击次数。 记录点击时间 ,由于双击事件是较快速的点击两次,像点击一次后,过来几分钟再点击一次肯定不能算是双击事件,所以在记录点击次数的同时也要记录上一次的点击时间,我们可以设置本次点击距离上一次时间超过一定时间(例如:超过100ms)就不识别为双击事件。 点击状态重置 ,在响应双击事件,或者判断不是双击事件的时候要重置计数器和上一次点击时间。重置既可以在点击的时候判断并进行重新设置,也可以使用定时器等超过一定时间后重置状态。 这样看起来,判断一个双击事件就有这么多麻烦事情,更别其他的手势了,虽然这些看起来都很简单,但设计起来需要考虑的细节情况实在是太多了。 那么有没有一种更好的方法来方便的检测手势呢

Android手势识别简单封装类

懵懂的女人 提交于 2019-11-29 10:43:21
今天在做一个项目时用到了简单的手势功能(向左,向右滑切屏),于是简单地封装了下 import android.content.Context; import android.util.DisplayMetrics; import android.view.GestureDetector; import android.view.GestureDetector.OnGestureListener; import android.view.MotionEvent; public class GestureHelper implements OnGestureListener { private GestureDetector gesture_detector; private int screen_width; private OnFlingListener listener_onfling; public static abstract class OnFlingListener { public abstract void OnFlingLeft(); public abstract void OnFlingRight(); } public GestureHelper(Context context) { DisplayMetrics dm = context

五款高效率黑科技神器工具,炸裂好用,省时间

孤者浪人 提交于 2019-11-28 03:04:02
loonggg 读完需要 4 分钟 速读仅需2分钟 感觉我好久好久没有给大家分享高质量的软件和插件了。 今天周末,难 得 在家休息一下,痛下决心,分享一些我认为的高效率工具软件给大家。 废话不多说,咱们直接真材实料的,真刀真枪的介绍了。 1 Squoosh Squoos是 Google 开源发布的一款专门用来压缩图片的在线服务,支持 JPG、PNG、WebP 等格式的极限压缩,据说比 TinyPNG 还有强大。 作为 Android 开发者的同学的话或者一些设计对于 TinyPNG 肯定非常熟悉,但是 Squoos 比它还好用,就知道这个工具有多好了。Squoosh,它采用谷歌强大的算法,在保障图像质量的前提下最大化压缩图片。 不仅仅只有压缩这一种功能,此外,它还支持一些简单的在线编辑。所以,非常强烈建议大家在使用图片压缩工具的时候,大家能够想到它。 2 MarkOne MarkOne 非常牛逼,MarkOne 是一款可以基于浏览器视频做笔记的扩展插件,其功能是帮助用户在线观看视频的时候顺便记录下来,对视频进行备注、截图、截取字幕等操作,精彩不暂停,笔记随时记。 Mark One 是香港理工大学的学生团队的毕设作品,旨在解决观看视频时记录笔记的痛点,对于想要在视频学习的时候想随手在任意位置做笔记的朋友来说,这是个非常不错的选择。 3 WGestures WGestures