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


相关推荐: 在centOS 7安装mysql 5.7的详细教程  如何用低价快速搭建高质量网站?  网站建设保证美观性,需要考虑的几点问题!  Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】  Laravel如何实现密码重置功能_Laravel密码找回与重置流程  利用JavaScript实现拖拽改变元素大小  Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?  轻松掌握MySQL函数中的last_insert_id()  Laravel如何为API编写文档_Laravel API文档生成与维护方法  Laravel API资源类怎么用_Laravel API Resource数据转换  网站制作价目表怎么做,珍爱网婚介费用多少?  Laravel Blade模板引擎语法_Laravel Blade布局继承用法  Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】  简历在线制作网站免费版,如何创建个人简历?  JavaScript中的标签模板是什么_它如何扩展字符串功能  IOS倒计时设置UIButton标题title的抖动问题  深圳网站制作的公司有哪些,dido官方网站?  Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives  android nfc常用标签读取总结  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭  JS中页面与页面之间超链接跳转中文乱码问题的解决办法  小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像  Laravel如何构建RESTful API_Laravel标准化API接口开发指南  如何快速辨别茅台真假?关键步骤解析  Laravel模型事件有哪些_Laravel Model Event生命周期详解  Laravel如何实现用户注册和登录?(Auth脚手架指南)  网站页面设计需要考虑到这些问题  C++时间戳转换成日期时间的步骤和示例代码  iOS发送验证码倒计时应用  如何快速搭建高效简练网站?  大连网站制作公司哪家好一点,大连买房网站哪个好?  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  JavaScript如何实现路由_前端路由原理是什么  如何在阿里云ECS服务器部署织梦CMS网站?  Win10如何卸载预装Edge扩展_Win10卸载Edge扩展教程【方法】  Laravel中的withCount方法怎么高效统计关联模型数量  Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程  潮流网站制作头像软件下载,适合母子的网名有哪些?  黑客如何利用漏洞与弱口令入侵网站服务器?  大连 网站制作,大连天途有线官网?  Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID  微信小程序 require机制详解及实例代码  Java解压缩zip - 解压缩多个文件或文件夹实例  laravel怎么使用数据库工厂(Factory)生成带有关联模型的数据_laravel Factory生成关联数据方法  Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程  Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理  利用 Google AI 进行 YouTube 视频 SEO 描述优化  python中快速进行多个字符替换的方法小结