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);

    }

  • 相关阅读:
    耐心
    百度年会
    聊聊今年的春节联欢晚会
    网速调查
    热烈欢迎两位园友加盟
    遥远的路
    博客园博客程序架构设计图初稿
    [公告]社区与博客实现了登录整合
    博客园上海俱乐部第二次活动继续报道
    [收藏]《观察与思考》:相信中国,寻找下一个比尔·盖茨
  • 原文地址:https://www.cnblogs.com/wangxiaorui/p/5484565.html
Copyright © 2011-2022 走看看