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

在创建UIGestureRecognizer时,为什么它的操作使用#选择器?

在创建UIGestureRecognizer时,它的操作使用#选择器是因为#选择器可以方便地将手势识别器与特定的方法关联起来。#选择器是一种在Objective-C中使用的语法,用于指定一个方法的名称。通过使用#选择器,我们可以将手势识别器与我们自定义的方法进行绑定,当手势被触发时,系统会自动调用该方法。

使用#选择器的优势在于它提供了一种简洁而直观的方式来处理手势识别器的操作。通过将操作与特定的方法关联起来,我们可以在方法中编写相应的逻辑来处理手势的触发事件。这样,我们可以轻松地实现各种手势的响应,例如点击、拖动、缩放等。

在iOS开发中,UIGestureRecognizer是一个抽象基类,用于处理各种手势的识别和处理。它有多个子类,每个子类对应一种具体的手势,例如UITapGestureRecognizer、UIPanGestureRecognizer等。当我们创建一个手势识别器时,需要指定一个目标对象和一个方法来处理手势的触发事件。这个方法就是通过#选择器来指定的。

以下是一个示例代码,展示了如何使用#选择器创建一个UITapGestureRecognizer手势识别器,并将其与一个方法进行关联:

代码语言:swift
复制
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(handleTap(_:)))

@objc func handleTap(_ gesture: UITapGestureRecognizer) {
    // 处理手势触发事件的逻辑
}

在上述代码中,我们创建了一个UITapGestureRecognizer手势识别器,并将其与名为handleTap的方法进行关联。当手势被触发时,系统会自动调用handleTap方法,并将手势对象作为参数传递给该方法。

推荐的腾讯云相关产品:腾讯云移动应用分析(MTA),该产品提供了一套全面的移动应用数据分析解决方案,可帮助开发者深入了解用户行为、应用性能等信息,从而优化应用体验和运营策略。产品介绍链接地址:https://cloud.tencent.com/product/mta

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

相关·内容

浅谈django中使用filter()(即对QuerySet操作)

例1中不要尝试通过message.save()方式去同步数据到数据库,因为QuerySet不存在save()方法。 正确写法如下: 要想同步到数据库中,需使用对象进行数据同步操作。...没有符合条件时候: get会报错 Book matching query does not exist. filter则返回一个空列表,并不会报错....: filter字段类型为int时候,输入参数却是str时候会报错: invalid literal for int() with base 10: ‘Yu’ 使用get时候,错误信息与上面...但是可以使用[0]可以获取符合过滤条件第一个值, 解决办法,使用save(): book_info = Book.objects.filter(id=book_id, request_type=2)....中使用filter()(即对QuerySet操作)坑就是小编分享给大家全部内容了,希望能给大家一个参考。

4.3K10
  • iOS 中事件响应

    优先级 当我们一个添加了手势UIResponder上执行非连续双击操作,触发回调消息如下表所示。...手势之间依赖关系 当触摸事件发生,哪个 UIGestureRecognizer 先收到这个事件并没有固定顺序,我们可以使用UIGestureRecognizer 提供方法来控制它们之间顺序和相互关系...: UITouch) -> Bool 上述两个方法都是用来决定是否允许 UIGestureRecognizer 响应触摸事件,区别在于当触摸事件发生使用第一个方法可以立即控制 UIGestureRecognizer...是否对其处理,且不会修改 UIGestureRecognizer 状态机;(时机 手势touchesBegan前) 使用二个方法会等待一段时间, UIGestureRecognizer 识别手势转换状态时调用...delegate ,我们可以使用这个方法来使 UIGestureRecognizer 失效。

    2.7K11

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

    一、概念介绍 UIGestureRecognizer是一个抽象类,定义了所有手势基本行为,使用子类才能处理具体手势 UITapGestureRecognizer(轻触,点按) UILongPressGestureRecognizer...只有识别失败之后才会将触摸事件发给触摸到控件,这种情况下控件view响应会延迟约0.15ms。...: 1、 开始进行手势识别时调用方法,返回NO则结束识别,不再触发手势,用处:可以控件指定位置使用手势识别 - (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer...*)gestureRecognizer; 2、手指触摸屏幕后回调方法,返回NO则不再进行手势识别,方法触发等 此方法window对象在有触摸事件发生,调用gesture recognizer...; 5、下面这个两个方法也是用来控制手势互斥执行 (1) 这个方法返回YES,第一个手势和第二个互斥,第一个会失效 - (BOOL)gestureRecognizer:(UIGestureRecognizer

    3K81

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

    iOS开发中手势体系——UIGestureRecognizer分析及其子类使用 一、引言         iOS系统中,手势是进行用户交互重要方式,通过UIGestureRecognizer类,...我们可以轻松创建出各种手势应用于app中。...二、手势抽象类——UIGestureRecognizer         UIGestureRecognizer将一些和手势操作相关方法抽象了出来,但它本身并不实现什么手势,因此,开发中,我们一般不会直接使用... *)ges{     NSLog(@"第一个手势触发方法"); } 上面我们使用了拖拽手势和touchesMoved两个触发方式,当我们把cancelTouchesInView设置为NO屏幕上滑动...第二个手势触发方法");           } 我们添加两个手势都是单机手势,会产生冲突,触发是很随机,如果我们想设置一下当手势互斥要优先触发手势,可以使用如下方法: - (void)requireGestureRecognizerToFail

    1.9K20

    手势抽象类——UIGestureRecognizer三. UIGestureRecogni

    利用UIGestureRecognizer,能轻松识别用户某个view上面做一些常见手势。...UIGestureRecognizer是一个抽象类,对iOS中事件传递机制面向应用进行封装,将手势消息传递抽象为了对象。其中定义了所有手势基本行为,使用子类才能处理具体手势。 二....手势抽象类——UIGestureRecognizer UIGestureRecognizer将一些和手势操作相关方法抽象了出来,但它本身并不实现什么手势,因此,开发中,我们一般不会直接使用UIGestureRecognizer...初始化方法 UIGestureRecognizer类为其子类准备好了一个统一初始化方法,无论什么样手势动作,其执行结果都是一样:触发一个方法,可以使用下面的方法进行统一初始化: - (instancetype...设置为NO屏幕上滑动,两种方式都在触发,打印如下: ?

    2.5K50

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

    1 touchesBegan手势         iPhone中处理触摸屏操作3.2之前是主要使用是由UIResponder而来的如下4种方式:     - (void)touchesBegan...2 UIGestureRecognizer         iOS系统3.2以后,为方便开发这使用一些常用手势,提供了UIGestureRecognizer类。...继承关系如下: 2.1 使用手势步骤         使用手势很简单,分为两步:         创建手势实例。...当创建手势,指定一个回调方法,当手势开始,改变、或结束,回调方法被调用。         添加到需要识别的View中。...缩放和旋转有点问题,估计是因为模拟器上模拟两个接触点距离imageView边界外了,所以操作无效果。建议真机上运行这个手势。

    47440

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

    原文发表博客 肘子Swift记事本视图变化在前、状态变化在后 SwiftUI 中,某些可编程控件执行一定操作,会先更新视图,待视图变化完成后再修改与其对应状态。...复现条件非常简单:真机上测试( 模拟器上不容易复现 )点击 “GO” 按钮进入下一层视图点击 “Show Sheet” 按钮弹出 Sheet通过下滑手势取消 Sheet Sheet 取消后(动画结束...SheetDetailView 代码后,我们不再使用手势来取消 Sheet,而是通过点击 “Dismiss” 按钮来实现这一操作。...复现条件如下:iOS 16 系统,真机或模拟器上测试点击视图列表中按钮,可以进入下一级视图。...我们遇到问题两个场景中,应用程序都恰好使用了导航容器,并且通过特定操作,使 RunLoop 处于了适合 AG 打包更新状态。

    707110

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

    视图变化在前、状态变化在后 SwiftUI 中,某些可编程控件执行一定操作,会先更新视图,待视图变化完成后再修改与其对应状态。这些控件基本上都是对 UIkit(AppKit)二次包装。...如果仅从上述两个例子考虑,无论状态调整是否及时,都不会出现什么错误结果。但是,当应用程序处于某些特殊状态或用户进行某些特定操作,状态更新滞后会导致不可接受后果。...SheetDetailView 代码后,我们不再使用手势来取消 Sheet,而是通过点击 “Dismiss” 按钮来实现这一操作。...复现条件如下: iOS 16 系统,真机或模拟器上测试 点击视图列表中按钮,可以进入下一级视图。...我们遇到问题两个场景中,应用程序都恰好使用了导航容器,并且通过特定操作,使 RunLoop 处于了适合 AG 打包更新状态。

    34620

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

    回顾 iOS - 实现UINavigation全屏滑�动返回(一) 中我们实现了滑动返回功能,但不是全屏滑动返回,得左侧边缘轻扫才能滑动返回~UINavigationController自带只能在边缘轻扫才能滑动返回...思路 既然自带滑动返回只能是边缘,那我们能不能修改使触摸范围变大甚至全屏呢?...action:@selector(handleNavigationTransition:)]; [self.view addGestureRecognizer:pan]; 添加一个拖动手势,让他执行系统手势操作...,UIGestureRecognizer提供方法中我们可以推断出一定有target,而且还是强引用私有属性!...向右滑动,接着点击Button 如图所示,最后里回到根控制器界面后我再一次向右滑动,接着点击Button,没有将FirstVC弹出,这就是传说中bug,那我们现在在做,就是根控制器不让滑动返回生效

    1.3K40

    iOS14开发-触摸与手势识别

    属性 (1)window:触摸所处 UIWindow。 (2)view:触摸所处 UIView。 (3)tapCount:短时间内点按屏幕次数。可据此判断单击和双击操作。...-> CGPoint UIEvent 一个完整触摸操作是一个 UIEvent,包含一组相关 UITouch 对象,可以通过 UIEvent allTouches属性获得 UITouch 集合。...遍历每一个子 UIView ,都会重复上面的操作(判断能否响应触摸事件,能则继续遍历子 UIView,直到找到一个 UIView)直到找到最合适 UIView。...使用步骤 创建手势实例,指定回调方法,当手势开始,改变、或结束,回调方法被调用。 将手势添加到需要 UIView 上。...每个手势只对应一个 UIView,当屏幕触摸在当前 UIView 里,如果手势和预定一样,回调方法就会调用。 手势可以通过 storyboard 或者纯代码使用

    2.3K20

    iOS中手势应用1. 四类事件主要方法2. 响应者链3. 手势识别功能(Gesture Recognizer)4. 手势使用

    iOS设备现如今大受欢迎最重要原因之一就在于其开创了触控操作潮流。发展到现在,无论是Android还是iPhone,现在APP与用户进行交互,基本上都是依赖于各种各样触控事件。...系统这里原则其实是越具体越好,也就是干活肯定是最小那个小兵兵。要是什么事情都让UIApplication或者UIWindow干,还不让两儿累死啊,那系统效率要低成神马样子。...- iOS 3.2之后,苹果推出了手势识别功能(Gesture Recognizer),触摸事件处理方面,大大简化了开发者开发难度 3.1手势识别器(UIGestureRecognizer) 为了完成手势识别...,必须借助于手势识别器——UIGestureRecognizer 利用UIGestureRecognizer,能轻松识别用户某个view上面做一些常见手势 UIGestureRecognizer是一个抽象类...使用步骤如下: //创建手势识别器对象 UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] init]; //设置手势识别器对象具体属性

    2.3K40

    iOS_38_手势

    UITouch对象实时更新 一个UITouch对象,相应一根手指,记录着触摸全部信息 重要~常常使用UITouch方法,取得触摸信息(如位置、所点对象) 事件对象UIEvent...,经常使用属性是:事件类型 触摸四个方法(即过程)具体解释:注意同一候和一前一后触摸情况 必须先找到事件最合适响应者(从父到子地找) 以下是寻找最合适事件响应者详细样例:...NEXT RESPONDER) 传统监听事件做法:(不再推荐使用) 六种手势识别器,后面会详细举例: 假设要同一候监听两种以上手势: 为每个手势设置delegate,而且实现以下方法...:(UIGestureRecognizer *) 手势识别器标准做法:三步曲(创建、设置、绑定) 重点关注三种手势识别的状态:開始\结束\取消 官方文档中关于手势识别的状态变化图...Tap手势识别器对象,同一候绑定监听方法(识别到了相应手势,就会调用监听方法) UIGestureRecognizer *tap = [[UITapGestureRecognizer alloc

    92720

    iOS右滑返回实现(interactivePopGestureRecognizer)

    引言 原理:利用系统返回手势interactivePopGestureRecognizer进行实现 使用场景:返回按钮有点小,不好触发返回,可借助右滑返回来提升用户体验 ?...,返回NO不允许右滑手势激活 - (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer { if...,返回NO不允许右滑手势激活 - (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer { if...,发生当前不可以手势返回,可先检查为什么当前状态,系统不允许你手势返回,例如是否隐藏了 navigationBar,或者隐藏了系统返回按钮?...方法将手势返回强制加回来 2.3 动态添加方法 使用场景: 消息发送和消息转发时会用到动态添加方法 全局控制返回手势 下面的+addMethod方法有三个参数,第一个参数是要添加方法类,第二个参数是方法

    3.2K20

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

    项目中遇到一个问题,拖动或者缩放百度地图时候要请求数据。但是百度地图SDK中没有明确如何获取拖动和缩放手势 官方推荐使用如下两个方法,通过判断状态来获取,但是也没有明确怎么判断。...还有个问题就是如果在regionDidChangeAnimated请求数据的话,产品还有个需百度地图中心点以最新一条数据经纬度移动。...animated 是否动画 */ - (void)mapView:(BMKMapView *)mapView regionDidChangeAnimated:(BOOL)animated; 这里推荐使用自定义手势来判断...注意:加自定义手势,必须设置UIGestureRecognizer属性cancelsTouchesInView 和 delaysTouchesEnded 为NO,否则影响地图内部手势处理。...addGestureRecognizer:mapPinchGesture]; /** 百度地图拖动手势 @param gesture 手势 */ - (void)mapPanGesture:(UIGestureRecognizer

    1.5K30

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

    利用UIGestureRecognizer,能轻松识别用户某个view上面做一些常见手势。...是一个抽象类,定义了所有手势基本行为,使用子类才能处理具体手势 子类: UITapGestureRecognizer(敲击) UIPinchGestureRecognizer(捏合,用于缩放)...UIRotationGestureRecognizer(旋转) UILongPressGestureRecognizer(长按) 2、 UITapGestureRecognizer 1.2 手势识别器使用步骤...每一个手势识别器用法都差不多,比如UITapGestureRecognizer使用步骤: //创建手势识别器对象 UITapGestureRecognizer *tap = [[UITapGestureRecognizer...:@selector(tapIconView:)]; 1.3 手势识别器使用 // #import "ViewController.h" @interface ViewController

    89230
    领券