1. 程式人生 > >iOS防重複點選的幾種方法

iOS防重複點選的幾種方法

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];
                });