• 倒计时


       self.btn_yanzhengma.enabled = NO;

        __block int timeout=10; //倒计时时间

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

                    //设置界面的按钮显示 根据自己需求设置

                    

                });

            }else{

                int minutes = timeout / 60;

                int seconds = timeout % 60;

                NSString *strTime = [NSString stringWithFormat:@"%.d秒后重新获取验证码",seconds];

                dispatch_async(dispatch_get_main_queue(), ^{

                    //设置界面的按钮显示 根据自己需求设置

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

                    self.btn_yanzhengma.enabled = YES;

                });

                timeout--;

                

            }  

        });  

        dispatch_resume(_timer);

     

       self.btn_yanzhengma.enabled = NO;
        __block int timeout=10; //倒计时时间
        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(), ^{
                    //设置界面的按钮显示 根据自己需求设置
                    
                });
            }else{
                int minutes = timeout / 60;
                int seconds = timeout % 60;
                NSString *strTime = [NSString stringWithFormat:@"%.d秒后重新获取验证码",seconds];
                dispatch_async(dispatch_get_main_queue(), ^{
                    //设置界面的按钮显示 根据自己需求设置
                    [self.btn_yanzhengma setTitle:strTime forState:UIControlStateNormal];
                    self.btn_yanzhengma.enabled = YES;
                });
                timeout--;
                
            }  
        });  
        dispatch_resume(_timer);
    

      

     secondsCountDown = 60;//60秒倒计时
     countDownTimer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timeFireMethod) userInfo:nil repeats:YES];
    -(void)timeFireMethod{
    	secondsCountDown--;
    	if(secondsCountDown==0){
    	  [countDownTimer invalidate];
    	}
    }
    

      

  • 相关阅读:
    在宝塔中升级mysql版本
    测试winform程序到树莓派运行
    winserver2012远程桌面进入只有CMD窗口,无桌面解决方法
    一七年春末
    Linux 上通过rpm安装mysql
    Linux 上关于iptables
    Linux环境下安装JDK
    Linux上安装tomcat
    Linux 下安装redis
    Map集合按照value和key进行排序
  • 原文地址:https://www.cnblogs.com/nonato/p/4461809.html
Copyright © 2020-2023  润新知