繁体   English   中英

UIButton同时具有Touch Up Inside和Touch Repeat?

[英]UIButton with both Touch Up Inside and Touch Repeat?

让按钮同时具有Touch Up Inside动作和Touch Down Repeat动作的最佳方法是什么? 有点像iPhone上的Home按钮:只需点击一下即可进入主屏幕,但两次快速点击可打开多任务栏。 现在我的按钮已经连接了两个方法,但Touch Down Repeat Touch Up Inside方法(不出所料)在Touch Down Repeat发生之前被调用。

我可以提出一些方法来解决这个问题(让Touch Up Inside方法等待一秒钟,看看在执行之前是否有另一个点击,第二个按钮在第一次点击后无形地移动到位)等等看起来很糟糕,对性能损失和漏洞持开放态度。 我找到了tapCount属性,但是它用于UITouch而不是UIButton,所以if([_buttonAddItems tapCount] > 1) {} else if([_buttonAddItems tapCount] == 1) ,这似乎是最有效的方法它,不起作用。

这种事情有最好的做法吗? 或者,如果没有,有没有人有一个首选的方法来完成这项工作?

尝试断开按钮上的两个触摸事件,并将两个轻触手势识别器挂钩。 这是一个答案链接 ,解释了如何设置两个手势识别器,以便其中一个识别单击,另一个识别双击:

UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget: self action:@selector(doSingleTap)];
singleTap.numberOfTapsRequired = 1; 
[myButton addGestureRecognizer:singleTap];

UITapGestureRecognizer *doubleTap = [[UITapGestureRecognizer alloc] initWithTarget: self action:@selector(doDoubleTap)];
doubleTap.numberOfTapsRequired = 2; 
[myButton  addGestureRecognizer:doubleTap];
// This is the "secret sauce":
[singleTap requireGestureRecognizerToFail:doubleTap];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM