iOS-按钮60s倒计时

来源:互联网 发布:淘宝商品商家流程 编辑:程序博客网 时间:2024/04/30 07:39

__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.codeButtonsetTitle:@"获取验证码"forState:UIControlStateNormal];

                self.codeButton.userInteractionEnabled =YES;

            });

        }else{

            //            int minutes = timeout / 60;

            int seconds = timeout %61;

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

            dispatch_async(dispatch_get_main_queue(), ^{

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

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

                [self.codeButtonsetTitle:[NSStringstringWithFormat:@"(%@)",strTime]forState:UIControlStateNormal];

                self.codeButton.userInteractionEnabled =NO;

                

            });

            timeout--;

            

        }

    });

    dispatch_resume(self.timer);

0 0