zoukankan      html  css  js  c++  java
  • 定时器

    • 执行一次
    double delayInSeconds = 2.0;
    dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC); 
    dispatch_after(popTime, dispatch_get_main_queue(), ^(void){ 
        //执行事件
    });



    • 重复执行
    NSTimeInterval period = 1.0; //设置时间间隔
    
    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), period * NSEC_PER_SEC, 0); //每秒执行
    
    dispatch_source_set_event_handler(_timer, ^{
        //在这里执行事件
    });
    
    dispatch_resume(_timer);


    
    
    • 倒计时
    
    

    #pragma mark Timer 短信计时

    
    

    -(void)startTime{

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

    
    

        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.verifyButton setTitle:@"发送验证码" forState:UIControlStateNormal];

    
    

                    self.verifyButton.backgroundColor = RGB(39, 142, 251);

    
    

                    [self.verifyButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];

    
    

                    self.verifyButton.enabled = YES;

    
    

                });

    
    

            }else{

    
    

                int seconds = timeout % 120;

    
    

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

    
    

                dispatch_async(dispatch_get_main_queue(), ^{

    
    

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

    
    

                    [UIView beginAnimations:nil context:nil];

    
    

                    [UIView setAnimationDuration:1];

    
    

                    [self.verifyButton setTitle:[NSString stringWithFormat:@"%@ 秒后重发",strTime] forState:UIControlStateNormal];

    
    

                    [UIView commitAnimations];

    
    

                    self.verifyButton.backgroundColor = RGB(234, 235, 236);

    
    

                    [self.verifyButton setTitleColor:[UIColor lightGrayColor] forState:UIControlStateNormal];

    
    

                    self.verifyButton.enabled = NO;

    
    

                });

    
    

                timeout--;

    
    

            }

    
    

        });

    
    

        dispatch_resume(_timer);

    
    

    }

     
  • 相关阅读:
    POJ3320 Jessica's Reading Problem
    POJ3320 Jessica's Reading Problem
    CodeForces 813B The Golden Age
    CodeForces 813B The Golden Age
    An impassioned circulation of affection CodeForces
    An impassioned circulation of affection CodeForces
    Codeforces Round #444 (Div. 2) B. Cubes for Masha
    2013=7=21 进制转换
    2013=7=15
    2013=7=14
  • 原文地址:https://www.cnblogs.com/sungk/p/5223204.html
Copyright © 2011-2022 走看看