#pragma mark - 验证码倒计时验证码60s(连续快速点击)
/** 验证码倒计时UI绘制 */
- (void)drawVerifyCodeCountdownUI:(UIButton *)sender {
__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(), ^{
//设置界面的按钮显示 根据自己需求设置
[sender setTitle:@"重新获取" forState:UIControlStateNormal];
sender.userInteractionEnabled = YES;
// sender.backgroundColor = [UIColor colorWithWhite:0.3 alpha:0.5];
});
} else {
int seconds = timeout;
NSString *strTime = [NSString stringWithFormat:@"%d", seconds];
dispatch_async(dispatch_get_main_queue(), ^{
//让按钮变为不可点击的灰色
// sender.backgroundColor = [UIColor grayColor];
sender.userInteractionEnabled = NO;
//设置界面的按钮显示 根据自己需求设置
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1];
[sender setTitle:[NSString stringWithFormat:@"%@s",strTime] forState:UIControlStateNormal];
[UIView commitAnimations];
});
timeout--;
}
});
dispatch_resume(_timer);
}
iOS 验证码倒计时验证码60s(连续快速点击
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 今天我们来写一个简单的获取短信验证码功能,希望对你有所帮助哦, 先看一下效果: 写代码的时间到了: 看到这里是不是...
- 前言: 点击获取验证码倒计时,在项目中很多都会用到,尤其是现在应用App当中手机验证登录,都会用到。本着封装一个倒...
- 做一朵白莲花吧,在物欲横流的社会底层静静发育,不沾染一点灰尘,慢慢伸出理想的枝干,穿越尔虞我诈的茂密荷叶,...
- 最近项目里的登录界面是用Xib拖的。项目很赶没办法。关于验证码遇到的细节上的小问题给大家分享下: 给验证码Butt...