博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何在一个控件上同时实现单触和多触事件
阅读量:4707 次
发布时间:2019-06-10

本文共 1236 字,大约阅读时间需要 4 分钟。

在开发当中有时应需求会要求在一个控件上实现响应多种触控的操作,比如一个UIButton,需要你同时处理手指一次点击,两次点击,甚至三次,多次点击的事件,如何处理?

虽然从用户的角度出发,也许每个控件都只实现一次点击的事件是最直接的也是最可接受的,每个控件最好都只有单一职责,但是开发当中总会有这样那样的需求不得不去做。

下面举个例子:

1 UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 120, 40)];  2  3 UITapGestureRecognizer *clickOnce = [[UITapGestureRecognizer alloc] initWithTarget:self  action:@selector(onButtonClickOnce)];  4  5 clickOnce.numberOfTapsRequired = 1;  6  7 [button addGestureRecognizer: clickOnce];  8  9 [clickOnce release]; 10 11 12 13 14 UITapGestureRecognizer *clickTwice = [[UITapGestureRecognizer alloc] initWithTarget:self  action:@selector(onButtonClickTwice)]; 15 16 clickTwice.numberOfTapsRequired = 2; 17 18 [button addGestureRecognizer: clickTwice]; 19 20 [clickTwice release]; 21 22 23 24 25 UITapGestureRecognizer *clickThrice = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onButtonClickThrice)]; 26 27 clickThrice.numberOfTapsRequired = 3; 28 29 [button addGestureRecognizer: clickThrice]; 30 31 [clickThrice release];

然后分别实现onButtonClickOnce,onButtonClickTwice,onButtonClickThrice三个方法分别去处理单击,双击和三次点击的事件就好了,当然也可以处理更多次的点击事件。

当然实现的方式并不只这一种,其他的方式就等慢慢探索了。

转载于:https://www.cnblogs.com/simonshi2012/archive/2011/08/05/2128734.html

你可能感兴趣的文章
mysql配置默认字符集为UTF8mb4
查看>>
WPF实现3D翻转的动画效果
查看>>
自定义圆环进度条
查看>>
UILayer
查看>>
复杂对象写入文件
查看>>
k8s-高级调度方式-二十一
查看>>
[HDU3555]Bomb
查看>>
基于dubbo的分布式系统(一)安装docker
查看>>
Recursion
查看>>
66. Plus One
查看>>
COMP30023 Computer Systems 2019
查看>>
CSS选择器分类
查看>>
Kali学习笔记39:SQL手工注入(1)
查看>>
C# MD5加密
查看>>
Codeforces Round #329 (Div. 2)D LCA+并查集路径压缩
查看>>
移动应用开发测试工具Bugtags集成和使用教程
查看>>
Java GC、新生代、老年代
查看>>
Liferay 6.2 改造系列之十一:默认关闭CDN动态资源
查看>>
多线程
查看>>
折线切割平面
查看>>