iOS发送验证码倒计时应用
#代码知识 发布时间: 2026-01-11
app注册的时候,经常会遇到发送验证码的功能,当点击发送验证码的时候,那个button就开始了倒计时,当计时结束才可以重新发送,效果如下:

具体代码实现如下:
- (IBAction)sendMes:(UIButton *)sender
{
__block int timeout = 10 ; //倒计时时间
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, ^{ //每秒钟回调的方法 跟NSTimer 一样的的执行方法
if(timeout<=0){ //倒计时结束,关闭
dispatch_source_cancel(_timer);
dispatch_async(dispatch_get_main_queue(), ^{
//设置界面的按钮显示
[sender setTitle:@"发送验证码" forState:UIControlStateNormal];
sender.enabled = YES;
});
}else{
int seconds = timeout % 60;
NSString *strTime = [NSString stringWithFormat:@"%d", seconds];
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"----%@", [NSThread currentThread]);
//设置界面的按钮显示
[sender setTitle:[NSString stringWithFormat:@"(%@)重新获取",strTime] forState:UIControlStateDisabled];
sender.enabled = NO;
});
timeout--;
}
});
//一定要调用resume 开启定时器的功能
}
这个button可以直接在storyboard中实现,button的背景颜色选为灰色,再设置一个背景图片,如上图的红色图片,button的type设置为:custom
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
代码知识SEO上一篇 : PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
下一篇 : Android实现代码画虚线边框背景效果
-
SEO外包最佳选择国内专业的白帽SEO机构,熟知搜索算法,各行业企业站优化策略!
SEO公司
-
可定制SEO优化套餐基于整站优化与品牌搜索展现,定制个性化营销推广方案!
SEO套餐
-
SEO入门教程多年积累SEO实战案例,从新手到专家,从入门到精通,海量的SEO学习资料!
SEO教程
-
SEO项目资源高质量SEO项目资源,稀缺性外链,优质文案代写,老域名提权,云主机相关配置折扣!
SEO资源
-
SEO快速建站快速搭建符合搜索引擎友好的企业网站,协助备案,域名选择,服务器配置等相关服务!
SEO建站
-
快速搜索引擎优化建议没有任何SEO机构,可以承诺搜索引擎排名的具体位置,如果有,那么请您多注意!专业的SEO机构,一般情况下只能确保目标关键词进入到首页或者前几页,如果您有相关问题,欢迎咨询!