__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, dispatch_walltime(NULL, 0), 1.0 * NSEC_PER_SEC, 0); // 每秒执行 dispatch_source_set_event_handler(_timer, ^{ if(timeout <= 1) { // 倒计时结束 dispatch_source_cancel(_timer); dispatch_async(dispatch_get_main_queue(), ^{ getCodeButton.backgroundColor = RGBACOLOR(232, 154, 37, 1); getCodeButton.userInteractionEnabled = YES; [getCodeButton setTitle:@"获取验证码" forState:UIControlStateNormal]; [getCodeButton setTitle:@"获取验证码" forState:UIControlStateHighlighted]; }); } else { dispatch_async(dispatch_get_main_queue(), ^{ getCodeButton.backgroundColor = [UIColor lightGrayColor]; getCodeButton.userInteractionEnabled = NO; [getCodeButton setTitle:[NSString stringWithFormat:@"%d", timeout] forState:UIControlStateNormal]; }); timeout--; } }); dispatch_resume(_timer);
相关推荐
今天给大家介绍一个GCD实现倒计时功能,源码GCDForTime,使用GCD机制来实现倒计时功能。Demo实现的是类似注册页面发送验证码的倒计时。
iOS GCD timer 计时器 自己封装直接使用即可 GCD实现的计时器解决timer内存不好管理问题。
来源:github/GCDForTimeLicence:Custom作者:__西海岸 使用GCD机制来实现倒计时功能。Demo实现的是类似注册页面发送验证码的倒计时。 小编注:感谢开发者@__西海岸 。
主要为大家详细介绍了Swift4使用GCD实现计时器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
2:使用的是GCD的技术,优势在于不会随着页面的切换卡顿,不会与主线程冲突,堵塞 3:充分暴露出了各种API,可扩张性好 4:技术比较一般勿喷,如有建议,感谢各位交流 5:可以转载,请说明转载出处 还要写50个字吗?...
采用GCD的方式来写的,因为GCD这种方式的倒计时要比NStimer的精准的多
在ARC下使用GCD实现单例模式对应的Demo。
主要介绍了ios实现倒计时的两种方式,第一种方式使用NSTimer来实现,第二种方式使用GCD来实现。具体内容详情大家参考下本
主要介绍了iOS实现短信验证码倒计时功能,一种方法是利用NSTimer计时器,另一种方法是利用GCD实现短信验证码倒计时,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
在学习iOS过程中,想定大家对于定时器都不陌生,在日常开发中总会碰到需要计时器的功能,常见的定时器有NSTimer、GCD、CADisplayLink。网上也有很多的教程介绍三者的区别,今天主要讲的是GCD这种方式使用以及封装。 ...
ZYGCDTimer ZYGCDTimer主要用于替代NSTimer ,不会强持有...使用target-selector创建计时器 + ( instancetype )timerWithTimeInterval:( NSTimeInterval )interval target:( id )aTarget selector:( SEL )aSelector
gcd的基础方法使用,线程和队列的使用 gcd的基础方法使用,线程和队列的使用
iOS Swift语言实现得普通单利和gcd单利实现~免费分享
手机获取验证码的倒计时效果,实现很简单,附倒计时效果完整代码 之前做项目使用的是NSTimer做的倒计时效果,效果不太好。今天学习了下用GCD做,效果还是不错的。 关键代码如下:(完整代码) //创建一个全局...
NSThread GCD的例子代码。这是一个针对初学者的好代码啊。
大恒GCD-0401M电动台控制器 用户使用手册 Ver1.0(中文版)
上传代码中是GCD使用的一些基础和延伸的方法,对于了解GCD的用法,很有帮助。
葵花宝典之GCD常用和不常用API说明和Demo演示,让你轻松不费脑力的理解GCD的应用场景和操作姿势
使用GCD封装下载通用类IOS版本,能更好的管理在整个APP的下载流程。