__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), 1.0 * NSEC_PER_SEC, 0); // 每秒执行 dispatch_source_set_event_handler(_timer, ^{ if(timeout <= 1) { // 倒计时结束 dispatch_source_cancel(_timer); dispatch_async(dispatch_get_main_queue(), ^{ getCodeButton.backgroundColor = RGBACOLOR(232, 154, 37, 1); getCodeButton.userInteractionEnabled = YES; [getCodeButton setTitle:@"获取验证码" forState:UIControlStateNormal]; [getCodeButton setTitle:@"获取验证码" forState:UIControlStateHighlighted]; }); } else { dispatch_async(dispatch_get_main_queue(), ^{ getCodeButton.backgroundColor = [UIColor lightGrayColor]; getCodeButton.userInteractionEnabled = NO; [getCodeButton setTitle:[NSString stringWithFormat:@"%d", timeout] forState:UIControlStateNormal]; }); timeout--; } }); dispatch_resume(_timer);
使用GCD实现倒计时
猜你喜欢
转载自eric-gao.iteye.com/blog/2223674
今日推荐
周排行