在开发中的登录,注册,等类似功能种越来越多的假如通过发送短信来获取登录的验证码的功能,来挺高安全性。为防止出现恶意操作,往往对于发送短信的行为进行60秒的约束改功能的触发频率。
#pragma mark - 发送验证码触发方法
-(void)sendCode:(UIButton *)button{
timers = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timerStart:) userInfo:nil repeats:YES];
[self timerStart:timers];
}
-(void)timerStart:(NSTimer *)timer{
if (secound == 1) {
[timers invalidate];
secound = 60;
//验证码的按钮
verifiButton.titleLabel.font = SIZEOFFONT(15);
[verifiButton setTitle:@"发送验证码" forState:UIControlStateNormal];
verifiButton.enabled = YES;
[self releaseTimer];
}else{
secound --;
NSString *tittle = [NSString stringWithFormat:@"(%d秒)后重新获取验证码",secound];
verifiButton.titleLabel.font = SIZEOFFONT(13);
[verifiButton setTitle:tittle forState:UIControlStateNormal];
verifiButton.enabled = NO;
}
}
//释放timer并将倒计时的描述重置为60
-(void)releaseTimer{
if (timers) {
if ([timers respondsToSelector:@selector(isValid)]) {
if ([timers isValid]) {
[timers invalidate];
secound = 60;
}
}
}
}