zoukankan      html  css  js  c++  java
  • iOS-登录发送验证码时60秒倒计时,直接用

    __block NSInteger timeout= 60; //倒计时时间
    
    KWeakSelf
    
    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(), ^{
    
    KStrongSelf
    
    //设置界面的按钮显示 根据自己需求设置
    
    self.getCodeBtn.enabled = YES;
    
    [self.getCodeBtn setTitle:@"获取验证码" forState:UIControlStateNormal];
    
    });
    
    }else{
    
    self.getCodeBtn.enabled = NO;
    
    NSString *strTime = [NSString stringWithFormat:@"%zd秒",timeout];
    
    dispatch_async(dispatch_get_main_queue(), ^{
    
    //设置界面的按钮显示 根据自己需求设置
    
    [self.getCodeBtn setTitle:strTime forState:UIControlStateNormal];
    
    });
    
    timeout--;
    
    }
    
    });
    
    dispatch_resume(_timer);
  • 相关阅读:
    PHP学习(一)----变量及字符串
    swith
    重写和重载的区别
    静态对象与非静态对象
    继承
    面向对象
    五个对面向对象的实例
    双色球 36选7
    菱形java代码
    双色球代码
  • 原文地址:https://www.cnblogs.com/WJJ-Dream/p/5786563.html
Copyright © 2011-2022 走看看