來(lái)源:Silence_廣
第一種:每次在點(diǎn)擊時(shí)先取消之前的操作
將這段代碼放在你按鈕點(diǎn)擊的方法中仰禽,例如:
-?(void)buttonClicked:(id)sender{
//點(diǎn)擊按鈕后先取消之前的操作,再進(jìn)行需要進(jìn)行的操作
[[selfclass]cancelPreviousPerformRequestsWithTarget:selfselector:@selector(buttonClicked:)object:sender];
[selfperformSelector:@selector(buttonClicked:?)withObject:senderafterDelay:0.2f];
}
第二種:點(diǎn)擊后設(shè)為不可被點(diǎn)擊的狀態(tài),幾秒后恢復(fù):
-(void)buttonClicked:(id)sender{
self.button.enabled?=NO;
[selfperformSelector:@selector(changeButtonStatus)withObject:nilafterDelay:1.0f];//防止重復(fù)點(diǎn)擊
}
-(void)changeButtonStatus{
self.button.enabled?=YES;
}
第三種:使用runtime尤揣,一勞永逸我這設(shè)的是0.5秒內(nèi)不會(huì)被重復(fù)點(diǎn)擊
1.導(dǎo)入objc / runtime.h(可以放在PCH文件里)
2.創(chuàng)建uicontrol或UIButton的的分類(lèi)等龙!
創(chuàng)建分類(lèi)文件:
2.1 打開(kāi)Xcode中吧雹,新建文件糯而,選擇OC文件
2.2 在第二個(gè)界面旦签,F(xiàn)ile名為UIControl+UIControl_buttonCon,將文件類(lèi)型File Type選為Category類(lèi)寸宏,在類(lèi)里選繼承的類(lèi)別氮凝,這里咱們選的Class是UIButton
注:若用Unbutton分類(lèi),則會(huì)對(duì)對(duì)Unbutton創(chuàng)建的按鈕反應(yīng)罩阵。
2.3 分類(lèi)創(chuàng)建完畢對(duì)分類(lèi)進(jìn)行操作
demo來(lái)自WooY:http://code.cocoachina.com/view/135814?