UITapGestureRecognizer 高级用法

UITapGestureRecognizer 和touches事件 - (instancetype)initWithFrame:(CGRect)r { self = [super initWithFrame:r]; if (self) { self.linesInProgress = [[NSMutableDictionary alloc] init]; self.finishedLines = [[NSMutab 阅读详情
//单指单击
   2:      UITapGestureRecognizer *singleFingerOne = [[UITapGestureRecognizer alloc] initWithTarget:self 
   3:                                      action:@selector(handleSingleFingerEvent:)];
   4:      singleFingerOne.numberOfTouchesRequired = 1; //手指数
   5:      singleFingerOne.numberOfTapsRequired = 1; //tap次数
   6:      singleFingerOne.delegate = self;
   7:      
   8:      //单指双击
   9:      UITapGestureRecognizer *singleFingerTwo = [[UITapGestureRecognizer alloc] initWithTarget:self 
  10:                                       action:@selector(handleSingleFingerEvent:)];
  11:      singleFingerTwo.numberOfTouchesRequired = 1;
  12:      singleFingerTwo.numberOfTapsRequired = 2;
  13:      singleFingerTwo.delegate = self;
  14:      
  15:      //双指单击
  16:      UITapGestureRecognizer *doubleFingerOne = [[UITapGestureRecognizer alloc] initWithTarget:self 
  17:                                       action:@selector(handleDoubleFingerEvent:)];
  18:      doubleFingerOne.numberOfTouchesRequired = 2;
  19:      doubleFingerOne.numberOfTapsRequired = 1;
  20:      doubleFingerOne.delegate = self;
  21:      
  22:      UITapGestureRecognizer *doubleFingerTwo = [[UITapGestureRecognizer alloc] initWithTarget:self 
  23:     action:@selector(handleDoubleFingerEvent:)];
  24:      doubleFingerTwo.numberOfTouchesRequired = 2;
  25:      doubleFingerTwo.numberOfTapsRequired = 2;
  26:      doubleFingerTwo.delegate = self;
  27:      
  28:      //如果不加下面的话,当单指双击时,会先调用单指单击中的处理,再调用单指双击中的处理
  29:      [singleFingerOne requireGestureRecognizerToFail:singleFingerTwo];
  30:      //同理双指亦是如此
  31:      [doubleFingerOne requireGestureRecognizerToFail:doubleFingerTwo];
  32:      
  33:      [self.view addGestureRecognizer:singleFingerOne];
  34:      [self.view addGestureRecognizer:singleFingerTwo];
  35:      [self.view addGestureRecognizer:doubleFingerOne];
  36:      [self.view addGestureRecognizer:doubleFingerTwo];
  37:      
  38:      [singleFingerOne release];
  39:      [singleFingerTwo release];
  40:      [doubleFingerOne release];
  41:      [doubleFingerTwo release];

处理事件的方法,代码:

   1:  //处理单指事件
   2:  - (void)handleSingleFingerEvent:(UITapGestureRecognizer *)sender
   3:  {
   4:      if (sender.numberOfTapsRequired == 1) {
   5:          //单指单击
   6:          NSLog(@"单指单击");
   7:      }else if(sender.numberOfTapsRequired == 2){
   8:          //单指双击
   9:          NSLog(@"单指双击");
  10:      }
  11:  }
  12:  //处理双指事件
  13:  - (void)handleDoubleFingerEvent:(UITapGestureRecognizer *)sender
  14:  {
  15:      if (sender.numberOfTapsRequired == 1) {
  16:          //双指单击
  17:          NSLog(@"双指单击");
  18:      }else if(sender.numberOfTapsRequired == 2){
  19:          //双指双击
  20:          NSLog(@"双指双击");
  21:      }
  22:  }

将相应代码复制到你的工程中即可使用,由于代码中已经有详细的解释说明,这里就不在重复解释了。

代码中只是列举了单指与双指对于单击或多击的处理,同理多指的操作需修改numberOfTouchesRequired属性,对点击的次数需修改numberOfTapsRequired属性。

对于其他手势例如UISwipeGestureRecognizer,UILongPressGestureRecognizer,UILongPressGestureRecognizer的操作使用类似处理。


UITapGestureRecognizer手势识别之双击和单击结合 通过 单击和双击 对 图片视图 进行放大和 缩小的效果: #pragma mark - UITapGestureRecognizer - (void)UITapGestureRecognizerCreate{ UIImage* image =[UIImage imageNamed:@"1.png"]; //创建图像视图 _imageView =[[UIImageVie 阅读详情

相关推荐

实战避坑:泛微E9流程接口与单点登录(SSO)开发全解析(含自定义Action、Restful API与免密登录)

本文深入解析泛微E9流程接口与单点登录(SSO)开发中的关键技术与避坑指南,涵盖自定义Action开发、Restful API鉴权机制及跨系统单点登录实现。通过实战案例与代码示例,帮助开发者高效完成二次开发,解决系统集成中的数据孤岛问题,提升企业信息化建设效率。

weixin_42549451的博客 672

UITapGestureRecognizer 的用法

//单指单击 2: UITapGestureRecognizer *singleFingerOne = [[UITapGestureRecognizer alloc] initWithTarget:self 3: action:@selector(handleSingleFingerEvent:)]; 4: singleFingerOne.numberOfTouchesRequired

Gabriel的专栏 940

多传感器标定全栈系统学习教程

无论是激光雷达(Lidar)、毫米波雷达(Radar)、相机(Camera)还是惯导(IMU),传感器之间的精确标定直接决定了系统的可靠性与性能。本文将以系统化的视角,梳理多传感器标定的核心知识体系,并分享一套覆盖全栈技术的学习路径。Calibration)是实现点云与图像融合的前提,而雷达与车辆的标定(Radar2Car)则是精准速度估计的关键。:Lidar2Car、Camera2Car的快速标定流程,标定板布置规范。:从单传感器标定入手(如相机内参),逐步过渡到多传感器联合标定。

weixin_41792788的博客 904

UI-Target-action模式

当有特定事件发生,需要一个对象向另一个对象发送消息时,我们通常采用 Cocoa的 Target-Action 设计模式。 一般只要继承UIControl ,就能简单地处理事件(点击事件,值改变事件),系统自带有事件处理机制,继承图如下 如果遇到那些不是继承与UIControl的对象,我们可以人为的为其增加Target-Action 设计模式,达到我们的目的。 先看两者关系 图: 一般来讲Tar

图解AI 4174

从零到一:手把手教你用YonBuilder for NCC搭建NC Cloud 2021.11开发环境(含避坑指南)

本文详细指导如何使用YonBuilder for NCC搭建NC Cloud 2021.11开发环境,涵盖硬件要求、软件安装、YonBuilder配置及常见故障排除。特别提供避坑指南,帮助开发者快速上手NCC开发,确保环境配置的原子化分解和开发思维的体系化建立。

weixin_42523326的博客 341

数据采集卡架构与PCIe优化设计详解

数据采集卡(DAQ)作为工业自动化中的关键设备,其核心在于模数转换(ADC)和数字信号处理技术。现代系统普遍采用PCIe总线架构,通过DMA传输和时钟同步技术实现高速数据采集。在信号调理环节,可编程增益放大器(PGA)和抗混叠滤波器确保信号质量;而Σ-Δ型ADC则提供高达24位的分辨率。实际应用中,从电力监测到机床振动分析,数据采集卡需要结合具体场景优化配置。通过合理的PCB布局和EMI防护设计,可以有效提升系统在工业环境中的可靠性。

weixin_29168675的博客 909

UIGesture的一些属性

1.单击 -(void)createTapGesture{     //点击     //UITapGestureRecognizer:继承自手势基类UIGestureRecognizer     UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector

login_csdn的专栏 588

VisionPro脚本实战:用C#替代QuickBuild,让复杂定位项目代码更清爽

本文探讨了如何通过C#脚本重构VisionPro复杂定位项目,替代臃肿的QuickBuild架构。通过实战案例展示了脚本化开发如何减少60%代码量并提升35%运行效率,使项目更易维护。文章详细介绍了环境搭建、多模板定位重构及高级技巧,帮助开发者突破QuickBuild限制,实现更高效的视觉应用开发。

weixin_30417487的博客 501

iOS-UIGestureRecognizer详解-原理篇

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

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

基于8086微机原理数字钟计时器系统设计

*单片机设计介绍,基于8086微机原理数字钟计时器系统设计。

2201_75940997的博客 1279

LTspice基础教程-028.Timestep too small

Q: “Timestep too small” error message A: If the LTspice program can’t find a solution for the guessed time step, then the program decreases the time step and tries again. This can’t work forever. If...

gaoyong_wang的博客 2万+

UIGestureRecognizer(基础)

UIGestureRecognizer(基础)

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

2023华为od机试C卷【最富裕的小家庭】C语言 实现

在一颗树中,每个节点代表一个家庭成员,节点的数字表示其个人的财富值,一个节点及其直接相连的子节点被定义为个小家庭。现给你一颗树,请计算出最富裕的小家庭的财富和。

MISAYAONE的博客 499

ARShooter手势交互实现:UITapGestureRecognizer在AR游戏中的应用指南

ARShooter是一款基于ARKit的增强现实射击游戏,通过**UITapGestureRecognizer手势识别器**实现了直观的点击射击交互。本文将详细介绍如何在这个iOS AR游戏中实现**手势交互**,让新手开发者快速掌握**AR游戏开发**的核心技巧。🎯 ## 为什么选择UITapGestureRecognizer? 在ARShooter项目中,开发者选择了**UITapGes

gitblog_00597的博客 275

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

iOS开发UITapGestureRecognizer手势

文章转载于编程大巴 手势在iOS开发中是一个比较常用的功能,不过相对来说大家用的比较少,经常刷网易新闻,上次用了一下捏合手势才发现可以调整字体大小。昨天看到一个介绍摇一摇这个功能的,没看到之前一直都觉得摇一摇是微信的专有的,昨天测试了一下知乎,感觉像发现了一个新大陆,随便截了图,效果如下: 扯的有点远了,很多应用的很多功能其实对于大多数而言是没有用到的,不过作为程序员我们还是应该多研究一下。基础

suweierxing的专栏 1081

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

iOS开发进阶-UITapGestureRecognizer使用技巧

手势交互是iOS开发中用的比较多的一个类,用途无处不在,这里面也衍生了很多的需求和用法,UIGestureRecognizer很强大,它的子类包括很多,不过想要更完美的使用它,就需要了解它的底层原理和和一些特殊情况下的处理办法,本文主要介绍UITapGestureRecognizer的一些技巧性的方法和策略。

JoySeeDog 1万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

UITapGestureRecognizer的用法

UITapGestureRecognizer *selfViewTap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(removeSelfView:)]; [self addGestureRecognizer:selfViewTap];//注意同一个...

Maybe_2333的博客 295

UIImageView添加UITapGestureRecognizer后传参问题

在加之前先普及一下UIView的userInteractionEnabled属性 属性作用        该属性值为布尔类型,如属性本身的名称所释,该属性决定UIView是否接受并响应用户的交互。        当值设置为NO后,UIView会忽略那些原本应该发生在其自身的诸如touch和keyboard等用户事件,并将这些事件从消息队列中移除出去。当值设置为YES后,这些用户事

NYH1006的专栏 1万+

iOS 控件点击效果 手势效果 UITapGestureRecognizer用法

在需要给图片,图标等控件添加 点击效果,手势效果的UITapGestureRecognizer用法 直接看代码示例: - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. UIImageView

jichw的专栏 2419

iOS中添加UITapGestureRecognizer手势识别后,UITableView的didSelectRowAtIndexPath失效

转自:http://blog.youkuaiyun.com/iosevanhuang/article/details/8830499 今天以前的同事在开发过程中遇到了一个问题,大致描述如下: 他用TableView写了一个登陆界面,帐号和密码两个Cell中加入了TextField。由于想在TableView的空白处点击时收起键盘,所以他注册了一个UITapGestureRecognizer来识别手

xiazailushang的专栏 2万+

手势UITapGestureRecognizer的tag

手势UITapGestureRecognizer的tag UITapGestureRecognizer是没有tag属性,但他有UIView的属性,我们可以通过给UIView添加tag属性,从而标记UITapGestureRecognizer。   UITapGestureRecognizer *singleTap =         [[UITapGesture

6960

UITapGestureRecognizer

UITapGestureRecognizer是通过doubleTap.numberOfTapsRequired判断单击和双击 UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget: self action: @selector(handleSingleTap:)];

Linlei的专栏 1194

给控件添加单击事件--UITapGestureRecognizer

在Iphone开发中,像UIimageView是不支持点击的,但往往我们却有很多能在Image上点击的需求,比如一个自定义的TableViewCell中放入三个UIimageView,在这里命名为imageleft,imagemiddle,imggeright,当tableView加载后,单击tableView中某一行中的image,我便进入该图片的详细页面。 当然,现在的最新版

taylor的专栏 2万+

UITapGestureRecognizer 的使用,判断点击哪个控件

UITapGestureRecognizer 的使用,判断点击哪个控件 说明:_backgroundImg 和_userHeaderImg都在_headerView上,给_headerView添加手势,判断用户点击是在_userHeaderImg还是_backgroundImg上,一个是修改头像,一个是修改背景图 注意:convertRect:后跟的是bounds,而不是f

shiningchen322的博客 7750
上一篇: 淘宝:OceanBase分布式系统负载均衡案例分享
下一篇: 常见的内存泄露情况
focusjava
博客等级 码龄14年 127粉丝 528原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值