In order to avoid a short period of time to brush the verification code, it often adds a layer of verification in the app registration or login where verification code is required.
After the countdown is over, you can get it again!
The code is implemented as follows:
_countdowntime countdown Total time;
_timer Timer
- (void) StartTime: (UIButton *) Verificationcodebutton {__block Nsinteger timeout=[_countdowntime IntegerValue]; dispatch_queue_t Queue= Dispatch_get_global_queue (Dispatch_queue_priority_default,0); _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 (),^{[Verificationcodebutton settitle:@"re-fetch"Forstate:uicontrolstatenormal]; Verificationcodebutton.userinteractionenabled=YES; Verificationcodebutton.alpha=1.0; Verificationcodebutton.backgroundcolor=[Uicolor Whitecolor]; }); } Else{nsstring*strtime = [NSString stringWithFormat:@"%lds", (Long) timeout]; Dispatch_async (Dispatch_get_main_queue (),^{[Verificationcodebutton settitle:strtime forstate:uicontrolstatenormal]; Verificationcodebutton.userinteractionenabled=NO; Verificationcodebutton.backgroundcolor=[Uicolor Lighttextcolor]; }); Timeout--; } }); Dispatch_resume (_timer);}
IOS captcha Button Countdown