一直觉得自己写的不是技术,而是情怀,一个个的教程是自己这一路走来的痕迹。靠专业技能的成功是最具可复制性的,希望我的这条路能让你们少走弯路,希望我能帮你们抹去知识的蒙尘,希望我能帮你们理清知识的脉络,希望未来技术之巅上有你们也有我。
OC Control BtnCountDown(验证码倒计时)下载链接
今天是2021年春节 初一 祝大家春节快乐
效果
使用
@property (nonatomic,strong) UIButton *verificationCodeBtn;
@property (nonatomic,strong) BtnCountDown *btnCountDown;
self.btnCountDown = [BtnCountDown new];
self.verificationCodeBtn = [UIButton new];
self.verificationCodeBtn.addTo(self.view).bgColor([UIColor redColor]).str(@"获取验证码").fnt(16).color([UIColor whiteColor]).borderRadius(4).makeCons(^{
make.center.equal.view(self.view);
make.height.equal.constants(35);
make.width.equal.constants(120);
}).onClick(^{
[self.btnCountDown startCount:YES countDownBtn:self.verificationCodeBtn btnTitleColor:[UIColor whiteColor] btnBackgroung:[UIColor redColor]];
});
2021.07.16对获取验证码进行修改。下面说说我对这个按键的使用,上面的使用比较简单。
获取验证码 按键
self.VCodeBtn = [UIButton new];
self.VCodeBtn.addTo(self.view).str(@"获取验证码").color([Color nonActivated]).fnt(16).borderRadius(8).makeCons(^{
make.centerY.equal.view(self.VCodeIcon);
make.right.equal.view(self.view).constants(-20);
make.height.equal.constants(35);
make.width.equal.constants(90);
}).onClick(^{
//获取验证码接口
[self.viewModel getSendVCodeWithMobile:self.phoneCode withEvent:self.event withAreaCode:@"86"];
/*
控制验证码按键
btn 按键对象
countDownTitleColor 倒数时的颜色
countDownbgColor 倒数时的背景
finishCountDownTitleColor 倒数完毕的颜色
finishcountDownbgColor 倒数完毕的背景颜色
*/
[self.btnCountDown startCount:YES countDownBtn:self.VCodeBtn byCountDownTitleColor:[Color nonActivated] byCountDownBgColor:[UIColor whiteColor] byFinishCountDownTitleColor:[Color theme] byFinishcountDownbgColor:[UIColor whiteColor]];
});
一般来说在获取验证码之前会控制 获取验证码按键是否允许点击。
#pragma mark - 控制获取验证码按键是否允许点击
-(void)controlCodeBtnByPhoneNum:(NSString *)phoneNum byTime:(NSInteger)time{
//需要传递时间的目的
//防止用户输入手机号码点击获取验证码按键 秒数倒数的过程中把手机号码删除 再输入另一个号码变成按键可点击
self.VCodeBtn.color(([Regular validateMobile:phoneNum] && time <= 0) ? [Color theme] : [Color textSub]);
self.VCodeBtn.enabled = ([Regular validateMobile:phoneNum] && time <= 0) ? YES : NO;
}
//这个方法是校验合理的手机号码就返回 YES
[Regular validateMobile:phoneNum]
上面的方法一般会用在
1.进来页面的时候。
2.输入手机号码的时候
一般需要注意的是,如果输入一个手机号码,发送验证码到后台,后台返回报错,例如:手机号码未注册的时候,有些公司的需要求将倒数的效果设置成还原获取验证码的可点击状态。
获取验证码失败的回调代理。
-(void)registAndResetViewModel:(RegistAndResetViewModel *)viewModel failVCode:(NSString *)error{
[FHXHUD showErrorTime:1.0 showTitle:error];
self.btnCountDown.remainingSeconds = 0;//由于获取验证码失败,设置倒计时时间为0。
}