码迷,mamicode.com
首页 > 移动开发 > 详细

iOS 防止按钮快速点击造成多次响应的避免方法

时间:2014-07-09 18:27:30      阅读:253      评论:0      收藏:0      [点我收藏+]

标签:使用   os   for   io   时间   ar   

有时候有些操作是防止用户在一次响应结束中再响应下一个。但有些测试用户就要猛点,狂点。像这种恶意就要进行防止。

当然有些异步操作时,可以在调用前enable 掉。等CallBACK 后再enable起来。过程中按钮是不能点的。

 

1、可以使用:

- (void) timeEnough

{

  UIButton *btn=(UIButton*)[self.view viewWithTag:33];

  btn.selected=NO; 

[timer invalidate];

  timer=nil; 

}

 

 - (void) btnDone:(UIButton*)btn

 {

 if(btn.selected) return;

 btn.selected=YES;

 [self performSelector:@selector(timeEnough) withObject:nil afterDelay:3.0]; //使用延时进行限制。

//to do something.

 

2、个人觉得这种方法更为好用些。

 

- (void)todoSomething:(id)sender

{

    //在这里做按钮的想做的事情。

}

 

- (void)starButtonClicked:(id)sender

{

    //先将未到时间执行前的任务取消。

    [[self class] cancelPreviousPerformRequestsWithTarget:self selector:@selector(todoSomething:) object:sender];

    [self performSelector:@selector(todoSomething:) withObject:sender afterDelay:0.2f];

}

 

对于第二种方法,快速点击N次,只要每次间隔在0.2秒内的都不响应操作,等到停下点击到达0.2秒后再执行。所以按照自己的需要设置响应时间,狂点吧,只响应一次。

iOS 防止按钮快速点击造成多次响应的避免方法,布布扣,bubuko.com

iOS 防止按钮快速点击造成多次响应的避免方法

标签:使用   os   for   io   时间   ar   

原文地址:http://www.cnblogs.com/clumsy1006/p/3831678.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!