博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
发送验证码后做倒计时
阅读量:7040 次
发布时间:2019-06-28

本文共 2875 字,大约阅读时间需要 9 分钟。

hot3.png

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;        }    }    }

转载于:https://my.oschina.net/wenchengxu123/blog/491961

你可能感兴趣的文章
ThreadLocal
查看>>
学习myBatis - 如何配置myBatis
查看>>
LOJ #6053. 简单的函数
查看>>
[PA2014]Druzyny
查看>>
MapReduce - reduce function problem
查看>>
mysql 获取 汉字字段首字母(转)
查看>>
最佳加法表达式
查看>>
springboot profile 日志配置
查看>>
C++typedef的详细用法
查看>>
UML学习总结(2)——StartUML 各种类图的例子
查看>>
Spring MVC学习总结(2)——Spring MVC常用注解说明
查看>>
Java加密算法(一)——BASE64与单向加密算法MD5&SHA&MAC
查看>>
Django REST framework 自定义(认证、权限、访问频率)组件
查看>>
关于mysql存储过程的definer的问题
查看>>
MariaDB安装及简单使用
查看>>
其它课程中的python---4、Matplotlib最最最最简单使用
查看>>
php实现快速排序
查看>>
JavaScript&jQuery.for循环
查看>>
vim学习
查看>>
JavaScript责任链模式
查看>>