ios 防止按钮快速点击造成多次响应的避免方法。
2015-12-28 19:40
721 查看
有时候有些操作是防止用户在一次响应结束中再响应下一个。但有些测试用户就要猛点,狂点。像这种恶意就要进行防止。 当然有些异步操作时,可以在调用前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——结构体指针
- iOS——指针进阶
- iOS——内存动态分布
- iOS——函数
- iOS——指针
- iOS——结构体
- iOS——一维数组
- ios开发常用的宏定义
- iOS开发中的公共方法
- 对iOS锁的一些研究
- iOS同步对象性能对比(iOS锁性能对比)
- iOS Provisioning Profile(Certificate)与Code Signing详解
- iOS如何在多台机器上共享iOS证书
- iOS 9下的shareSDK集成的常见问题及解决方案
- animation - 6
- iOS SEL的简单总结
- iOS并发编程-锁
- iOS 开始页面实现
- iOS代码混淆
- IOS Quartz 各种绘制图形用法---实现画图片、写文字、画线、椭圆、矩形、棱形等