iOS 验证码按钮倒计时功能

发布时间 - 2026-01-11 02:31:46    点击率:

在app 注册或者登录 需要验证码的地方、为了避免短时间内刷验证码、往往会加上一层验证。

倒计时结束后、可以重新获取!

代码实现如下:

// _CountdownTime 倒计时总时间;
//_timer 定时器
- (void)startTime:(UIButton *)VerificationCodeButton 
{
 __block NSInteger timeout = [_CountdownTime integerValue];
 dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
 _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<=0){
   dispatch_source_cancel(_timer);
   dispatch_async(dispatch_get_main_queue(), ^{
    [VerificationCodeButton setTitle:@"重新获取" forState:UIControlStateNormal];
    VerificationCodeButton.userInteractionEnabled = YES;
    VerificationCodeButton.alpha = 1.0;
    VerificationCodeButton.backgroundColor = [UIColor whiteColor];
   });
  } else {
   NSString *strTime = [NSString stringWithFormat:@"%lds", (long)timeout];
   dispatch_async(dispatch_get_main_queue(), ^{
    [VerificationCodeButton setTitle:strTime forState:UIControlStateNormal];
    VerificationCodeButton.userInteractionEnabled = NO;
    VerificationCodeButton.backgroundColor = [UIColor lightTextColor];
   });
   timeout--;
  }
 });
 dispatch_resume(_timer);
}

总结

以上所述是小编给大家介绍的iOS 验证码按钮倒计时功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# ios  # 验证码倒计时  # 验证码按钮倒计时  # iOS启动页倒计时跳过按钮功能  # iOS实现秒杀活动倒计时  # iOS实现短信验证码倒计时  # 详解iOS中多倒计时场景的解决方案  # iOS封装倒计时按钮HLCountDownButton示例详解  # 验证码  # 倒计时  # 小编  # 在此  # 时间内  # 给大家  # 往往会  # 所述  # 为了避免  # 给我留言  # 感谢大家  # 疑问请  # 有任何  # 结束后  # NSInteger  # timeout  # UIButton  # startTime  # __block  # VerificationCodeButton 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 进行网站优化必须要坚持的四大原则  如何用虚拟主机快速搭建网站?详细步骤解析  JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)  javascript读取文本节点方法小结  Laravel怎么导出Excel文件_Laravel Excel插件使用教程  如何用VPS主机快速搭建个人网站?  如何快速生成可下载的建站源码工具?  如何用西部建站助手快速创建专业网站?  EditPlus中的正则表达式 实战(2)  Laravel如何操作JSON类型的数据库字段?(Eloquent示例)  C#如何调用原生C++ COM对象详解  Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】  Python数据仓库与ETL构建实战_Airflow调度流程详解  Laravel队列任务超时怎么办_Laravel Queue Timeout设置详解  如何在Windows服务器上快速搭建网站?  高防服务器租用指南:配置选择与快速部署攻略  高防服务器如何保障网站安全无虞?  Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】  昵图网官方站入口 昵图网素材图库官网入口  Android实现代码画虚线边框背景效果  Win11怎么设置默认图片查看器_Windows11照片应用关联设置  Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用  如何自定义建站之星模板颜色并下载新样式?  HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】  做企业网站制作流程,企业网站制作基本流程有哪些?  Laravel如何与Docker(Sail)协同开发?(环境搭建教程)  详解CentOS6.5 安装 MySQL5.1.71的方法  Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作  如何快速搭建安全的FTP站点?  如何快速配置高效服务器建站软件?  iOS验证手机号的正则表达式  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】  Laravel怎么发送邮件_Laravel Mail类SMTP配置教程  高防服务器租用如何选择配置与防御等级?  Laravel如何使用Gate和Policy进行权限控制_Laravel权限判定与策略规则配置  如何在腾讯云服务器上快速搭建个人网站?  如何在云主机上快速搭建网站?  Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性  html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】  如何在企业微信快速生成手机电脑官网?  公司网站制作价格怎么算,公司办个官网需要多少钱?  高性能网站服务器配置指南:安全稳定与高效建站核心方案  今日头条AI怎样推荐抢票工具_今日头条AI抢票工具推荐算法与筛选【技巧】  *服务器网站为何频现安全漏洞?  如何破解联通资金短缺导致的基站建设难题?  Laravel如何保护应用免受CSRF攻击?(原理和示例)  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  Swift中swift中的switch 语句  Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程