iOS 之UITapGestureRecognizer活学活用

【手势识别-UITapGestureRecognizer敲击 Objective-C语言】 阅读详情

一、从零开始创建项目

1.为了大家方便理解,我们从一个空项目开始创建


2.项目的配置情况如下,可以根据自己随意调整


3. 因为我们创建的是新项目,除了一个ILAppDelegate什么都没有


4.正常情况下我们会创建一个根RootViewController,然后通过Controller控制视图的显示逻辑,这里只是一个练习,我们尝试一下新的作法,不要MVC模型了


没有Controller.....

5.我们在屏幕上看到的就是IOS的视图,所有的可显示组件都是UIView的子类(底层的先不考虑)包括UIWindow,其中UIWindow的一个方法

[cpp]  view plain copy
  1. - (void)makeKeyAndVisible;   


官方给的解释如下:
convenience. most apps call this to show the main window and also make it key.
所以我们要做的就是创建一系列的视图并把这些视图加入到一个UIWindow中,最后将UIWindow显示到屏幕上

思路有了,下一步就是具体的实现


在ILTapWindow.m中实现如下代码

[objc]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. - (id)initWithFrame:(CGRect)frame  
  2. {  
  3.     self = [super initWithFrame:frame];  
  4.     if (self) {  
  5.         [self doInit];  
  6.     }  
  7.     return self;  
  8. }  
  9.   
  10. - (void)doInit  
  11. {  
  12.     //创建一个测试的View,我们将手势添加到这个绿色的View上  
  13.     UIView *greenView = [[UIView alloc] initWithFrame:self.bounds];  
  14.     greenView.backgroundColor = [UIColor greenColor];  
  15.     //将greenView添加到当前window上  
  16.     [self addSubview:greenView];  
  17.       
  18.     //创建一个Tap手势  
  19.     UITapGestureRecognizer *gesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];  
  20.     //将手势添加到greenView上,这样才将手势与view关联起来  
  21.     [greenView addGestureRecognizer:gesture];  
  22. }  
  23.   
  24. - (void)handleTap:(UITapGestureRecognizer *)gesture  
  25. {  
  26.     //我们获取gesture关联的view,并将view的类名打印出来  
  27.     NSString *className = NSStringFromClass([gesture.view class]);  
  28.     NSLog(@"您点击了%@", className);  
  29. }  



这样我们就将视图及手势相关逻辑处理好了,下一步我们要将ILTapWindow显示在屏幕上,回到ILAppDelegate.m的入口方法

[objc]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions  
  2. {  
  3.     self.window = [[ILTapWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];  
  4.     [self.window makeKeyAndVisible];  
  5.     return YES;  
  6. }  



6.所有逻辑基本都写好了,我们点击运行一下吧(项目下载地址: http://git.oschina.net/green/ILTapGestureRecognizer/repository/archive?ref=第一部分 )



二、通过附加透明View实现区域性识别方法

1.看起来好像没有什么难度,大体思路不就是把UITapGestureRecognizer加到UIView中。事实确实是这样的,可问题又来了,如果我想将手势添加到绿色视图的下半部分


2.思考了一会儿,好像确实不那么好处理


但是这点可难不到我广大程序员,于是Baidu Google,后给出一个答案,添加一个透明的UIView,将UITapGestureRecognizer添加到这个透明的UIView不就可以了


面包和馒头都会有的

3.动手实现

[objc]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. @implementation ILTapWindow  
  2.   
  3. - (id)initWithFrame:(CGRect)frame  
  4. {  
  5.     self = [super initWithFrame:frame];  
  6.     if (self) {  
  7.         [self doInit];  
  8.     }  
  9.     return self;  
  10. }  
  11.   
  12. - (void)doInit  
  13. {  
  14.     //创建一个测试的View,我们将手势添加到这个绿色的View上  
  15.     UIView *greenView = [[UIView alloc] initWithFrame:self.bounds];  
  16.     greenView.backgroundColor = [UIColor greenColor];  
  17.     //将greenView添加到当前window上  
  18.     [self addSubview:greenView];  
  19.     CGRect bounds= greenView.bounds;  
  20.     CGRect tapArea = CGRectMake(0, CGRectGetHeight(bounds) / 2, CGRectGetWidth(bounds), CGRectGetHeight(bounds));  
  21.     [self addGestureArea:tapArea forView:greenView];  
  22.      
  23. }  
  24.   
  25. - (void)addGestureArea:(CGRect)frame forView:(UIView *)view  
  26. {  
  27.     UIView *gestureView = [[UIView alloc] initWithFrame:frame];  
  28.     //此处将设置为[UIColor clearColor]UIView会变为透明,这里为了测试方便把color设为红色  
  29.     gestureView.backgroundColor = [UIColor redColor];  
  30.     //创建一个Tap手势  
  31.     UITapGestureRecognizer *gesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];  
  32.     //将手势添加到greenView上,这样才将手势与view关联起来  
  33.     [gestureView addGestureRecognizer:gesture];  
  34.       
  35.     [view addSubview:gestureView];  
  36.       
  37. }  
  38.   
  39. - (void)handleTap:(UITapGestureRecognizer *)gesture  
  40. {  
  41.     //我们获取gesture关联的view,并将view的类名打印出来  
  42.     NSString *className = NSStringFromClass([gesture.view class]);  
  43.     NSLog(@"您点击了%@", className);  
  44. }  
  45.   
  46. @end  



执行一下(项目下载地址  http://git.oschina.net/green/ILTapGestureRecognizer/repository/archive?ref=第二部分 )


4.需求总是再变的,一天设计师要求点击屏幕,在上方推出工具条,再次点击屏幕隐藏工具条,快速实现一下:

[objc]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. #import "ILTapWindow.h"  
  2. #define TOOLS_VIEW_HEIGHT (44 + 10)  
  3.   
  4. @interface ILTapWindow ()  
  5. //用于保存工具条的指针  
  6. @property (weak, nonatomic) UIView *toolsBar;  
  7. @end  
  8.   
  9. @implementation ILTapWindow  
  10.   
  11. - (id)initWithFrame:(CGRect)frame  
  12. {  
  13.     self = [super initWithFrame:frame];  
  14.     if (self) {  
  15.         [self doInit];  
  16.     }  
  17.     return self;  
  18. }  
  19.   
  20. - (void)doInit  
  21. {  
  22.     [self configBackgroundView];  
  23.     [self configToolsBar];  
  24.       
  25. }  
  26.   
  27. - (void)configBackgroundView  
  28. {  
  29.     //创建一个测试的View,我们将手势添加到这个绿色的View上  
  30.     UIView *greenView = [[UIView alloc] initWithFrame:self.bounds];  
  31.     greenView.backgroundColor = [UIColor greenColor];  
  32.     //将greenView添加到当前window上  
  33.     [self addSubview:greenView];  
  34.     [self addGestureArea:greenView.bounds forView:greenView];  
  35. }  
  36.   
  37. - (void)configToolsBar  
  38. {  
  39.     CGRect frame = CGRectMake(0, -TOOLS_VIEW_HEIGHT, CGRectGetWidth(self.frame), TOOLS_VIEW_HEIGHT);  
  40.     UIView *tools = [[UIView alloc] initWithFrame:frame];  
  41.     tools.backgroundColor = [UIColor yellowColor];  
  42.     [self addSubview:tools];  
  43.     UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];  
  44.     button.backgroundColor = [UIColor blueColor];  
  45.     button.frame = CGRectMake(10, 10, 40, 40);  
  46.     [button setTitle:@"打印" forState:UIControlStateNormal];  
  47.     [button addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];  
  48.     [tools addSubview:button];  
  49.     self.toolsBar = tools;  
  50. }  
  51.   
  52. - (void)buttonPressed:(UIButton *)button  
  53. {  
  54.     NSLog(@"=============点击了Button==============");  
  55.       
  56. }  
  57.   
  58. - (void)showToolsBar:(BOOL)show  
  59. {  
  60.     CGRect frame = self.toolsBar.frame;  
  61.     frame.origin.y = show ? 0 : -TOOLS_VIEW_HEIGHT;  
  62.     [UIView animateWithDuration:0.3 animations:^{  
  63.         self.toolsBar.frame = frame;  
  64.     }];  
  65. }  
  66.   
  67.   
  68. - (void)addGestureArea:(CGRect)frame forView:(UIView *)view  
  69. {  
  70.     UIView *gestureView = [[UIView alloc] initWithFrame:frame];  
  71.     gestureView.backgroundColor = [UIColor clearColor];  
  72.     //创建一个Tap手势  
  73.     UITapGestureRecognizer *gesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];  
  74.     //将手势添加到greenView上,这样才将手势与view关联起来  
  75.     gesture.cancelsTouchesInView = NO;  
  76.     gesture.delaysTouchesBegan = YES;  
  77.     [gestureView addGestureRecognizer:gesture];  
  78.       
  79.     [view addSubview:gestureView];  
  80.       
  81. }  
  82.   
  83. - (BOOL)isToolsBarShow  
  84. {  
  85.     //在ios中CGFloat做了优化,是可以直接用==来进行比较,C++不可以  
  86.     return self.toolsBar.frame.origin.y == 0;  
  87. }  
  88.   
  89. - (void)handleTap:(UITapGestureRecognizer *)gesture  
  90. {  
  91.     NSLog(@"================点击了屏幕,显隐工具条=========================");  
  92.     if (self.isToolsBarShow) {  
  93.         [self showToolsBar:NO];  
  94.     } else {  
  95.         [self showToolsBar:YES];  
  96.     }  
  97.       
  98. }  
  99.   
  100. @end  


结果正如我们希望的那样,点击屏幕显示工具条,再次点击屏幕隐藏工具条。当工具条显示时,我们点击工具条,没有触发手势的点击事件。可是事与愿为,真实的情况并不是这样的,这次我们为了简便直接使用了UIWindow的方法显示UIView,通常情况下,我们的视图的控制是交给UIViewController来处理的,在使用UIViewController的时候,如果工具条是在显示状态时,我们点击工具条也会触发手势点击事件,这个留给大家去测试了,代码只需要稍微修改就能测试出来。(工具条部分下载地址:http://git.oschina.net/green/ILTapGestureRecognizer/repository/archive?ref=第二部分-工具条)

三、通过委托实现区域性识别

1.我们知道通过附加透明UIView的方法并不是总起作用,虽然在本次示例中没有问题,但是通过UIViewController管理视图时,就会出现视图穿透的效果,即在底层UIView加了手势,点击上面的UIView也会触发点击手势事件,这并不是我们想要的结果。在另一方面,附加透明UIView的做法在一些情况下,如不想中间区域响应手势点击。这样的话,就得加多个透明的UIView才能实现,有没有更好的方法吗?

我们新建一个类,继承如下:


ILTapGestureRecognizer代码如下:

[objc]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. @interface ILTapGestureRecognizer : UITapGestureRecognizer  
  2.   
  3. @property (unsafe_unretained, nonatomic)CGRect responseFrame;  
  4.   
  5. @end  
  6. ///////////////////////////////////////////////////////////////////  
  7. @interface ILTapGestureRecognizer () <UIGestureRecognizerDelegate>  
  8.   
  9. @end  
  10.   
  11. @implementation ILTapGestureRecognizer  
  12.   
  13. - (id)initWithTarget:(id)target action:(SEL)action  
  14. {  
  15.     self = [super initWithTarget:target action:action];  
  16.     if (self) {  
  17.         self.delegate = self;  
  18.     }  
  19.     return self;  
  20. }  
  21.   
  22. - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch  
  23. {  
  24.     //获取点击坐标  
  25.     CGPoint pointPosition = [touch locationInView:gestureRecognizer.view];  
  26.     if (CGRectContainsPoint(self.responseFrame, pointPosition)) {  
  27.         return YES;  
  28.     }  
  29.     return NO;  
  30. }  
  31.   
  32.   
  33. @end  



当然ILWindow.m文件也需要修改一下

[objc]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. @interface ILTapWindow ()  
  2. @end  
  3.   
  4. @implementation ILTapWindow  
  5.   
  6. - (id)initWithFrame:(CGRect)frame  
  7. {  
  8.     self = [super initWithFrame:frame];  
  9.     if (self) {  
  10.         [self doInit];  
  11.     }  
  12.     return self;  
  13. }  
  14.   
  15. - (void)doInit  
  16. {  
  17.     //创建一个测试的View,我们将手势添加到这个绿色的View上  
  18.     UIView *greenView = [[UIView alloc] initWithFrame:self.bounds];  
  19.     greenView.backgroundColor = [UIColor greenColor];  
  20.     //将greenView添加到当前window上  
  21.     [self addSubview:greenView];  
  22.       
  23.     ILTapGestureRecognizer *gesture = [[ILTapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];  
  24.     CGRect bounds= greenView.bounds;  
  25.     CGRect tapArea = CGRectMake(0, CGRectGetHeight(bounds) / 2, CGRectGetWidth(bounds), CGRectGetHeight(bounds));  
  26.     gesture.responseFrame = tapArea;  
  27.       
  28.     [greenView addGestureRecognizer:gesture];  
  29. }  
  30.   
  31. - (void)handleTap:(UITapGestureRecognizer *)gesture  
  32. {  
  33.     //我们获取gesture关联的view,并将view的类名打印出来  
  34.     NSString *className = NSStringFromClass([gesture.view class]);  
  35.     NSLog(@"您点击了%@", className);  
  36. }  
  37.   
  38.   
  39. @end  



2.实现原理

通过UIGestureRecognizerDelegate的接口

[cpp]  view plain copy
  1. - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch;  



来决定是否响应手势的点击事件,官方解释如下:

called before touchesBegan:withEvent: is called on the gesture recognizer for a new touch. return NO to prevent the gesture recognizer from seeing this touch

至此点击手势我们就全部学习完了,在项目开发中,我们经常会遇到“三、通过委托实现区域性识别”,这里给的示例比较简单,项目中可能很复杂,我们可以通过定制ILTapGestureRecognizer来实现更加复杂的功能

iOS 手势识别与操作 UIGestureRecognizer 1.UIGestureRecognizer 2.注意事项 3.TapGesture 4.PinchGesture 5.RotationGesture 仿iPhone相册图片捏合旋转 6.SwipeGesture 7.PanGesture 8.LongPressGesture 9.手势的依赖 阅读详情

相关推荐

UIGestureRecognizer手势识别详解

iOS应用开发过程,合理的使用手势识别功能来响应用户的操作,能够很好提升用户体验,为App增色。下面对UIGestureRecognizer手势进行一个比较全面的描述:      1、UIGestureRecognizer介绍            UIGestureRecognizer是手势识别的一个抽象类,没法直接使用。好心的苹果大神们已经为我们实现了常用的一些手势识别子类,具体列表如下:

2594

iOS-UIGestureRecognizer详解-原理篇

前言 本文主要内容如下: 1. UIGestureRecognizer 属性、方法、代理和七个子类详解。 2. 讲讲 UIGestureRecognizer 和 UITouch 事件的关系。 3. 讲讲如何自定义手势? 一、手势识别器-UIGestureRecognizer 1.1 简介 UIGestureRecognizer是苹果在iOS 3.2之后,推出的手势识别功能。UIGes...

努力,可能成功!放弃,注定失败! 4472

iOS手势识别器(UIGestureRecognizer)编程详解

除了轻点手势识别器外,iOS还提供了其他常见的手势识别器,如拖动手势识别器(UIPanGestureRecognizer)、捏合手势识别器(UIPinchGestureRecognizer)、旋转手势识别器(UIRotationGestureRecognizer)等。在上述示例中,我们演示了如何添加手势识别器、实现手势事件处理方法,并介绍了常见的手势识别器和多手势识别的用法。在上述示例中,我们同时添加了拖动手势识别器和旋转手势识别器,并分别设置了它们的目标和动作。首先,我们需要在视图上添加手势识别器。

TechBurst的博客 372

UIGestureRecognizer(基础)

UIGestureRecognizer(基础)

路漫漫其修远兮,吾将上下而求索! 1994

用Verilog手把手教你搭建一个5级流水线的MIPS CPU(附完整代码与仿真)

本文详细介绍了如何使用Verilog从零构建一个5级流水线的MIPS处理器,包括开发环境配置、核心模块实现、流水线冲突处理等关键技术。通过完整的代码示例和仿真方法,帮助读者掌握CPU设计的基本原理和实践技巧,特别适合想要入门处理器设计的工程师和学习者。

weixin_30613727的博客 461

VC Spyglass实战指南:从零开始掌握CDC约束配置与调试

本文详细介绍了如何使用VC Spyglass进行CDC约束配置与调试,从基础环境搭建到典型CDC问题调试实战,帮助开发者快速掌握跨时钟域验证技术。通过TCL脚本和SDC约束的深度解析,提升CDC验证效率,避免常见设计风险。

weixin_26757925的博客 294

IOS高级教程3:UITapGestureRecognizer手势识别的简单使用到精通

一、从零开始创建项目     1.为了大家方便理解,我们从一个空项目开始创建2.项目的配置情况如下,可以根据自己随意调整3. 因为我们创建的是新项目,除了一个ILAppDelegate什么都没有 4.正常情况下我们会创建一个根RootViewController,然后通过Controller控制视图的显示逻辑,这里只是一个练习,我们尝试一下新的作法,不要MVC模型了

北上龙之 3617

形式化方法(Formal Methods)和人工智能(Artificial Intelligence)

一、形式化方法(Formal Methods) ​ 形式化方法最初应用在硬件上,验证硬件的正确性,后面逐渐应用到软件编程中,能够在软件中找到软件的错误,验证软件的安全可靠。形式化方法更加接近离散数学,所以其应用难度非常大,同时学习成本也较高。再加上形式化方法的大多数理论还停留在上个世纪,由于程序越来越复杂,导致形式化方法进行验证需要大量人工和时间,以至于现在绝大部分软件开发人员完全没有考虑过这个方法,甚至没有听说过这个名词。 ​ 形式化方法最新的应用成果是在工业上,比如一些极其重要且对安全性要求极高的领域(

qq_37030400的博客 4004

iOS手势篇(十)-UITapGestureRecognizer详解

UITapGestureRecognizer是iOS开发(TVOS)开发中常用的一个轻触手势.和其他手势不一样的是.UITapGestureRecognizer手势是唯一的一个离散的手势.只有识别成功.识别结束.没有值改变等状态. 按照苹果推荐的做法.我们应该在手势结束的时候去做操作.不过基本上我们使用的时候就是直接执行.没有判断状态 /// 苹果推荐的方式 - (void)handleTap:(...

MeteoriteMan的博客 3740

Unity动画状态机实战:Trigger和Bool参数到底怎么选?附5个常见场景解析

本文深入解析Unity动画状态机中Trigger和Bool参数的核心差异与应用场景。通过对比两者在描述瞬时事件与持续状态上的本质区别,并结合角色移动、攻击连招、跳跃落地、受击死亡及环境交互等5个实战场景,提供了清晰的选择逻辑与避坑指南,帮助开发者构建更健壮、易维护的动画逻辑。

weixin_29009501的博客 120

伺服系统控制原理深度解析

摘要:本文系统阐述了伺服系统的控制原理与应用。首先介绍了伺服系统的定义、组成及其在工业自动化中的重要性;然后详细分析了反馈控制机制、稳定性判据和性能指标;重点推导了传递函数和状态空间两种数学模型,并通过LaTeX公式展示了二阶系统建模过程;进而对比了PID控制、状态反馈及自适应控制等方法的优缺点;最后结合数控机床等案例,验证了理论方法的有效性,并展望了伺服系统智能化发展趋势。全文兼顾理论深度与实践指导性,为控制工程领域提供了系统的技术参考。

技术工作者 1264

iOS 手势UIGestureRecognizer详解

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

Rey的技术博客 2661

RDkit入门

今天开始写RDkit的入门教程,每天学习和写一小点,相信一句话“不积跬步无以至千里,不积小流无以成江海”,所以就慢慢来,一点一滴积累叭,从最简单的开始喽希望自己每天都能保持写博客的好习惯,把自己的代码笔记就极在这里,RDkit一块啃了很久的骨头,今天终于要下定决心,好好总结一波了,希望保持这个更新的频率,每天都能有所学。............

博客而已 6682

UITapGestureRecognizer

UIGestureRecognizer是一个抽象类,定义了所有手势的基本行为,它有6个子类处理具体的手势: 1.UITapGestureRecognizer (任意手指任意次数的点击) // 点击次数 numberOfTapsRequired // 手指个数 numberOfTouchesRequired        [plai

pingqingbo的专栏 760

基于江协科技STM32创建HAL库工程模板

基于江协科技STM32入门教程创建的HAL库工程模板

2401_82728381的博客 1132

采样率转化代码C++(有理倍数,升采样、降采样均可)

【代码】采样率转化(有理倍数,升采样、降采样均可)

goudahai的专栏 546

Flutter TapGestureRecognizer 如何工作

Flutter TapGestureRecognizer 如何工作

bawomingtian123的专栏 1552

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

iOS UIGestureRecognizer (手势的基本知识介绍)

手势识别在 iOS 中非常重要,他极大地提高了移动设备的使用便捷性。iOS 系统在 3.2 以后,他提供了一些常用的手势(UIGestureRecognizer 的子类),开发者可以直接使用他们进行手势操作。

测试必备,自由切换账号、环境的组件(swift) 583

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

使用iOS手势UIGestureRecognizer

UIKit中包含了UIGestureRecognizer类,用于检测发生在设备中的手势。UIGestureRecognizer是一个抽象类,定义了所有手势的基本行为,它有下面一些子类用于处理具体的手势:      1、拍击UITapGestureRecognizer (任意次数的拍击)       2、向里或向外捏UIPinchGestureRecognizer (用于缩放)

341

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

iOS——UIGestureRecognizer

一、概述 1. 概念介绍 UIGestureRecognizer 类是一个抽象类,定义了基本手势的所有行为,但是不能直接使用 UIGestureRecognizer 类,而是要使用它的子类,如下 UITapGestureRecognizer(点击) UILongPressGestureRecognizer(长按) UIPanGestureRecognizer(拖动

透心凉的博客 1025

iphone练习之手势识别(双击、捏、旋转、拖动、划动、长按)UITapGestureRecognizer

首先新建一个基于Sigle view Application的项目,名为GestureTest;我的项目结构如下: 往viewController.xib文件里拖动一个imageView,并使覆盖整个屏幕,改动属性为: viewController.h文件:   [cpp]viewplaincopy   1.     #import    2.

3万+

【自学Flutter】27.4 手势识别(GestureRecognizer的使用)

27.4 手势识别(GestureRecognizer的使用) 1.源代码 import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; void main () => runApp(MyApp()); class MyApp extends StatefulWidget { @over...

技术宅-Nopi的博客 5493

21. 手势识别之UITapGestureRecognizer

UITapGestureRecognizer点击手势, 可以设置单击,双击,多击,还可以设置使用几根手指, 下面我们学习如何使用它1.UITapGestureRecognizer的创建import UIKitclass ViewController: UIViewController { var label: UILabel? override func viewDidLoad() {

邪恶枫叶的博客 843

UIGestureRecognizer

UIGestureRecognizer 是一个具体手势的基类,提供了较为简单的手势实现方式   The concrete subclasses of UIGestureRecognizer are the following: UITapGestureRecognizer UIPinchGestureRecognizer UIRotationGestureR

691

张高兴的 Xamarin.Forms 开发笔记:TapGestureRecognizer 的简单介绍与应用

  最近很少写应用了,一直在忙关于 ASP.NET 的东西(哈欠...)。抽点时间对TapGestureRecognizer 做点总结。   一、简介   TapGestureRecognizer 就是对 Tap 手势进行识别。 Forms 里的大多数控件都继承自 View 类,而 View 类中有一个公共属性 GestureRecognizers,因此控件都可以添加各种手势识别。...

ahuihun5901的博客 339

TapGestureRecognizer的简单介绍

首先说明一下TapGestureRecognizer是继承自UIGestureRecognizer TapGestureRecognizer这个类只有两个属性  其他属性都是他的父类的 首先创建一个控件 UIImageView *imageView = [[UIImageView alloc]init]; imageView.backgroundCol

WKFfantasy的博客 1731
上一篇: iOS 之通过反射机制获得变量名
下一篇: iOS 之Quartz2D简介
Shicuf
博客等级 码龄16年 11粉丝 66原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值