iOS发送验证码倒计时应用

发布时间 - 2026-01-10 21:49:34    点击率:

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# iOS验证码倒计时  # iOS发送验证码倒计时  # iOS倒计时应用  # IOS实现验证码倒计时功能(一)  # iOS获取短信验证码倒计时的两种实现方法  # Swift实现iOS应用中短信验证码倒计时功能的实例分享  # IOS实现验证码倒计时功能(二)  # iOS 验证码按钮倒计时功能  # iOS实现手机获取验证码倒计时效果  # iOS获取验证码倒计时效果  # iOS实现短信验证码倒计时  # iOS登录时验证手机号与倒计时发送验证码问题详解  # 验证码  # 倒计时  # 才可以  # 可以直接  # 设置为  # 经常会  # 回调  # 大家多多  # 开始了  # 每秒钟  # 如上图  # queue  # int  # timeout  # __block  # dispatch_queue_t  # _timer  # dispatch_source_create  # DISPATCH_SOURCE_TYPE_TIMER  # dispatch_get_global_queue 


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


相关推荐: 微信推文制作网站有哪些,怎么做微信推文,急?  动图在线制作网站有哪些,滑动动图图集怎么做?  谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程  Win11怎样安装网易有道词典_Win11安装词典教程【步骤】  Python函数文档自动校验_规范解析【教程】  Laravel Fortify是什么,和Jetstream有什么关系  1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤  Laravel怎么解决跨域问题_Laravel配置CORS跨域访问  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  html如何与html链接_实现多个HTML页面互相链接【互相】  网站建设保证美观性,需要考虑的几点问题!  佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】  Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践  高防服务器如何保障网站安全无虞?  如何在阿里云ECS服务器部署织梦CMS网站?  昵图网官网入口 昵图网素材平台官方入口  Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理  JavaScript如何实现继承_有哪些常用方法  phpredis提高消息队列的实时性方法(推荐)  独立制作一个网站多少钱,建立网站需要花多少钱?  Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南  香港服务器网站卡顿?如何解决网络延迟与负载问题?  如何在新浪SAE免费搭建个人博客?  Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作  黑客如何通过漏洞一步步攻陷网站服务器?  php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】  Bootstrap整体框架之CSS12栅格系统  laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法  微信小程序 闭包写法详细介绍  Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决  Laravel如何使用查询构建器?(Query Builder高级用法)  利用 Google AI 进行 YouTube 视频 SEO 描述优化  Laravel怎么实现API接口鉴权_Laravel Sanctum令牌生成与请求验证【教程】  Python面向对象测试方法_mock解析【教程】  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程  Laravel如何从数据库删除数据_Laravel destroy和delete方法区别  今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】  java中使用zxing批量生成二维码立牌  深圳网站制作培训,深圳哪些招聘网站比较好?  如何用PHP工具快速搭建高效网站?  如何在自有机房高效搭建专业网站?  Laravel如何使用Scope本地作用域_Laravel模型常用查询逻辑封装技巧【手册】  EditPlus中的正则表达式 实战(1)  QQ浏览器网页版登录入口 个人中心在线进入  Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】  LinuxShell函数封装方法_脚本复用设计思路【教程】  如何基于云服务器快速搭建个人网站?  西安专业网站制作公司有哪些,陕西省建行官方网站?  PHP正则匹配日期和时间(时间戳转换)的实例代码