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

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

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

2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    iOS 中的事件响应

    苹果回复[2] 在hitTest函数中拿到的 UIEvent 对象,其allTouches属性为空,等到下文所提到的发送事件时,在sendEvent函数中拿到的 UIEvent 对象,其allTouches...UIApplication 能够通过 sendEvent 方法发送事件给正确的 UIWindow 正是由于在 Hit-Testing 过程中系统记录了能够响应触摸事件的 Window。...优先级 当我们在一个添加了手势的UIResponder上执行非连续的双击操作,触发的回调消息如下表所示。...适用于同一个View中创建多个UIGestureRecognizer,要调整优先级的情况。 例:单击手势中调用此方法,参数是双击手势,判断双击失败后才会响应单击。...是否对其处理,且不会修改 UIGestureRecognizer 的状态机;(时机在 手势touchesBegan前) 使用二个方法会等待一段时间,在 UIGestureRecognizer 识别手势转换状态时调用

    2.8K11

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

    如果设置为YES,手势识别器在识别的过程中(注意是识别过程),不会将触摸发给触摸到的控件,即控件不会有任何触摸事件。...只有在识别失败之后才会将触摸事件发给触摸到的控件,这种情况下控件view的响应会延迟约0.15ms。...id)target action:(nullable SEL)action; 4、指定一个手势需要另一个手势执行失败才会执行,同时触发多个手势使用其中一个手势的解决办法 有时手势是相关联的,如单机和双击...*)otherGestureRecognizer; 例子: // 关键在这一行,如果双击确定偵測失败才會触发单击 [singleRecognizer requireGestureRecognizerToFail...tap.numberOfTapsRequired = 3; // 设置能识别到手势的最少的手指的个数 tap.numberOfTouchesRequired = 2; //把手势对象添加到对应的控件中

    3.2K81

    EasyGBS视频通道定位时在电子地图双击视频导致地图放大问题优化

    几个月前,我们在EasyGBS内开发了实时定位播放视频通道的功能,也就是说目前EasyGBS已经实现了地图定位,我们主要是通过循环渲染在测试期间,EasyGBS开启电子地图后,双击视频地图会放大,用户的误触可能对视频的观测造成影响。分析可能是事件冒泡导致的,但是我们给父级元素阻止事件冒泡,发现解决不了。...template>                     使用信息窗体覆盖物加载快照时正常显示,但是播放视频不能正常播放: 因此我们最后决定禁用地图双击事件...:double-click-zoom="false" 修改后视频正常播放: EasyGBS视频智能分析平台在交通、安防等场景下具备很好的适应性,而今年TSINGSEE青犀视频研发团队刚推出的国标推流平台

    46730

    【IOS开发进阶系列】手势专题

    1 touchesBegan手势         iPhone中处理触摸屏的操作,在3.2之前是主要使用的是由UIResponder而来的如下4种方式:     - (void)touchesBegan...2 UIGestureRecognizer         iOS系统在3.2以后,为方便开发这使用一些常用的手势,提供了UIGestureRecognizer类。...添加到需要识别的View中。每个手势只对应一个View,当屏幕触摸在View的边界内时,如果手势和预定的一样,那就会回调方法。         ...imageView放了一条蛇的图片,在模拟器上拖动是没问题的。...缩放和旋转有点问题,估计是因为在模拟器上的模拟的两个接触点距离在imageView的边界外了,所以操作无效果。建议在真机上运行这个手势。

    53040

    Excel中鼠标双击的妙用,你可能需要知道

    标签:Excel技巧 在Excel中,使用鼠标双击,快速操作,可能会为你节省很多时间。 格式刷 双击格式刷,可以多次应用相同的格式。...如果你有多个单元格需要应用相同的格式,可以先选择想要复制其格式的单元格,双击功能区“开始”选项卡“剪贴板”组中的“格式刷”,然后在需要应用格式的单元格中单击,如下图1所示。...工作表标签 通过命名工作表,可以更好地在工作表之间导航,特别是工作表特别多时。 双击工作表标签,输入想给它起的名字,按回车键,如下图4所示。...图4 在单元格中导航 选择工作表中的单元格,双击该单元格的任一边框,将跳转到其连续数据单元格区域的最后一个单元格,如下图5所示。...图5 图5演示的是下边框,同样可以双击其它边框,快速跳转到同一行或列中左侧、右侧或顶部单元格。

    1.4K41

    手势的抽象类——UIGestureRecognizer三. UIGestureRecogni

    利用UIGestureRecognizer,能轻松识别用户在某个view上面做的一些常见手势。...手势的抽象类——UIGestureRecognizer UIGestureRecognizer将一些和手势操作相关的方法抽象了出来,但它本身并不实现什么手势,因此,在开发中,我们一般不会直接使用UIGestureRecognizer...比如,单击和双击并存时,如果不做处理,它就只能发送出单击的消息。为了能够识别出双击手势,就需要用下面的方法一个特殊处理逻辑,即先判断手势是否是双击,在双击失效的情况下作为单击手势处理。...UIGestureRecognizer子类及子类属性 除了UIGestureRecognizer中的方法和属性是所有子类通用的之外,UIGestureRecognizer子类中分别有不同的属性和方法来对应不同的手势...自定义手势 自定义手势继承:UIGestureRecognizer,实现下面的方法,在以下方法中判断自定义手势是否实现。

    2.6K50

    如何在STM32嵌入式开发中优雅地处理按键(单击、双击、长按)?

    下面从硬件和软件两个层面给出详细的解决方案: 1、按键去抖动 按键在物理层面上具有机械抖动特性,即按下或松开时会产生多次的电平波动,导致微控制器读取到多个错误的状态变化。...2.2 双击检测 双击是指按键被连续点击两次,通常要求两次按下和松开之间的时间小于某个阈值,且两次按下事件之间的时间间隔小于一定时间。...使用状态机或标志位来判断是单击、双击还是长按。 按键事件管理流程:按下按键时,记录当前时间(按下时间戳)。...如果按下与松开之间的时间差小于双击阈值(例如300ms),则判定为双击。 如果按下时间超过某个阈值(例如1500ms),则判定为长按。...双击检测需要检查两个按下事件之间的时间间隔是否小于一个设定的时间(例如300ms)。

    36720

    touchesBegan 触摸事件一、概念介绍二、方法介绍三、参数介绍:touches四、参数介绍:event

    一、概念介绍 在用户使用app过程中,会产生各种各样的事件,iOS中的事件可以分为3大类型: 事件类型.png 响应者对象UIResponder 在iOS中不是任何对象都能处理事件...)获取触摸产生时所处的视图 @property(nonatomic,readonly,retain) UIView *view; (3)获取短时间内点按屏幕的次数,可以根据tapCount判断单击、双击或更多的点击...)获取触摸事件产生或变化时的时间,单位是秒 @property(nonatomic,readonly) NSTimeInterval timestamp; (5)获取当前触摸事件所处的状态 触摸事件在屏幕上有一个周期...readonly) CGFloat majorRadiusTolerance; (8)获取触摸手势 @property(nullable,nonatomic,readonly,copy) NSArray UIGestureRecognizer...touchesForView:(UIView *)view; (4)获取手势对象 - (nullable NSSet *)touchesForGestureRecognizer:(UIGestureRecognizer

    2.7K100

    iOS14开发-触摸与手势识别

    可据此判断单击和双击操作。 (4)timestamp:时间戳,单位秒。记录了触摸事件产生或变化时的时间。 (5)phase:触摸事件的周期,即触摸开始、触摸点移动、触摸结束和中途取消。...方法 // 返回一个CGPoint类型的值,表示触摸在view上的位置。 // 返回的位置是针对view的坐标系。 // 调用时传入的view参数为空的话,返回的是触摸点在整个窗口的位置 。...在响应之前,必须要找到那个最合适的对象(最佳响应者),这个过程称之为事件传递或寻找最佳响应者(Hit-Testing)。...事件传递 当 iOS 程序中发生触摸事件后,系统会将事件加入到 UIApplication 管理的一个任务队列中。 UIApplication 取出最前面的事件传递给 UIWindow。...响应者对于触摸事件的响应和传递都是在touchesBegan方法中完成的。该方法默认是将事件顺着响应者链向上传递,即将事件交给上一个响应者进行处理。

    2.3K20
    领券