iOS 验证码按钮倒计时功能

在app 注册或者登录 需要验证码的地方、为了避免短时间内刷验证码、往往会加上一层验证。

倒计时结束后、可以重新获取!

代码实现如下:

// _CountdownTime 倒计时总时间;

//_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:@"重新获取" 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 验证码按钮倒计时功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

以上是 iOS 验证码按钮倒计时功能 的全部内容, 来源链接: utcz.com/z/340009.html

回到顶部