首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

UIGestureRecognizer发射两次?

在 iOS 和 macOS 中,UIGestureRecognizer 可以用来识别多种手势,比如点击、长按、滑动等等。在 iOS 中,UIGestureRecognizer 发射两次,通常是因为用户进行了两个连续的手势操作,比如先进行了一个点击操作,然后紧接着又进行了一个长按操作,系统会识别并发射两次。

要限制 UIGestureRecognizer 发射次数,可以在初始化时设置 numberOfTouchesRequired 属性为 1,即只需要一个触摸点即可触发手势,如下所示:

代码语言:swift
复制
let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(handleTap(recognizer:)))
tapGestureRecognizer.numberOfTouchesRequired = 1
view.addGestureRecognizer(tapGestureRecognizer)

除了设置 numberOfTouchesRequired 属性外,还可以使用 require(toFail:) 方法来让手势识别器等待一个其他的手势识别器失败后再触发,这样也可以避免多次触发手势识别器。

代码语言:swift
复制
let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(handleTap(recognizer:)))
let longPressGestureRecognizer = UILongPressGestureRecognizer(target: self, action: #selector(handleLongPress(recognizer:)))
longPressGestureRecognizer.require(toFail: tapGestureRecognizer)
view.addGestureRecognizer(longPressGestureRecognizer)

这样,当用户进行长按手势时,UILongPressGestureRecognizer 会先尝试触发 handleLongPress(recognizer:) 方法,如果用户进行的是点击手势,则 UITapGestureRecognizer 会先尝试触发 handleTap(recognizer:) 方法,这样就避免了多次触发手势识别器的问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

UIGestureRecognizer  手势识别一、概念介绍二、UIView 的分类三、UIGestureRecognizer 抽象类四、UIGestureRecognizerDelegate 代理

一、概念介绍 UIGestureRecognizer是一个抽象类,定义了所有手势的基本行为,使用它的子类才能处理具体的手势 UITapGestureRecognizer(轻触,点按) UILongPressGestureRecognizer...*)gestureRecognizer; 2、移除一个手势 - (void)removeGestureRecognizer:(UIGestureRecognizer*)gestureRecognizer...; 3、是否接收一个手势触摸事件,默认为YES,返回NO为不接收 - (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer...; ---- 三、UIGestureRecognizer 抽象类 属性: 1、获取当前手势状态 @property(nonatomic,readonly) UIGestureRecognizerState...; (2) 这个方法返回YES,第一个和第二个互斥时,第二个会失效 - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer

2.8K80

北斗卫星导航系统组网完成倒计时,3月、5月进行最后两次发射

策划&撰写:韩璐 有媒体从中国卫星导航系统管理办公室处获悉,中国将于今年3月、5月两次发射北斗三号组网卫星,这也是北斗卫星导航系统全球组网完成前的最后两次发射。...自2000年发射首颗卫星至现在,北斗导航项目已经发射了53颗卫星。就在2月15日,北斗运控一线也发来战报称,北斗卫星导航系统第41颗、49颗、50颗、51颗卫星已经完成在轨测试,正式入网工作。...依据当前的卫星发射规划,北斗卫星导航系统将于今年5月正式完成组网。事实上,自2018年底,北斗导航系统就已经开始提供全球服务,并于去年11月下旬开始为私营公司提供定定位服务。

77010

particle emitters(粒子发射源)

Life Span(生命跨度) 粒子系统用particle emitter(粒子发射器)产生单独的颗粒.生命跨度决定了粒子在场景中的可见时长 Emitter behavior(发射器行为) 可以按钮发射器的参数...Location(位置) 和形状相关,设置发射器从哪里发射颗粒.设置为Vertex,则颗粒将会从几何体的顶点产生 Emission space(散发空间) 发射出的颗粒停留的空间.设置为World Space...Spreading angle(散布角度) 随机化大量颗粒的发射角度.设置为0,则颗粒严格按照上一个设置的方向运动 Shape(形状) 发射颗粒的形状,设置为Sphere则用球体做为几何体 Shape....设置为1,使粒子发射器设定总长度为1秒 Idle Duration(闲置时长) 粒子系统循环发射一个特定排放时长后,将闲置一段时间,称为闲置时长,然后再重复循环.设置为0,粒子系统将只发射一次 Looping...(循环) 设置粒子系统像爆炸一样发射一次,还是像火山一样持续发射粒子.设置为Loops continuously,就可以让发射器在被移除前一直发射

1.2K20

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

iOS开发中的手势体系——UIGestureRecognizer分析及其子类的使用 一、引言         在iOS系统中,手势是进行用户交互的重要方式,通过UIGestureRecognizer类,...关于UIGestureRecognizer类,是对iOS中的事件传递机制面向应用的封装,将手势消息的传递抽象为了对象。...二、手势的抽象类——UIGestureRecognizer         UIGestureRecognizer将一些和手势操作相关的方法抽象了出来,但它本身并不实现什么手势,因此,在开发中,我们一般不会直接使用...UIGestureRecognizer的对象,而是通过其子类进行实例化,iOS系统给我们提供了许多用于我们实例的子类,这些我们后面再说,我们先来看一下,UIGestureRecognizer中抽象出了哪些方法...1、统一的初始化方法         UIGestureRecognizer类为其子类准备好了一个统一的初始化方法,无论什么样的手势动作,其执行的结果都是一样的:触发一个方法,可以使用下面的方法进行统一的初始化

1.7K20

EMI辐射发射超标案例

一、概论造成EMC辐射超标的原因是多方面的,接口滤波不好、结构屏效低、电缆设计有缺陷都有可能导致辐射发射超标,但产生辐射的根本原因却在PCB的设计。...近场探测证实正是这两块板附近25MHz的倍频点发射较大。...六、其它辐射超标的原因辐射发射测试通不过的时候,很多测试人员喜欢从PCB上分析超标的原因。除了PCB布局、布线外,PCB上的一些电路设计对于辐射发射也会起到决定性的作用。...机柜壳体与接地点A存在高频电压VAG,接地线AG形成发射天线,造成整机辐射发射严重超标。将接地线改为在机外,PGND与机柜直接短接,使AG近似为0,即VAG=0,从而消除接地线与机柜壳体的天线效应。...---------------------------------2)电缆连接器搭接不良导致辐射超标某产品辐射发射测试超标,经过定位,当设备引出E1线后,辐射发射测试结果就超标。

1.6K20

​英语四六级听力有线传输无线发射系统-不用申请发射频率的四六级听力发射系统

英语四六级听力有线传输无线发射系统-不用申请发射频率的四六级听力发射系统 北京海特伟业科技有限公司原创 文/任洪卓 138-1095-2040 一、英语四六级听力有线传输无线发射系统概述 四川财经大学位于素有...二、英语四六级听力有线传输无线发射系统用户需求分析 随着时代的进步和科技的发展,以及无线电管理相应政策的出台,原有“调频发射机+发射天线”的外语调频台已经不能适应日益发展的四六级听力考试需要和无线电管理要求...AGC调幅近端机通过主备切换器实现故障自动切换,发射频率采用一主两备发射方式,有效杜绝考试故障发生。...5、调频发射单元 多频发射终端是四六级听力无线发射的核心设备,影响着发射音质。本方案采用利用国内先进技术研制的海特伟业品牌多频发射终端。...该终端支持光信号接入、多频点考场无线发射;具备频率准确、稳定可靠、音质清晰的优点;采用微功率发射的方式,对教室(考场)进行小范围的无线发射覆盖,不用向当地无线电管理委员会申请发射频率。

37840

Jenkins Build Radiators(构建发射源)

information radiators(信息发射源)的概念通常被用在敏捷的圈子里。...在一个CI服务器的环境中,一个信息发射源是一个突出的设备或显示器,允许团队成员或其他人易于看到是否是否任何构建当前中断了。...这种特定的信息发射源通常被称为构建发射源(build radiator)。 当使用得当时,构建发射源是最有效的被动通知策略。它们非常有效的确保每个人都知道失败的构建。...构建发射源能够满足许多构建任务(build jobs)的需要,包括许多失败的构建工作(failing buildjobs),因此能够有效的被使用在多个团队的环境。...对Jenkins来说有几个构建发射源(build radiator)解决方案。

63520

“神舟十一号发射成功”大数据显示“十三五”航天高密度发射

根据最新消息,10月17日7时30分神舟十一发射成功,行乘组状态良好,发射取得圆满成功。具体情况如何,大数据带你一起来看看神舟十一发射成功的详细内容吧!...神舟十一发射成功回顾:   17日凌晨4时15分许,航天员出征仪式在酒泉卫星发射中心问天阁举行。...在送行人群的鼓掌欢呼声中航天员们乘车前往发射场,进入飞船作发射前的准备。   发射场上,长征二号F遥十一运载火箭巍然矗立、整装待发。   ...“十三五”航天高密度发射   大数据显示,“十三五”航天高密度发射,其中,载人航天工程:2017年将发射“天舟一号”货运飞船与“天宫二号”对接,2018年前后将发射“天和一号”空间站核心舱。...探月工程:2017年“嫦娥五号”飞行器将发射并完成月球采样返回,2018年将发射“嫦娥四号”飞行器。火星探测:计划于2020年发射火星探测器。高分辨率对地观测系统:预计2018年发射高分七号卫星。

942140

一网「起死回生」,恢复卫星发射,成功发射36颗

---- 新智元报道 来源:space 编辑:LQ 【新智元导读】12月18日,一网公司(OneWeb)在俄罗斯东方航天发射场成功发射了36颗新卫星。...这是一网低轨宽带互联网星座的第四次发射,也是一网走出破产保护后的首次组网发射。截至目前,一网在轨卫星数量已达110颗。...发射后,36颗卫星都已经确认收到信号。 4次,110颗卫星 2019年以来,一网共进行过4次发射任务,除了2019年第一次发射试验卫星,剩下的都是在今年完成的。...前3次分别是: 2019年2月27日在法属圭亚那的圭亚那太空中心发射的「6颗」原型试验卫星; 2020年2月7日和3月21日在哈萨克斯坦拜科努尔航天发射场分两次发射的「68颗」卫星。...这些发射将在库鲁、拜科努尔和俄本土的东方发射场三地进行。本次发射也是「第一次」在东方航天发射场进行。 成也新冠,败也新冠 本次是一网走出破产保护后首次组网发射

37440

News | OneWeb再发射36颗卫星

于哈萨克拜科努尔太空发射场,以俄罗斯所研发的联盟号第三代载人飞船,成功再发射36颗卫星,并且已经全部上线,卫星总数达394颗,完成OneWeb低轨卫星群60%,可望在今年底前,向全球提供卫星网络服务。...这次发射卫星,是OneWeb所计划的19次卫星发射任务的第12次,该公司要在19次发射任务中,部署650颗卫星,建立第一代卫星网络。...这次所发射的36颗卫星,安装在联盟号宇宙飞船顶部,在日落后从哈萨克升空。...OneWeb所发射的卫星为小型低轨卫星,这类属于质量和尺寸都较小的卫星,每颗卫星质量不到150公斤,目标是要分布在地球上空,向全球每个角落提供网络服务。...而2021年底的发射任务,则是英国政府和Bharti接手以来,OneWeb第9次发射卫星,目前已经完成该公司低轨卫星群计划的60%,达到394颗卫星。

35630

Vcsel芯片和边发射激光芯片

最近几年很多人都在研究Vcsel芯片,Vcsel芯片制造过程比边发射芯片简单,合格率也高很多,但是Vcsel也有它的局限性。可以从性能和结构上分析一下。 下图是边发射激光器和Vcsel芯片图。...EEL指边发射激光器,激光震荡腔长不同,EEL芯片长度可以做到上mm量级,而vcsel只有几微米。不镀膜的EEL自身腔面的反射率只有30%左右,而Vcsel可以做到99%,和外延材料性子有关。...Laser就是从红色区域发射出去,经过上下两层DBR的震荡,产生更多的激光。 但是我们知道Vcsel多是短波长类的激光,而对于光通信常用的1310&1550等波段则几乎没有该类芯片。...EEL和Vcsel芯片综合性能对比表: 边发射激光器可以做超大功率激光芯片,而Vcsel想要做大功率还是很有挑战的。

1.5K30

事件监听与发射机制的实现

前言 在程序开发中,经常会用到事件监听发射机制,方便在不同的脚本之间传递信息,按需监听,避免了脚本之间过多的关联,提高效率,无形中达到了解耦的效果。...本文将带着大家从 0 实现一个事件监听发射系统,让我们开始吧。...发射逻辑:遍历指定事件的所有订阅并且执行他们的回调。 取消监听逻辑:遍历指定事件的所有订阅,将对应的订阅移除。 移除事件逻辑:移除指定事件和其订阅 。...实现发射函数 emit ,需要传入的参数为事件名以及若干参数;没有目标事件直接返回,否则遍历所有订阅并调用: /** * 发射事件 * @param event 事件名 * @param args...', this.init, this); GameEvent.on('init', (param: any) => { this.init(param) }); // 发射事件

1.2K20
领券