//
|
// forgetPasswordViewController.m
|
// BuWanVideo2.0
|
//
|
// Created by apple on 16/10/11.
|
// Copyright © 2016年 com.yeshi.buwansheque.ios. All rights reserved.
|
//
|
|
#import "forgetPasswordViewController.h"
|
|
@interface forgetPasswordViewController (){
|
UITextField * FillInTheAccountNumber;
|
UITextField * FillInThePassWord;
|
UITextField * FillInTheVerificationCode;
|
UIButton * registerBtn;
|
UIButton * VerificationCode;
|
BOOL End_the_countdown;//这是一个在倒计时部分会用到的一个变量,用于判断倒计时是自己结束的,还是验证码请求失败,我们手动结束的倒计时,如果是自动结束的为Yes,手动结束的为NO,默认为NO值,所以需要在请求验证码成功的时候,改变该值。
|
}
|
|
@end
|
|
@implementation forgetPasswordViewController
|
|
- (void)viewDidLoad {
|
[super viewDidLoad];
|
// Do any additional setup after loading the view from its nib.
|
self.navigationItem.title = @"忘记密码";
|
self.view.backgroundColor=[UIColor whiteColor];
|
|
//设置账号登录的字体样式
|
self.navigationController.navigationBar.titleTextAttributes =@{NSFontAttributeName:[UIFont systemFontOfSize:18],NSForegroundColorAttributeName:[UIColor whiteColor]};
|
|
//设置返回按钮
|
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
|
[button setImage:[[UIImage imageNamed:@"详情页面返回"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] forState:UIControlStateNormal];
|
[button addTarget:self action:@selector(back) forControlEvents:UIControlEventTouchUpInside];
|
button.frame = CGRectMake(0, 0, 32, 32);
|
UIBarButtonItem *iconBarItem=[[UIBarButtonItem alloc] initWithCustomView:button];
|
self.navigationItem.leftBarButtonItem = iconBarItem;
|
|
//设置使用模态跳转的返回按钮
|
if(_ispresent){
|
//隐藏状态栏
|
[[UIApplication sharedApplication] setStatusBarHidden:YES];
|
//添加返回按钮
|
UIButton *backButton=[[UIButton alloc] initWithFrame:CGRectMake(15, 15, 32, 32)];
|
[backButton setImage:[UIImage imageNamed:@"取消登录"] forState:UIControlStateNormal];
|
[backButton addTarget:self action:@selector(presentBack) forControlEvents:UIControlEventTouchUpInside];
|
[self.view addSubview:backButton];
|
}
|
//设置背景色
|
self.view.backgroundColor=KGlobalLightGreyColor_245;
|
|
//邮箱输入框
|
FillInTheAccountNumber=[[UITextField alloc] initWithFrame:CGRectMake(50, 85, KScreenW-100, 35)];
|
[FillInTheAccountNumber.layer setMasksToBounds:YES];
|
[FillInTheAccountNumber.layer setCornerRadius:5.0];
|
[FillInTheAccountNumber setBackgroundColor:KGlobalLightGreyColor_255];
|
[FillInTheAccountNumber.layer setBorderWidth:1.0];
|
[FillInTheAccountNumber.layer setBorderColor:(kGlobalLightGreyColor_210.CGColor)];
|
FillInTheAccountNumber.keyboardType=UIKeyboardTypeEmailAddress;
|
FillInTheAccountNumber.autocorrectionType=UITextAutocorrectionTypeNo;
|
FillInTheAccountNumber.placeholder=[NSString stringWithFormat:@"请输入注册邮箱"];
|
if (self.accountNum.length>0) {
|
FillInTheAccountNumber.text=self.accountNum;
|
}
|
|
//前面空一个间距
|
[self setTextFieldLeftPadding:FillInTheAccountNumber forWidth:10.0];
|
[self.view addSubview:FillInTheAccountNumber];
|
//验证码输入框
|
FillInTheVerificationCode=[[UITextField alloc] initWithFrame:CGRectMake(50, 140, KScreenW-218, 35)];
|
[FillInTheVerificationCode.layer setMasksToBounds:YES];
|
[FillInTheVerificationCode.layer setCornerRadius:5.0];
|
[FillInTheVerificationCode setBackgroundColor:KGlobalLightGreyColor_255];
|
FillInTheVerificationCode.keyboardType=UIKeyboardTypeNumbersAndPunctuation;
|
[FillInTheVerificationCode.layer setBorderWidth:1.0];
|
[FillInTheVerificationCode.layer setBorderColor:(kGlobalLightGreyColor_210.CGColor)];
|
FillInTheVerificationCode.placeholder=[NSString stringWithFormat:@"验证码"];
|
|
//前面空一个间距
|
[self setTextFieldLeftPadding:FillInTheVerificationCode forWidth:10.0];
|
[self.view addSubview:FillInTheVerificationCode];
|
//获取验证码的按钮
|
VerificationCode=[[UIButton alloc] initWithFrame:CGRectMake(KScreenW-150, 140, 100, 35)];
|
[VerificationCode.layer setMasksToBounds:YES];
|
[VerificationCode.layer setCornerRadius:5.0];
|
[VerificationCode.layer setBorderWidth:1.0];
|
[VerificationCode.layer setBackgroundColor:kGlobalYellowColor.CGColor];
|
[VerificationCode.layer setBorderColor:(kGlobalLightGreyColor_210.CGColor)];
|
[VerificationCode setTitle:@"获取验证码" forState:UIControlStateNormal];
|
VerificationCode.titleLabel.font=[UIFont systemFontOfSize:15.0];
|
[VerificationCode addTarget:self action:@selector(startTime:) forControlEvents:UIControlEventTouchUpInside];
|
|
[VerificationCode setTitleColor:kGlobalMainColor forState:UIControlStateNormal];
|
[self.view addSubview:VerificationCode];
|
//输入新密码的输入框
|
FillInThePassWord=[[UITextField alloc] initWithFrame:CGRectMake(50, 195, KScreenW-100, 35)];
|
[FillInThePassWord.layer setMasksToBounds:YES];
|
[FillInThePassWord.layer setCornerRadius:5.0];
|
[FillInThePassWord setBackgroundColor:KGlobalLightGreyColor_255];
|
[FillInThePassWord.layer setBorderWidth:1.0];
|
[FillInThePassWord.layer setBorderColor:kGlobalLightGreyColor_218.CGColor];
|
FillInThePassWord.placeholder=[NSString stringWithFormat:@"输入新密码"];
|
//前面空一个间距
|
[self setTextFieldLeftPadding:FillInThePassWord forWidth:10.0];
|
[self.view addSubview:FillInThePassWord];
|
//确认修改的按钮
|
registerBtn=[[UIButton alloc] initWithFrame:CGRectMake(70, KScreenH-110, KScreenW-140, 32)];
|
[registerBtn.layer setMasksToBounds:YES];
|
[registerBtn.layer setCornerRadius:5.0];
|
registerBtn.backgroundColor=kGlobalYellowColor;
|
[registerBtn setTitle:@"确 认" forState:UIControlStateNormal];
|
[registerBtn setTitleColor:kGlobalMainColor forState:UIControlStateNormal];
|
registerBtn.titleLabel.font=[UIFont systemFontOfSize:15.0];
|
[registerBtn addTarget:self action:@selector(resetPassword:) forControlEvents:UIControlEventTouchUpInside];
|
[self.view addSubview:registerBtn];
|
|
}
|
|
/**
|
确认重置密码
|
*/
|
-(void)resetPassword:(UIButton *)sender{
|
//首先,需要验证电子邮箱格式是否正确
|
if ([Share isEmailAddress:FillInTheAccountNumber.text]) {
|
//其次,验证密码是否为6~18位
|
if (FillInThePassWord.text.length>5&&FillInThePassWord.text.length<18) {
|
//最后,验证 验证码是否为6位数 ,否者可以判断验证码错误
|
if (FillInTheVerificationCode.text.length==6) {
|
[Share animateButtonWithButton:sender WithTitle:@"修改中" WithColor:[UIColor colorWithRed:165/255.0 green:42/255.0 blue:42/255.0 alpha:1]];
|
[[YTHNetInterface startInterface] getsetPwdWithUid:[YTHsharedManger startManger].Uid WithSystem:@"1" WithEmail:FillInTheAccountNumber.text WithPwd:FillInThePassWord.text WithVerifyCode:FillInTheVerificationCode.text withBlock:^(BOOL isSuccessful, id result, NSString *error) {
|
if (isSuccessful) {
|
NSString *err=[[NSString alloc] initWithFormat:@"%@",[result objectForKey:@"Error"]];
|
if (err.length==0) {
|
[Share delay:1.5 withBlack:^{
|
[Share animateButtonWithButton:sender WithTitle:@"修改成功" WithColor:[UIColor colorWithRed:238/255.0 green:99/255.0 blue:99/255.0 alpha:1]];
|
}];
|
[Share delay:2.5 withBlack:^{
|
if(_ispresent){//模态
|
[self presentBack];
|
}else{
|
[self back];
|
}
|
}];
|
}else{
|
[Share delay:1.5 withBlack:^{
|
[Share animateButtonWithButton:sender WithTitle:@"验证码错误!" WithColor:[UIColor colorWithRed:0/255.0 green:0/255.0 blue:128/255.0 alpha:1]];
|
}];
|
[Share delay:3.0 withBlack:^{
|
[Share animateButtonWithButton:sender WithTitle:@"确 认" WithColor:kGlobalMainColor];
|
}];
|
}
|
}else{
|
[Share delay:1.5 withBlack:^{
|
[Share animateButtonWithButton:sender WithTitle:@"请求失败" WithColor:[UIColor colorWithRed:0/255.0 green:0/255.0 blue:128/255.0 alpha:1]];
|
}];
|
[Share delay:3.0 withBlack:^{
|
[Share animateButtonWithButton:sender WithTitle:@"确 认" WithColor:kGlobalMainColor];
|
}];
|
}
|
}];
|
}else{
|
if (FillInTheVerificationCode.text.length==0) {
|
[Share ShakeView:FillInTheVerificationCode WithInfomation:@"验证码不能为空!"];
|
[VerificationCode setTitle:@"点击这里获取" forState:UIControlStateNormal];
|
[VerificationCode setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
|
}else{
|
[Share ShakeView:FillInTheVerificationCode WithInfomation:@"验证码错误!"];
|
}
|
}
|
}else{
|
[Share ShakeView:FillInThePassWord WithInfomation:@" 密码长度设为6~18位"];
|
}
|
}else{
|
//邮箱格式不正确
|
[Share ShakeView:FillInTheAccountNumber WithInfomation:@" 邮箱格式错误!"];
|
//同时检查密码是否正确
|
if (!(FillInThePassWord.text.length>6&&FillInThePassWord.text.length<18)) {
|
[Share ShakeView:FillInThePassWord WithInfomation:@" 密码长度设为6~18位"];
|
}
|
|
}
|
}
|
|
/**
|
获取验证码,倒计时
|
|
@param sender 获取验证码的按钮
|
*/
|
-(void)startTime:(UIButton *)sender{
|
if ([Share isEmailAddress:FillInTheAccountNumber.text]){
|
__block int timeout=98; //倒计时时间
|
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
|
dispatch_source_t _timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0,queue);
|
dispatch_source_set_timer(_timer,dispatch_walltime(NULL, 0),1.0*NSEC_PER_SEC, 0); //每秒执行
|
|
dispatch_source_set_event_handler(_timer, ^{
|
if(timeout<=0){ //倒计时结束,关闭
|
dispatch_source_cancel(_timer);
|
dispatch_async(dispatch_get_main_queue(), ^{
|
//设置界面的按钮显示 根据自己需求设置(倒计时结束后调用)
|
if (End_the_countdown) {
|
[sender setTitle:@"获取验证码" forState:UIControlStateNormal];
|
}
|
|
//设置可点击
|
sender.userInteractionEnabled = YES;
|
[sender setBackgroundColor:kGlobalYellowColor];
|
//设置不可点击
|
sender.userInteractionEnabled = YES;
|
[sender setTitleColor:kGlobalMainColor forState:UIControlStateNormal];
|
});
|
}else{
|
int seconds = timeout % 99;
|
NSString *strTime = [NSString stringWithFormat:@"%d", seconds];
|
dispatch_async(dispatch_get_main_queue(), ^{
|
[sender setTitle:[NSString stringWithFormat:@"重新发送(%@)",strTime] forState:UIControlStateNormal];
|
});
|
timeout--;
|
}
|
});
|
dispatch_resume(_timer);
|
[[YTHNetInterface startInterface] getsendVerifyCodeWithUid:[YTHsharedManger startManger].Uid WithSystem:@"1" WithEmail:FillInTheAccountNumber.text withBlock:^(BOOL isSuccessful, id result, NSString *error) {
|
if (isSuccessful) {
|
//请求成功
|
End_the_countdown=isSuccessful;
|
}else{
|
timeout=3;
|
[Share animateButtonWithButton:sender WithTitle:error WithColor:kGlobalMainColor];
|
[Share delay:3 withBlack:^{
|
[sender setBackgroundColor:kGlobalYellowColor];
|
[Share animateButtonWithButton:sender WithTitle:@"获取验证码" WithColor:kGlobalMainColor];
|
}];
|
}
|
}];
|
}else{
|
//邮箱格式不正确
|
[Share ShakeView:FillInTheAccountNumber WithInfomation:@"邮箱格式错误!"];
|
}
|
}
|
|
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
|
[FillInTheAccountNumber resignFirstResponder];
|
[FillInThePassWord resignFirstResponder];
|
[FillInTheVerificationCode resignFirstResponder];
|
}
|
|
- (void)didReceiveMemoryWarning {
|
[super didReceiveMemoryWarning];
|
// Dispose of any resources that can be recreated.
|
}
|
|
/**
|
* 退出
|
*/
|
-(void)back{
|
[self.navigationController popViewControllerAnimated:YES];
|
}
|
|
/**
|
* 使用模态跳转的退出
|
*/
|
-(void)presentBack{
|
[self dismissViewControllerAnimated:YES completion:^{
|
|
}];
|
}
|
|
-(void)setTextFieldLeftPadding:(UITextField *)textField forWidth:(CGFloat)leftWidth
|
{
|
CGRect frame = textField.frame;
|
frame.size.width = leftWidth;
|
UIView *leftview = [[UIView alloc] initWithFrame:frame];
|
textField.leftViewMode = UITextFieldViewModeAlways;
|
textField.leftView = leftview;
|
}
|
|
@end
|