-(void)startTime{
__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(), ^{
[self.getIdentifyCodeBt setTitle:@"获取验证码" forState:UIControlStateNormal];
self.getIdentifyCodeBt.userInteractionEnabled = YES;
[self.getIdentifyCodeBt setTitleColor:THEME_RED forState:UIControlStateNormal];
self.getIdentifyCodeBt.backgroundColor = [UIColor whiteColor];
self.getIdentifyCodeBt.layer.borderColor = THEME_RED.CGColor;
});
}else{
dispatch_async(dispatch_get_main_queue(), ^{
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1];
[self.getIdentifyCodeBt setTitle:[NSString stringWithFormat:@"%zd秒后失效",timeout] forState:UIControlStateNormal];
[self.getIdentifyCodeBt setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
self.getIdentifyCodeBt.backgroundColor = [UIColor lightGrayColor];
self.getIdentifyCodeBt.layer.borderColor = [UIColor clearColor].CGColor;
self.getIdentifyCodeBt.clipsToBounds = YES;
[UIView commitAnimations];
self.getIdentifyCodeBt.userInteractionEnabled = NO;
});
timeout--;
}
});
dispatch_resume(_timer);
}
#import <UIKit/UIKit.h> @interface UIButton (XSCountDown) - (void)xs_beginCountDownWithDuration:(NSTimeInterval)duration; - (void)xs_stopCountDown; @end
#import "UIButton+XSCountDown.h"
#import "ThemeColor.h"
static NSTimer *_countTimer;
static NSTimeInterval _count;
static NSString *_title;
@implementation UIButton (XSCountDown)
- (void)xs_beginCountDownWithDuration:(NSTimeInterval)duration {
_title = self.titleLabel.text;
_count = duration;
_countTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(xs_updateTitle) userInfo:nil repeats:YES];
[[NSRunLoop mainRunLoop] addTimer:_countTimer forMode:NSRunLoopCommonModes];
self.userInteractionEnabled = NO;
[self setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
self.backgroundColor = [UIColor lightGrayColor];
self.layer.borderColor = [UIColor clearColor].CGColor;
self.clipsToBounds = YES;
}
- (void)xs_stopCountDown {
[_countTimer invalidate];
_countTimer = nil;
_count = 60.0;
[self setTitle:_title forState:UIControlStateNormal];
self.userInteractionEnabled = YES;
}
- (void)xs_updateTitle {
NSString *countString = [NSString stringWithFormat:@"%lis 后失效", (long)_count - 1];
self.userInteractionEnabled = NO;
[self setTitle:countString forState:UIControlStateNormal];
if (_count-- <= 1.0) {
[self xs_stopCountDown];
[self setTitleColor:THEME_RED forState:UIControlStateNormal];
self.backgroundColor = [UIColor whiteColor];
self.layer.borderColor = THEME_RED.CGColor;
}
}
@end
[self.verifyBt xs_beginCountDownWithDuration:60.0];
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有