zoukankan      html  css  js  c++  java
  • 按钮倒计时的GCD 方法

    - (void)startCountDownAction{

        //开始倒计时  codebtn 是发送验证码的btn ,也是倒计时的UI

        self.codeBttn.enabled = NO;

        __block int timeout = 60;

        [self.codeBttn setTitle:@"60" forState:UIControlStateNormal];

        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(), ^{

                    

                    //倒计时结束

                    self.codeBttn.enabled = YES;

                    [self.codeBttn setTitle:@"发送验证码" forState:UIControlStateNormal];

                    

                });

                

            }else{

                int seconds = timeout % 60;

                NSString *strTime = [NSString stringWithFormat:@"%.2d",seconds];

                dispatch_async(dispatch_get_main_queue(), ^{

                    

                    [self.codeBttn setTitle:strTime forState:UIControlStateNormal];

                    

                });

                timeout--;

                

            }

        });

        dispatch_resume(_timer);

    }

  • 相关阅读:
    WebView自适应屏幕
    shell脚本:遍历删除
    查看Mysql执行计划
    Spring 源码学习(八) AOP 使用和实现原理
    Java:控制反转(IoC)与依赖注入(DI)
    浏览器-开发者工具
    查看kafka消息消费情况
    shell脚本:遍历删除文本内路径上文件
    聚簇索引与非聚簇索引(也叫二级索引)
    有关MySQL
  • 原文地址:https://www.cnblogs.com/wangxiaorui/p/5484565.html
Copyright © 2011-2022 走看看