iOS 按钮倒计时功能
Posted 不忘初心,方得始终
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS 按钮倒计时功能相关的知识,希望对你有一定的参考价值。
ios 按钮倒计时功能, 建议把按钮换成label,这样会避免读秒时闪烁
1 __block int time = 60; 2 __block UIButton *verifybutton = _GetverificationBtn; 3 verifybutton.enabled = NO; 4 dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); 5 dispatch_source_t _timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0,queue); 6 dispatch_source_set_timer(_timer,dispatch_walltime(NULL, 0),1.0*NSEC_PER_SEC, 0); //每秒执行 7 dispatch_source_set_event_handler(_timer, ^{ 8 if(time<=0){ //倒计时结束,关闭 9 dispatch_source_cancel(_timer); 10 dispatch_async(dispatch_get_main_queue(), ^{ 11 //设置界面的按钮显示 根据自己需求设置 12 [verifybutton setTitle:@"获取验证码" forState:UIControlStateNormal]; 13 verifybutton.enabled = YES; 14 }); 15 }else{ 16 dispatch_async(dispatch_get_main_queue(), ^{ 17 //设置界面的按钮显示 根据自己需求设置 18 verifybutton.backgroundColor = [UIColor grayColor]; 19 NSString *strTime = [NSString stringWithFormat:@"获取验证码(%d)",time]; 20 [verifybutton setTitle:strTime forState:UIControlStateNormal]; 21 verifybutton.titleLabel.textColor = [UIColor whiteColor]; 22 }); 23 time--; 24 } 25 }); 26 dispatch_resume(_timer);
以上是关于iOS 按钮倒计时功能的主要内容,如果未能解决你的问题,请参考以下文章