2018-07-18

作者: 前端大神121212 | 来源:发表于2018-07-18 10:04 被阅读5次
    //倒计时时间
        __block int timeout = 60;
        
        dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);//创建globle队列
        //创建timer 定时器
        dispatch_source_t  _timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue);
         //每秒执行。 设置1s触发一次,0s的误差
        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 源
                dispatch_async(dispatch_get_main_queue(), ^{
                    //回主线程  更新UI   设置界面的按钮显示 根据自己需求设置
                    weakSelf.getCodeBtn.enabled = YES;
                    [weakSelf.getCodeBtn setTitle: @"获取验证码" forState:UIControlStateNormal];
                });
            }
            else
            {
                int seconds = timeout % 60;
                NSString *strTime = [NSString stringWithFormat:@"%.0d", seconds];
                dispatch_async(dispatch_get_main_queue(), ^{
                    
                    //回主线程 更新UI   设置界面的按钮显示 根据自己需求设置
                    weakSelf.getCodeBtn.enabled = NO;
                    weakSelf.getCodeBtn.titleLabel.textAlignment = NSTextAlignmentCenter;
                    
                    if (strTime.length == 0) {
                        [self.getCodeBtn setTitle:[NSString stringWithFormat:@"验证码(60)"] forState:UIControlStateDisabled];
                    }
                    else
                    {
                        [self.getCodeBtn setTitle:[NSString stringWithFormat:@"验证码(%@)",strTime] forState:UIControlStateDisabled];
                        
                    }
                    
                });
                
                timeout--;
            }
        });
         //开始执行dispatch源
        dispatch_resume(_timer);

相关文章

网友评论

    本文标题:2018-07-18

    本文链接:https://www.haomeiwen.com/subject/rkznpftx.html