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