发送验证码时设置UIButton的倒计时

#pragma mark

-(void)getYZMAction: (id)sender{

    ToastTool *tool = [ToastToolshareToastTool];

    tool.message = @"验证码已发送!";

    [tool show];


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

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

                    [getButtonsetTitle:@"发送验证码"forState:UIControlStateNormal];

                    getButton.userInteractionEnabled =YES;//设置button可点击

                });

            }else{

                //int minutes = timeout / 60;

                int seconds = timeout % 60;

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

                dispatch_async(dispatch_get_main_queue(), ^{

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

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

                    [getButtonsetTitle:[NSStringstringWithFormat:@"剩余%@",strTime]forState:UIControlStateNormal];

                    getButton.userInteractionEnabled =NO;//设置button不可点击

                    //do what you are want

                    

                    

                });

                timeout--;

                

            }

        });

        dispatch_resume(_timer);

        

    //}


    

}


你可能感兴趣的:(OC)