`
jsntghf
  • 浏览: 2476421 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

使用GCD实现倒计时

    博客分类:
  • iOS
阅读更多
__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实现倒计时功能

    今天给大家介绍一个GCD实现倒计时功能,源码GCDForTime,使用GCD机制来实现倒计时功能。Demo实现的是类似注册页面发送验证码的倒计时。

    iOS GCD timer 计时器

    iOS GCD timer 计时器 自己封装直接使用即可 GCD实现的计时器解决timer内存不好管理问题。

    GCD实现倒计时(iPhone源代码)

    来源:github/GCDForTimeLicence:Custom作者:__西海岸  使用GCD机制来实现倒计时功能。Demo实现的是类似注册页面发送验证码的倒计时。 小编注:感谢开发者@__西海岸 。

    Swift4使用GCD实现计时器

    主要为大家详细介绍了Swift4使用GCD实现计时器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    使用GCD封装的OC计时器

    2:使用的是GCD的技术,优势在于不会随着页面的切换卡顿,不会与主线程冲突,堵塞 3:充分暴露出了各种API,可扩张性好 4:技术比较一般勿喷,如有建议,感谢各位交流 5:可以转载,请说明转载出处 还要写50个字吗?...

    ios-验证码倒计时.zip

    采用GCD的方式来写的,因为GCD这种方式的倒计时要比NStimer的精准的多

    在ARC下使用GCD实现单例模式对应的Demo

    在ARC下使用GCD实现单例模式对应的Demo。

    ios 实现倒计时的两种方式

    主要介绍了ios实现倒计时的两种方式,第一种方式使用NSTimer来实现,第二种方式使用GCD来实现。具体内容详情大家参考下本

    iOS实现短信验证码倒计时

    主要介绍了iOS实现短信验证码倒计时功能,一种方法是利用NSTimer计时器,另一种方法是利用GCD实现短信验证码倒计时,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    iOS简单易用的GCD计时器的实现原理

    在学习iOS过程中,想定大家对于定时器都不陌生,在日常开发中总会碰到需要计时器的功能,常见的定时器有NSTimer、GCD、CADisplayLink。网上也有很多的教程介绍三者的区别,今天主要讲的是GCD这种方式使用以及封装。 ...

    ZYGCD计时器:GCD计时器

    ZYGCDTimer ZYGCDTimer主要用于替代NSTimer ,不会强持有...使用target-selector创建计时器 + ( instancetype )timerWithTimeInterval:( NSTimeInterval )interval target:( id )aTarget selector:( SEL )aSelector

    gcd方法代码测试

    gcd的基础方法使用,线程和队列的使用 gcd的基础方法使用,线程和队列的使用

    Swift普通单利和gcd单利实现

    iOS Swift语言实现得普通单利和gcd单利实现~免费分享

    iOS实现手机获取验证码倒计时效果

    手机获取验证码的倒计时效果,实现很简单,附倒计时效果完整代码 之前做项目使用的是NSTimer做的倒计时效果,效果不太好。今天学习了下用GCD做,效果还是不错的。 关键代码如下:(完整代码) //创建一个全局...

    NSThread GCD

    NSThread GCD的例子代码。这是一个针对初学者的好代码啊。

    大恒GCD-0401M电动台控制器 用户使用手册 Ver1.0(中文版)

    大恒GCD-0401M电动台控制器 用户使用手册 Ver1.0(中文版)

    GCD使用的相关方法

    上传代码中是GCD使用的一些基础和延伸的方法,对于了解GCD的用法,很有帮助。

    swift-GCD使用大全

    葵花宝典之GCD常用和不常用API说明和Demo演示,让你轻松不费脑力的理解GCD的应用场景和操作姿势

    iOS 使用GCD封装下载通用类

    使用GCD封装下载通用类IOS版本,能更好的管理在整个APP的下载流程。

Global site tag (gtag.js) - Google Analytics