美文网首页
【转】iOS解决按钮短时间内多次点击只触发一次事件方法

【转】iOS解决按钮短时间内多次点击只触发一次事件方法

作者: 化二缺 | 来源:发表于2019-02-22 17:43 被阅读0次

在上家公司做项目的时候,做了个60秒获取验证码的功能,当时做了个定时器,按钮触发定时器,逻辑来讲都是没问题的,但是实际操作的时候,恶意的在短时间内多次点击那个获取验证码按钮,按钮的点击事件被调用了多次,定时器从而也调用多次,本来一秒减一的事件变成了一秒减多,并且减到0后继续调用方法,直到响应点击次数调用完,这完全不符合我们的心意。 时隔2月,我在新公司工作了,回头来看这个问题,为了解决这个问题,我在百度上查了许多资料,解决后将解决办法写入自己的博客,和大家分享自己的技术,也为自己一直想写博客做个开始,记录开发中遇到的问题,慢慢成长。
好了,废话讲完,开始进入主题: 1.一个60秒获取验证码的功能,先写好了按钮,在触发按钮的方法中做如下操作:

-(void)getBtnAction:(UIButton *)btn{ //获取验证码按钮点击
// 在0.2秒时间间隔内多次点击只响应一次点击事件, todoSomething就是我们具体要实现的方法
[[self class] cancelPreviousPerformRequestsWithTarget:self selector:@selector(todoSomething:) object:btn]; [self performSelector:@selector(todoSomething:) withObject:btn afterDelay:0.2f]; }
-(void)todoSomething:(UIButton *)btn{
//这里面写timer,timer调自己的方法
}

2.到这里就结束了,关键的就那一步:

[[self class] cancelPreviousPerformRequestsWithTarget:self selector:@selector(todoSomething:) object:btn]; [self performSelector:@selector(todoSomething:) withObject:btn afterDelay:0.2f];

相关文章

  • flutter 禁止连续点击按钮的封装

    在开发中按钮如果被多次点击,会触发多次事件,想要封装一个按钮能够在短时间内禁止多次点击。 思路 使用延时方法 改变...

  • 【转】iOS解决按钮短时间内多次点击只触发一次事件方法

    在上家公司做项目的时候,做了个60秒获取验证码的功能,当时做了个定时器,按钮触发定时器,逻辑来讲都是没问题的,但是...

  • iOS解决按钮短时间内多次点击只触发一次事件方法

    在上家公司做项目的时候,做了个60秒获取验证码的功能,当时做了个定时器,按钮触发定时器,逻辑来讲都是没问题的,但是...

  • js 防抖debounce与节流throttle(简述)

    防抖debounce 顾名思义防止用户点击按钮的时候抖动,短时间内触发多次按钮事件。在触发事件的n秒后执行,如果在...

  • Ajax避免重复提交

    为防止用户在短时间内多次点击按钮触发提交方法,在ajax方法触发的前面加入下面两行代码(id名改为自己定义的按钮的):

  • Android 防误触

    防止按钮短时间内多次点击。使用kotlin扩展方法,限制500毫秒内点击一次。 调用处

  • vue事件修饰符 数据绑定与css样式

    事件修饰符 点击按钮先出发按钮的点击事件再触发div的点击事件,这就是事件冒泡 .stop阻止冒泡,点击按钮只触发...

  • 实现短时间内连续点击多次触发事件

    借助闭包实现短时间内连续点击多次触发事件 页面调用(这里要注意,不能写成onClick={() => {this....

  • 防抖与节流

    防抖 短时间内大量触发,只执行一次,若这段事件内再次触发,则重新计时 节流 短时间触发同一事件,那么在函数执行一次...

  • LayUI使用技巧

    1.当在折叠面板上添加了按钮,点击按钮时折叠面板冒泡事件也会触发,随之打开收起。 解决方法:在按钮的点击事件中添加...

网友评论

      本文标题:【转】iOS解决按钮短时间内多次点击只触发一次事件方法

      本文链接:https://www.haomeiwen.com/subject/oezeyqtx.html