关闭

iOS-按钮60s倒计时

89人阅读 评论(0) 收藏 举报
分类:

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

    dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);

    self.timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0,queue);

    dispatch_source_set_timer(self.timer,dispatch_walltime(NULL, 0),1.0*NSEC_PER_SEC, 0); //每秒执行

    dispatch_source_set_event_handler(self.timer, ^{

        if(timeout<=0){ //倒计时结束,关闭

            dispatch_source_cancel(self.timer);

            dispatch_async(dispatch_get_main_queue(), ^{

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

                [self.codeButton setTitle:@"获取验证码" forState:UIControlStateNormal];

                self.codeButton.userInteractionEnabled = YES;

            });

        }else{

            //            int minutes = timeout / 60;

            int seconds = timeout % 61;

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

            dispatch_async(dispatch_get_main_queue(), ^{

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

                NSLog(@"____%@",strTime);

                [self.codeButton setTitle:[NSString stringWithFormat:@"(%@)",strTime] forState:UIControlStateNormal];

                self.codeButton.userInteractionEnabled = NO;

                

            });

            timeout--;

            

        }

    });

    dispatch_resume(self.timer);

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:5861次
    • 积分:293
    • 等级:
    • 排名:千里之外
    • 原创:22篇
    • 转载:20篇
    • 译文:0篇
    • 评论:0条
    文章分类