避免button被多次点击

来源:Silence_广

第一种:每次在点击时先取消之前的操作

将这段代码放在你按钮点击的方法中,例如:

- (void)buttonClicked:(id)sender{

//点击按钮后先取消之前的操作,再进行需要进行的操作

[[selfclass]cancelPreviousPerformRequestsWithTarget:selfselector:@selector(buttonClicked:)object:sender];

[selfperformSelector:@selector(buttonClicked: )withObject:senderafterDelay:0.2f];

}

第二种:点击后设为不可被点击的状态,几秒后恢复:

-(void)buttonClicked:(id)sender{

self.button.enabled =NO;

[selfperformSelector:@selector(changeButtonStatus)withObject:nilafterDelay:1.0f];//防止重复点击

}

-(void)changeButtonStatus{

self.button.enabled =YES;

}

第三种:使用runtime,一劳永逸我这设的是0.5秒内不会被重复点击

1.导入objc / runtime.h(可以放在PCH文件里)

2.创建uicontrol或UIButton的的分类!

创建分类文件:

2.1 打开Xcode中,新建文件,选择OC文件

2.2 在第二个界面,File名为UIControl+UIControl_buttonCon,将文件类型File Type选为Category类,在类里选继承的类别,这里咱们选的Class是UIButton

注:若用Unbutton分类,则会对对Unbutton创建的按钮反应。

2.3 分类创建完毕对分类进行操作

demo来自WooY:http://code.cocoachina.com/view/135814 

推荐阅读更多精彩内容