`
re_reference
  • 浏览: 234093 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

GCD 倒计时

阅读更多
-(void)startTime{
    __block int timeout=30; //倒计时时间
    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_async(dispatch_get_main_queue(), ^{
                //设置界面的按钮显示 根据自己需求设置
                [l_timeButton setTitle:@"发送验证码" forState:UIControlStateNormal];
                l_timeButton.userInteractionEnabled = YES;
            });
        }else{
            //            int minutes = timeout / 60;
            int seconds = timeout % 60;
            NSString *strTime = [NSString stringWithFormat:@"%.2d", seconds];
            dispatch_async(dispatch_get_main_queue(), ^{
                //设置界面的按钮显示 根据自己需求设置
                NSLog(@"____%@",strTime);
                [l_timeButton setTitle:[NSString stringWithFormat:@"%@秒后重新发送",strTime] forState:UIControlStateNormal];
                l_timeButton.userInteractionEnabled = NO;
                
            });
            timeout--;
            
        }
    });
    dispatch_resume(_timer);
}
分享到:
评论

相关推荐

    GCD实现倒计时功能

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

    ios-验证码倒计时.zip

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

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

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

    GCD异步获取图片

    GCD异步获取图片

    GCD 源码分析.pdf

    GCD 源码分析.pdf

    二进制gcd算法

    二进制gcd算法,为算法导论后面的思考题

    GCD最大公约数

    GCD最大公约数int main() { int a,b; int c; while(cin&gt;&gt;a&gt;&gt;b) { c=gcd(a,b); cout; } return 0; }

    gcd方法代码测试

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

    GCD编程逻辑

    gcd多核编程

    GCD的高级用法

    GCD的一些高级用法,是不容错过的多线程开发学习材料

    iOS GCD多核编程

    1.iOS多核任务,比NSThead更易用的异步方法 2.展示了如何停止一个GCD方法

    iOS GCD timer 计时器

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

    Behavioral GCD in Verilog

    Behavioral GCD in Verilog,用于对两个数求最大公约数

    计算GCD的简单java程序

    创建最常用的除数计算器;。。。GCD计算器允许您快速查找一组数字的最大公约数;。。。当两个数的最大公约数为1时,这两个数称为互质或相对素数。

    gcdtest1示例源码

    GCD的示例源码,使用串行队列实现简单的预加载

    GCD IOS example

    Grand Central Dispatch (GCD)是异步执行任务的技术之一。一般将应用程序中记述的线程管理用的代码在系统级中实现。由于线程管理是作为系统的一部分来实现的,因此可统一管理,也可执行任务,这样就比以前的线程更...

    swift-GCD使用大全

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

    GCD使用的相关方法

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

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

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

    iOS GCD 开发教程 完整版

    iOS GCD 开发教程 完整版 有需要的同学看看 iOS GCD 开发教程 完整版 有需要的同学看看 iOS GCD 开发教程 完整版 有需要的同学看看

Global site tag (gtag.js) - Google Analytics