static int timeNumber = 60;@property (nonatomic, strong) UIButton *verificationButton;@property(nonatomic,strong)NSTimer*timeRepeat;#pragma mark ------获取验证码---------- (void)getVerification{ _verificationButton = [[UIButton alloc] initWithFrame:CGRectMake(CGRectGetMaxX(_VerificationTextField.frame)-110, 195, 90, 35)]; [_verificationButton setBackgroundImage:[UIImage imageFileNamed:@"yanzhengma"] forState:UIControlStateNormal]; [_verificationButton setTitle:@"获取验证码" forState:UIControlStateNormal]; _verificationButton.titleLabel.font =[UIFont systemFontOfSize:14]; [_verificationButton setTitleColor:[UIColor grayColor] forState:UIControlStateNormal]; [_verificationButton addTarget:self action:@selector(getVerificationButtonClick) forControlEvents:UIControlEventTouchUpInside]; [_verificationButton setTitle:@"60秒重发" forState:(UIControlStateDisabled)]; [_backScrollView addSubview:_verificationButton];}//获取验证码按钮点击- (void)getVerificationButtonClick{ NSString *string = [NSString stringWithFormat:@"%@&c=common&a=sendVerifyCode&mobile=%@",url_public,_teleTextField.text]; [self GET:string parameters:nil success:^(id responseObject) { if ([[responseObject objectForKey:@"code"] isEqualToString:@"1"]) { UIAlertView *av = [[UIAlertView alloc] initWithTitle:nil message:responseObject[@"message"] delegate:nil cancelButtonTitle:@"我知道了" otherButtonTitles:nil, nil]; [av show]; }else if ([[responseObject objectForKey:@"code"] isEqualToString:@"03"]){ UIAlertView *av = [[UIAlertView alloc] initWithTitle:nil message:responseObject[@"message"] delegate:nil cancelButtonTitle:@"我知道了" otherButtonTitles:nil, nil]; [av show]; } } failure:^(NSError *error) { }]; //非常重要的一句代码,没有的话验证码不会倒计时 _verificationButton.enabled = NO; timeNumber = 60; NSString *str_second = [NSString stringWithFormat:@"%d秒重发",timeNumber]; [_verificationButton setTitle:str_second forState:(UIControlStateDisabled)]; _timeRepeat = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timeChage) userInfo:nil repeats:YES];}-(void)timeChage{ static int nnn = 0; if (timeNumber == 60) { NSString*string = [NSString stringWithFormat:@"%d秒重发",59]; timeNumber = 59; [_verificationButton setTitle:string forState:(UIControlStateDisabled)]; }else { NSString*string = [NSString stringWithFormat:@"%d秒重发",timeNumber]; [_verificationButton setTitle:string forState:(UIControlStateDisabled)]; } if (nnn == 0) { int number = timeNumber--; if (number+1 == 0) { [_timeRepeat invalidate]; _verificationButton.enabled = YES; } } }