ios 实现倒计时的两种方式

发布时间 - 2026-01-10 22:43:45    点击率:

 方法1:使用NSTimer来实现

        主要使用的是NSTimer的scheduledTimerWithTimeInterval方法来每1秒执行一次timeFireMethod函数,timeFireMethod进行倒计时的一些操作,完成时把timer给invalidate掉就ok了,代码如下: 

 secondsCountDown = 60;//60秒倒计时 
 countDownTimer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timeFireMethod) userInfo:nil repeats:YES]; 
-(void)timeFireMethod{ 
  secondsCountDown--; 
  if(secondsCountDown==0){ 
   [countDownTimer invalidate]; 
  } 
} 

方法2:使用GCD来实现

代码如下:

__block int timeout=300; //倒计时时间 
 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, ^{ 
   if(timeout<=0){ //倒计时结束,关闭 
     dispatch_source_cancel(_timer); 
     dispatch_release(_timer); 
     dispatch_async(dispatch_get_main_queue(), ^{ 
//设置界面的按钮显示 根据自己需求设置 
       。。。。。。。。 
     }); 
   }else{ 
     int minutes = timeout / 60; 
     int seconds = timeout % 60; 
     NSString *strTime = [NSString stringWithFormat:@"%d分%.2d秒后重新获取验证码",minutes, seconds]; 
     dispatch_async(dispatch_get_main_queue(), ^{ 
       //设置界面的按钮显示 根据自己需求设置 
。。。。。。。。 
     }); 
     timeout--; 
   } 
 }); 
 dispatch_resume(_timer); 

以上所述是小编给大家介绍的ios实现倒计时的两种方式,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# ios实现倒计时  # IOS开发代码分享之用nstimer实现倒计时功能  # IOS实现验证码倒计时功能(一)  # IOS关于大型网站抢购、距活动结束  # 剩余时间倒计时的实现代码  # iOS中实现简单易懂秒杀倒计时/倒计时代码  # iOS中让多个cell上都出现倒计时的分析与实现  # iOS实现毫秒倒计时的方法详解  # iOS获取短信验证码倒计时的两种实现方法  # iOS启动页倒计时跳过按钮功能  # Swift实现iOS应用中短信验证码倒计时功能的实例分享  # iOS实现秒杀活动倒计时  # 倒计时  # 来实现  # 小编  # 的是  # 在此  # 两种  # 给大家  # 验证码  # 方法来  # 所述  # 感谢大家  # class  # java  # secondsCountDown  # brush  # countDownTimer  # repeats  # void  # GCD  # nil 


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


相关推荐: JavaScript常见的五种数组去重的方式  品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?  Laravel Fortify是什么,和Jetstream有什么关系  Python文件操作最佳实践_稳定性说明【指导】  如何用景安虚拟主机手机版绑定域名建站?  使用Dockerfile构建java web环境  Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】  如何在Windows环境下新建FTP站点并设置权限?  Laravel如何处理JSON字段的查询和更新_Laravel JSON列操作与查询技巧  手机网站制作与建设方案,手机网站如何建设?  Swift中switch语句区间和元组模式匹配  bing浏览器学术搜索入口_bing学术文献检索地址  公司网站制作需要多少钱,找人做公司网站需要多少钱?  HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】  Laravel如何构建RESTful API_Laravel标准化API接口开发指南  Laravel如何优化应用性能?(缓存和优化命令)  如何快速建站并高效导出源代码?  Android滚轮选择时间控件使用详解  详解Nginx + Tomcat 反向代理 负载均衡 集群 部署指南  香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  如何用美橙互联一键搭建多站合一网站?  Laravel如何使用Sanctum进行API认证?(SPA实战)  Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】  iOS UIView常见属性方法小结  如何快速辨别茅台真假?关键步骤解析  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框  作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】  最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?  矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?  laravel怎么使用数据库工厂(Factory)生成带有关联模型的数据_laravel Factory生成关联数据方法  EditPlus中的正则表达式 实战(2)  如何在宝塔面板创建新站点?  如何解决hover在ie6中的兼容性问题  详解jQuery停止动画——stop()方法的使用  大学网站设计制作软件有哪些,如何将网站制作成自己app?  Java类加载基本过程详细介绍  悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音  高防网站服务器:DDoS防御与BGP线路的AI智能防护方案  Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率  香港服务器网站卡顿?如何解决网络延迟与负载问题?  BootStrap整体框架之基础布局组件  Laravel如何处理CORS跨域请求?(配置示例)  Laravel如何发送系统通知?(Notification渠道示例)  Linux系统运维自动化项目教程_Ansible批量管理实战  Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】  Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】  Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出  Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】