zoukankan      html  css  js  c++  java
  • 倒计时

    @property (nonatomic, assign) NSInteger timeout;

     

    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];

        button.frame = CGRectMake(100, 100, 200, 100);

        [button setTitle:@"跳转" forState:UIControlStateNormal];

        [button setTitleColor:[UIColor redColor] forState:UIControlStateNormal];

        [button setTitleColor:[UIColor grayColor] forState:UIControlStateSelected];

        [button addTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside];

        [self.view addSubview:button];

     

    - (void)click:(UIButton *)btn{

        [self countdownButton:btn timeout:59];

    }

    - (void)countdownButton:(UIButton*)button timeout:(NSInteger)totalTime

    {

        //    __block int timeout = totalTime;

        _timeout = totalTime;

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

                    button.selected = NO;

                    button.userInteractionEnabled = YES;

                });

            }

            else {

                int seconds = _timeout % 60;

                button.selected = YES;

                button.userInteractionEnabled = NO;

                

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

                dispatch_async(dispatch_get_main_queue(), ^{

                    [button setTitle:strTime forState:UIControlStateSelected];

                });

                _timeout--;

            }

        });

        dispatch_resume(_timer);

    }

  • 相关阅读:
    洛谷 P1194 飞扬的小鸟 题解
    洛谷 P1197 星球大战 题解
    洛谷 P1879 玉米田Corn Fields 题解
    洛谷 P2796 Facer的程序 题解
    洛谷 P2398 GCD SUM 题解
    洛谷 P2051 中国象棋 题解
    洛谷 P1472 奶牛家谱 Cow Pedigrees 题解
    洛谷 P1004 方格取数 题解
    洛谷 P2331 最大子矩阵 题解
    洛谷 P1073 最优贸易 题解
  • 原文地址:https://www.cnblogs.com/h-tao/p/5156915.html
Copyright © 2011-2022 走看看