iOS防重複點選的幾種方法
阿新 • • 發佈:2019-01-29
1.全域性變數flag法
@property(nonatomic,assign)BOOLisClickedFlag;//防止重複點選 #pragma mark -- 全域性變數flag法 - (void)LJBtnClicked { if (self.isClickedFlag ==YES) { self.isClickedFlag =NO; function//自己的函式 { 自己需要做的事情做完畢後,再開啟點選 self.isClickedFlag =YES } } }
2.延時呼叫法
//延時0.5s 去執行
[selfperformSelector:@selector(LJBtnClicked)withObject:nilafterDelay:0.5];
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[self LJBtnClicked];//延時執行
});
3. 類別延時法
只需要設定一個屬性時間就可以了
參考這篇 http://www.jianshu.com/p/8e562c24039e
4.設定點選UI的屬性為NO(最有效的方法)
[_btnNode setControlNodeEnable:NO]; dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ [self LJBtnClicked];//延時執行 [_btnNode setControlNodeEnable:YES]; });