ios 使用gcd 显示倒计时

 

 __block int timeout = 60;//倒计时时间
    dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
    dispatch_source_t timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue);
    dispatch_source_set_timer(timer, dispatch_walltime(NULL, 0),NSEC_PER_SEC * 1.0 , 0);//每秒执行
    dispatch_source_set_event_handler(timer, ^{
        if (timeout <= 0) {

            dispatch_source_cancel(timer);
            dispatch_async(dispatch_get_main_queue(), ^{
                CNSLog(@"获取验证码");
                self.getVerificationCodeButton.enabled = YES;
                self.getVerificationCodeLabel.text = @"获取验证码";
                self.getVerificationCodeLabel.textColor = [UIColor whiteColor];
            });
        }
        else {
            
            NSString * strTime = [NSString stringWithFormat:@"请稍等(%d秒)",timeout];
            dispatch_async(dispatch_get_main_queue(), ^{
                CNSLog(@"timeout = %d",timeout);
                
                self.getVerificationCodeButton.enabled = NO;
                self.getVerificationCodeLabel.textColor = UIColorFromRGB(0xe6e6e6);
                self.getVerificationCodeLabel.text = strTime;
                

            });
            timeout -- ;
        }
    });
    
    dispatch_resume(timer);

 

原文:http://blog.csdn.net/fanxun1982/article/details/8678362

 

posted @ 2014-10-29 19:51  Dadada胖纸er  阅读(577)  评论(0编辑  收藏  举报