您的位置:首页 > 其它

避免连续点击触发多次耗时操作

2015-02-05 18:04 393 查看
计算时间差:CFAbsoluteTimeGetCurrent()。

@property (nonatomic,assign)double startTime;

@property (nonatomic,assign)double endTime;

- (IBAction)tapPressed:(UIButton *)sender {

    double diff =
0;//根据间隔需求而定
或初始化为0
   
if (_startTime==0) {

        _startTime =
CFAbsoluteTimeGetCurrent();

        _endTime =
_startTime;
    }else{

        _endTime =
CFAbsoluteTimeGetCurrent();
        diff =
_endTime - _startTime;

        _startTime =
_endTime;
    }
   
NSString *testStr =
@"test";
   
if (diff < 2) {

        NSLog(@"取消执行耗时更新操作 !");

        [NSObject
cancelPreviousPerformRequestsWithTarget:self
selector:@selector(updateTest)
object:testStr];//把当前事件执行取消
    }

    [self
performSelector:@selector(updateTest)
withObject:testStr afterDelay:2];//当前新执行的事件

    
}

- (void)updateTest{

    NSLog(@"updateTest !");
}

以上针对必要的多次点击时候比较有用(多次快速点击的最后一次点击应该是执行的),如果是偶然的误点击多次,可以用button的selected属性控制也可以,方法很多。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: