iOS解决按钮短期内屡次点击只触发一次事件方法

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

好了,废话讲完,开始进入主题: 1.一个60秒获取验证码的功能,先写好了按钮,在触发按钮的方法中作以下操做:事件

-(void)getBtnAction:(UIButton *)btn{ //获取验证码按钮点击开发

// 在0.2秒时间间隔内屡次点击只响应一次点击事件, todoSomething就是咱们具体要实现的方法get

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

-(void)todoSomething:(UIButton *)btn{it

//这里面写timer,timer调本身的方法io

}form

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

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

但愿对你们有所帮助。

相关文章
相关标签/搜索