这里有2个要注意的点
1、这个button初始化时要设为custom类型的(避免倒数秒数时文字闪烁);
2、NSTimer要invalidate掉
声明一个全局timer
NSTimer *timer;
下面初始化timer调用倒计时方法
sender.tag = 992;
timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(dealYzmBut) userInfo:nil repeats:YES];
下面是调用的方法
#pragma mark --- 点击获取验证码时,验证码按钮倒数计时,倒数完重新发送验证码
static int timeValue = 60;
- (void)dealYzmBut{
UIButton *sender = (UIButton *)[self.view viewWithTag:992];
if (timeValue == 0) {
[sender setBackgroundColor:[UIColor colorWithRed:53/255.0 green:163/255.0 blue:223/255.0 alpha:1]];
[sender setTitle:@"重新发送" forState:0];
sender.userInteractionEnabled = YES;
timeValue = 60;
[timer invalidate];
return;
}
[sender setBackgroundColor:[UIColor lightGrayColor]];
sender.userInteractionEnabled = NO;
[sender setTitle:[NSString stringWithFormat:@"倒计时%ds",timeValue] forState:0];
timeValue--;
}
“`