方法一: 网上用的很多的一种,不多说,直接上代码. -(void)startTime{ __block int timeout= 60; //倒计时时间 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,di 在iOS开发中,获取短信验证码并进行倒计时显示是一个常见的功能需求,通常用于用户注册、登录或修改信息等场景。本文将介绍两种实现iOS获取短信验证码倒计时的方法。 方法一: 这种方法主要依赖于GCD(Grand Central Dispatch)中的定时器`dispatch_source_t`来实现。设置一个60秒的倒计时时间`timeout`,然后创建一个全局并发队列`queue`。接下来,创建一个定时器源`_timer`,设置其类型为`DISPATCH_SOURCE_TYPE_TIMER`,并设定每隔1秒执行一次。倒计时事件处理器`dispatch_source_set_event_handler`会根据`timeout`的值来更新按钮的状态:当`timeout`小于等于0时,表示倒计时结束,恢复按钮的初始状态;否则,更新按钮的文字、颜色等属性,并减少`timeout`的值。启动定时器`dispatch_resume(_timer)`。 方法二: 此方法是通过扩展UIButton类,创建一个新的分类来实现。在`.h`文件中定义两个方法:`xs_beginCountDownWithDuration:`用于开始倒计时,`xs_stopCountDown`用于停止倒计时。在`.m`文件中,定义了三个静态变量:`_countTimer`存储定时器,`_count`存储倒计时时间,`_title`保存原始按钮标题。`xs_beginCountDownWithDuration:`方法中,记录原始标题,设置倒计时时间,并创建一个`NSTimer`对象,设置其间隔时间为1秒,每到时间就调用方法处理倒计时逻辑。`xs_stopCountDown`方法则用于停止定时器,恢复按钮的初始状态。 两种方法各有优缺点:方法一使用GCD,避免了线程同步的问题,且代码较为简洁;而方法二通过分类扩展了UIButton,使得代码复用性更强,但需要额外管理`NSTimer`。 这两种实现方式都可以有效地满足iOS应用中短信验证码倒计时的需求。开发者可以根据项目需求和个人喜好选择合适的方法。在实际开发中,还应考虑性能优化,如合理调度线程,避免不必要的UI更新,以及在不需要倒计时时及时释放资源,确保应用程序的稳定性和效率。






























- 粉丝: 5
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 【Python爬虫】从请求到数据存储全流程指南:涵盖网络请求、HTML解析与数据处理基础教程
- 由百度文心大模型驱动的 AirSim 无人机系统
- Selenium测试版浏览器和驱动
- 基于OpenCV的工业机器视觉软件开发.pdf
- 基于百度文心大模型驱动airsim无人机
- Python在图书情报学的应用与扩散研究.pdf
- 基于ELF文件恢复的Linux内存取证技术研究.caj
- 基于MATLAB地下水溶质运移预测模型的构建.pdf### 文章总结
- 管理系统源码-Python编程-基于SQLite的用户管理系统实现:涵盖CRUD功能的数据库操作入门教程
- 用于调用生成式大语言模型的 API 服务器系统
- 全国小区数据(包含字段:小区名、省份、城市、区域、地址、纬度(百度地图)、经度(百度地图)、纬度(GPS)、经度(GPS)、物业费
- 【大模型 NLP 算法付费干货大礼包】一站式拥有,学习科研工作全无忧!
- SQL Server 2000权威指南:从入门到精通
- 一项基于大模型的App隐私开关探测技术
- python 练习题 ,python 题目
- python 练习题,python 三角形题目



评论0