美文网首页iOS开发攻城狮的集散地
iOS解决按钮短时间内多次点击只触发一次事件方法

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

作者: George2016 | 来源:发表于2017-02-25 22:42 被阅读104次

    在上家公司做项目的时候,做了个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调自己的方法
    
    }
    

    相关文章

      网友评论

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

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