首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏滕先生的博客

    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

    3.8K81发布于 2018-05-18
  • 来自专栏陈满iOS

    iOS· UIGestureRecognizer 与UITouch 的 locationInView方法含义区别

    })]; 1.2 实现方法事件 - (void)tapClickAction{ //... } 1.3 设置手势范围 -- 在UIGestureRecognizerDelegate代理中实现 UIGestureRecognizer 方案 #pragma mark - UIGestureRecognizerDelegate - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer return YES; } } UITouch方案 #pragma mark - UIGestureRecognizerDelegate - (BOOL)gestureRecognizer:(UIGestureRecognizer UIGestureRecognizer 与UITouch 都有一个 locationInView: 方法。

    1.4K10发布于 2018-09-10
  • 来自专栏一“技”之长

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

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

    2.7K20发布于 2018-08-15
  • 来自专栏CoderStar

    iOS 中的事件响应

    UIGestureRecognizer 上节我们分析了当只有UIResponder参与事件响应时事件的传递是什么样的,那这节我们看一下当UIGestureRecognizer加入到响应时,事件的传递与响应会发生什么变化 先列举几个UIGestureRecognizer的关键属性 open var state: UIGestureRecognizer.State { get } weak open var delegate 手势之间的依赖关系 当触摸事件发生时,哪个 UIGestureRecognizer 先收到这个事件并没有固定的顺序,我们可以使用UIGestureRecognizer 提供的方法来控制它们之间的顺序和相互关系 /** 控制两个 UIGestureRecognizer 之间是否可以同时异步进行 需要注意的是,假设存在两个可能会互相 block 的 UIGestureRecognizer,系统会分别对它们的 delegate UIButton 等系统 UIControl 会拦截其父 View 上的 UIGestureRecognizer,但不会拦截自己和子 View 上的 UIGestureRecognizer; 扩展 这里再介绍一下

    4.3K11编辑于 2022-08-24
  • 来自专栏xx_Cc的学习总结专栏

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

    利用UIGestureRecognizer,能轻松识别用户在某个view上面做的一些常见手势。 手势的抽象类——UIGestureRecognizer UIGestureRecognizer将一些和手势操作相关的方法抽象了出来,但它本身并不实现什么手势,因此,在开发中,我们一般不会直接使用UIGestureRecognizer 的对象,而是通过其子类进行实例化,iOS系统给我们提供了许多用于实例的子类,这些我们后面再说,我们先来看一下,UIGestureRecognizer中抽象出了哪些方法。 UIGestureRecognizer子类及子类属性 除了UIGestureRecognizer中的方法和属性是所有子类通用的之外,UIGestureRecognizer子类中分别有不同的属性和方法来对应不同的手势 自定义手势 自定义手势继承:UIGestureRecognizer,实现下面的方法,在以下方法中判断自定义手势是否实现。

    3.2K50发布于 2018-05-10
  • 来自专栏云原生布道专栏

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

    后来,苹果就给出了一个比较简便的方式,就是使用UIGestureRecognizer。 2 UIGestureRecognizer         iOS系统在3.2以后,为方便开发这使用一些常用的手势,提供了UIGestureRecognizer类。 手势识别UIGestureRecognizer类是个抽象类,下面的子类是具体的手势,开发这可以直接使用这些手势识别。 :(UIGestureRecognizer *)otherGestureRecognizer {     return YES; } -(BOOL)gestureRecognizer:(UIGestureRecognizer UIGestureRecognizer是一个手势基类,提供了简单的手势实现方式。

    1.4K40编辑于 2023-10-16
  • 来自专栏日常技术分享

    ios 百度地图 获取拖动或缩放手势

    注意:加自定义手势时,必须设置UIGestureRecognizer的属性cancelsTouchesInView 和 delaysTouchesEnded 为NO,否则影响地图内部的手势处理。 addGestureRecognizer:mapPinchGesture]; /** 百度地图拖动手势 @param gesture 手势 */ - (void)mapPanGesture:(UIGestureRecognizer UIGestureRecognizerStateBegan) { } } /** 百度地图缩放手势 @param gesture 手势 */ - (void)mapPinchGesture:(UIGestureRecognizer

    1.9K30发布于 2018-10-12
  • 来自专栏大宇笔记

    Swift 几种动态判断类的方法

    拿手势冲突解决,举个例子 第一种:  OC之后常用的iskindof func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldReceive func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldReceive touch: UITouch) -> Bool return false } return true } 第三种:OC没有的语法 func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer

    2.9K20发布于 2019-01-15
  • 来自专栏iOS逆向与安全

    iOS 小技能:响应者链的事件传递过程、手势识别器的使用步骤、抽屉效果的实现

    【下篇】https://kunnan.blog.csdn.net/article/details/122811653 手势识别器 抽屉效果的实现 I 手势识别器 为了完成手势识别,必须借助于手势识别器UIGestureRecognizer 利用UIGestureRecognizer,能轻松识别用户在某个view上面做的一些常见手势。 of the run loop and the recognizer will be reset to UIGestureRecognizerStatePossible 识别到手势识别 }; 1、UIGestureRecognizer simultaneous recognition, as the other gesture's delegate may return YES - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer

    1.3K30编辑于 2022-08-22
  • 来自专栏LinXunFeng的专栏

    iOS - 实现UINavigation全屏滑动返回(二)

    ,在UIGestureRecognizer提供的方法中我们可以推断出一定有target,而且还是强引用的私有属性! 只能动态获取当前类的成员属性,不能获取其子类,或者父类的属性 unsigned int count = 0;// 拷贝出所胡的成员变量列表 Ivar *ivars = class_copyIvarList([UIGestureRecognizer ; // 打印成员变量的数据类型 NSLog(@"%s", ivar_getTypeEncoding(ivar)); } // 释放 free(ivars); 在打印中我们找到了UIGestureRecognizer = self; #pragma mark - UIGestureRecognizerDelegate// 当开始滑动时调用 - (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer self; } #pragma mark - UIGestureRecognizerDelegate // 当开始滑动时调用 - (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer

    1.6K40发布于 2018-06-29
  • 来自专栏iOS开发笔记

    iOS手势locationInView、translationInView的区别

    1 translationInView 是UIPanGestureRecognizer中的方法; locationInView是UIGestureRecognizer中的方法。 UIPanGestureRecognizer是继承与UIGestureRecognizer

    3.2K60发布于 2019-05-15
  • 来自专栏BY的专栏

    iOS手势与变形

    UIRotationGestureRecognizer(旋转) UILongPressGestureRecognizer(长按) ​UISwipeGestureRecognizer(轻扫) 这些手势大都继承于UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer //将要同时实现的手势设置代理 pinch.delegate = self; pinch.delegate = self; -(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer

    2.5K40发布于 2018-05-11
  • 来自专栏iOS122-移动混合开发研究院

    BlocksKit初见:一个支持将delegate转换成block的Cocoa库

    ; UITapGestureRecognizer *tapGestureRecognizer = [UITapGestureRecognizer bk_recognizerWithHandler:^(UIGestureRecognizer } }]; UIButton 和 UIGesture 将 target-action 转换成 block,实现较简单: - (id)bk_initWithHandler:(void (^)(UIGestureRecognizer self.bk_handler = block; self.bk_handlerDelay = delay; return self; } - (void)bk_handleAction:(UIGestureRecognizer *)recognizer { void (^handler)(UIGestureRecognizer *sender, UIGestureRecognizerState state, CGPoint

    1.6K100发布于 2018-01-02
  • 来自专栏零域Blog

    iOS手势与变形

    UIRotationGestureRecognizer(旋转) UILongPressGestureRecognizer(长按) ​UISwipeGestureRecognizer(轻扫) 这些手势大都继承于UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer //将要同时实现的手势设置代理 pinch.delegate = self; pinch.delegate = self; -(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer

    1.7K30编辑于 2022-03-22
  • 来自专栏ShaoYL

    iOS-控件响应用户控制事件之事件处理

    触摸事件,有很明显的几个缺点 1.必须得自定义view 由于是在view内部的touches方法中监听触摸事件,因此默认情况下,无法让其他外界对象监听view的触摸事件 不容易区分用户的具体手势行为 UIGestureRecognizer 为了完成手势识别,借助于手势识别器----UIGestureRecognizer 利用UIGestureRecognizer,能轻松识别用户在某个view上面做的一些常见手势 UIGestureRecognizer

    1.4K70发布于 2018-05-11
  • 来自专栏iOS逆向与安全

    iOS右滑返回的实现(interactivePopGestureRecognizer)

    UIGestureRecognizerDelegate //这个方法是在手势将要激活前调用:返回YES允许右滑手势的激活,返回NO不允许右滑手势的激活 - (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer gestureRecognizerShouldBegin 这个方法是在手势将要激活前调用:返回YES允许右滑手势的激活,返回NO不允许右滑手势的激活 - (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer return YES; } iOS 13.4 开始会优先询问shouldReceiveEvent方法,只有返回 YES 后才会继续后续的逻辑 - (BOOL)_gestureRecognizer:(UIGestureRecognizer

    3.9K20发布于 2021-07-29
  • 来自专栏iOS逆向与安全

    iOS右滑返回的实现【修订】

    UIGestureRecognizerDelegate //这个方法是在手势将要激活前调用:返回YES允许右滑手势的激活,返回NO不允许右滑手势的激活 - (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer gestureRecognizerShouldBegin 这个方法是在手势将要激活前调用:返回YES允许右滑手势的激活,返回NO不允许右滑手势的激活 - (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer return YES; } iOS 13.4 开始会优先询问shouldReceiveEvent方法,只有返回 YES 后才会继续后续的逻辑 - (BOOL)_gestureRecognizer:(UIGestureRecognizer

    2.1K20发布于 2021-08-25
  • 来自专栏iOS技术

    iOS 多个scrollview联动(附DEMO)

    最佳方案: 首先我们来了解一个UIGestureRecognizerDelegate协议拟定的方法: - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer; 这个方法的作用大致可以理解为是否允许手势穿透

    2.7K70发布于 2018-05-07
  • 来自专栏肘子的Swift记事本

    解析 SwiftUI 中两处由状态更新滞后引发的严重 Bug

    public func gestureRecognizerShouldBegin(_: UIGestureRecognizer) -> Bool { viewControllers.count public func gestureRecognizer(_: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith _: UIGestureRecognizer begins (my TabView scrolled together with screen swiping back) public func gestureRecognizer(_: UIGestureRecognizer , shouldBeRequiredToFailBy _: UIGestureRecognizer) -> Bool { viewControllers.count > 1 }}图片这个问题已经在

    4.5K110编辑于 2023-09-01
  • 来自专栏iOS开发攻城狮的集散地

    iOS 全屏侧滑手势/UIScrollView/UISlider间滑动手势冲突

    UIScrollView的类别UIScrollView+GestureConflict,重写如下方法: //处理UIScrollView上的手势和侧滑返回手势的冲突 -(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer mark -- UIGestureRecognizerDelegate //触发之后是否响应手势事件 //处理侧滑返回与UISlider的拖动手势冲突 - (BOOL)gestureRecognizer:(UIGestureRecognizer

    4.7K20发布于 2018-08-27
领券