- (void)createwebView{
[backmsgBtn setTitle:@"发送验证码"forState:UIControlStateNormal];
[backmsgBtn setTitleColor:[UIColorcolorWithRGBHex:0x1e98ef]forState:UIControlStateNormal];
backmsgBtn.layer.borderWidth =1;
backmsgBtn.layer.borderColor = [[UIColorcolorWithRGBHex:0x1e98ef]CGColor];
backmsgBtn.layer.cornerRadius =4*kWCWLScale;
backmsgBtn.titleLabel.font = [UIFontsystemFontOfSize:14*kWCWLScale];
[backmsgBtn addTarget:selfaction:@selector(startTime:)forControlEvents:UIControlEventTouchUpInside];
[self.viewaddSubview:backmsgBtn];
}
/**验证码获取*/
- (void)startTime:(UIButton *)backmsgBtn{
__blockint 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(), ^{
//设置界面的按钮显示根据自己需求设置
[backmsgBtn setTitle:@"获取验证码"forState:UIControlStateNormal];
backmsgBtn.userInteractionEnabled =YES;
backmsgBtn.backgroundColor = [UIColorwhiteColor];
[backmsgBtn setTitleColor:[UIColorcolorWithRGBHex:0x1e98ef]forState:UIControlStateNormal];
backmsgBtn.layer.borderColor = [[UIColorcolorWithRGBHex:0x1e98ef]CGColor];
});
}else{
int seconds = timeout %60;
NSString *strTime = [NSStringstringWithFormat:@"%.2d", seconds];
dispatch_async(dispatch_get_main_queue(), ^{
//设置界面的按钮显示、自己需求设置
//NSLog(@"____%@",strTime);
[UIViewbeginAnimations:nilcontext:nil];
[UIViewsetAnimationDuration:0.5];
[backmsgBtn setTitleColor:[UIColorcolorWithRGBHex:0xececec]forState:UIControlStateNormal];
[backmsgBtn setTitle:[NSStringstringWithFormat:@"%@s重新发送",strTime]forState:UIControlStateNormal];
backmsgBtn.backgroundColor = [UIColorwhiteColor];
backmsgBtn.layer.borderWidth =1;
backmsgBtn.layer.borderColor = [[UIColorcolorWithRGBHex:0xececec]CGColor];
[UIViewcommitAnimations];
backmsgBtn.userInteractionEnabled =NO;
});
timeout--;
}
});
dispatch_resume(_timer);
//获取验证码
(下面写你验证码的接口请求体)
//...
//...
//...
//...
//...
}
效果如下