iOS   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了objective-c – 实现按下并保持连续事件发射的优雅方式?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_618_2@

概述

由于按住按钮,我经常需要触发一系列事件.想象一个按钮增加一个字段:点击它应该增加1,但点击&保持应该说每秒递增1,直到按钮被释放.另一个例子是按住音频播放器类型应用程序中的向后或向前按钮时的擦洗功能. 我通常采用以下策略: >在touchDownInside上我设置了一个具有所需间隔的重复计时器. >在touchUpInside上我使计时器无效并释放. 但是对于每个这样的按钮,我需要一个单独的计时
@H_618_2@
@H_618_2@ @H_618_2@
@H_618_2@
由于按住按钮,我经常需要触发一系列事件.想象一个按钮增加一个字段:点击它应该增加1,但点击&保持应该说每秒递增1,直到按钮被释放.另一个例子是按住音频播放器类型应用程序中的向后或向前按钮时的擦洗功能.

我通常采用以下策略:

>在touchDownInside上我设置了一个具有所需间隔的重复计时器.
>在touchUpInside上我使计时器无效并释放.

但是对于每个这样的按钮,我需要一个单独的计时器实例变量,2个目标动作和2个方法实现. (这假设我正在编写一个通用类,并且不希望对同时触摸的最大数量施加限制).

是否有一种更优雅的方法可以解决这个问题,我错过了?

@H_618_2@

解决方法

通过以下方式为每个按钮注册事件:

[button addTarget:self action:@SELEctor(touchDown:withEvent:) forControlEvents:UIControlEventTouchDown];
[button addTarget:self action:@SELEctor(touchUpInside:withEvent:) forControlEvents:UIControlEventTouchUpInside];

对于每个按钮,设置@L_874_15@属性

button.tag = 1; // 2,3,4 ... etc

在处理程序中,做任何你需要的事情.通过@L_874_15@识别按钮:

- (IBACtion) touchDown:(Button *)button withEvent:(UIEvent *) event
{
     NSLog("%d",button.tag);
}
@H_618_2@ @H_618_2@
@H_618_2@
@H_618_2@@H_618_2@

大佬总结

以上是大佬教程为你收集整理的objective-c – 实现按下并保持连续事件发射的优雅方式?全部内容,希望文章能够帮你解决objective-c – 实现按下并保持连续事件发射的优雅方式?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。