【作者前言】:13年入圈,分享些本人工作中遇到的点点滴滴那些事儿,17年刚开始写博客,高手勿喷!以分享交流为主,欢迎各路豪杰点评改进!
1.应用场景:
很多时候,我们需要对特定的按钮进行一下事件的相应控制,避免暴力点击重复调用按钮的象印事件;
2.实现目标:
通过一定的方法规避掉暴力点击按钮的行为
3.代码说明:
//方法一:通过系统控件的方法响应顺序实现
- (void)buttonClicked:(UIButton *)button{
//多久时间 间隔后才允许再次响应按钮事件
static NSTimerInterval delayTime = 0.25f;
//点击按钮后,先取消之前的操作,再进行需要进行的操作
[ [self class] cancelPreviousPerformRequestsWithTarget:self selector:@selector(buttonClicked:) object:button];
[self performSelector:@selector(buttonClicked: )withObject:button afterDelay:delayTime];
}
//方法二:计时器控制实现
-(void)buttonClicked:(id)sender{
self.button.enabled =NO;
//多久时间 间隔后才允许再次响应按钮事件
static NSTimerInterval delayTime = 0.25f;
[self performSelector:@selector(changeButtonStatus)withObject:nil afterDelay:delayTime];//防止重复点击
}
-(void)changeButtonStatus{
self.button.enabled =YES;
}
方法三:利用Runtime运行时操作,一般来说Runtime的操作要少用,慎用!不过有些时候利用Runtime处理一些问题也是最高效的,这种方法所有按钮通用~~~
附着一篇资料,供于参考,就不写代码了....
https://www.jianshu.com/p/8e562c24039e