// // ForgetViewController.m // Ifish // // Created by imac on 15/9/27. // Copyright © 2015年 imac. All rights reserved. // #import "ForgetViewController.h" #import "ResetViewController.h" #import "AFNetworking.h" #import "XWCountryCodeController.h" @interface ForgetViewController () @property (weak, nonatomic) IBOutlet UIButton *timerButton; @property (weak, nonatomic) IBOutlet UIButton *nextTepBtn; @property(nonatomic,copy)NSString*verifyData; @property(nonatomic,copy) NSString *areaCode; @end @implementation ForgetViewController - (void)viewDidLoad { [super viewDidLoad]; [self addTitleViewWithTitle:@"忘记密码"]; self.view.backgroundColor= [UIColor colorWithPatternImage:[UIImage imageNamed:@"enter_background"]]; [self setTextkeyboadType]; // UIImage *backImage = [UIImage imageNamed:@"leftItem"]; // [[UIBarButtonItem appearance] setBackButtonBackgroundImage:[backImage resizableImageWithCapInsets:UIEdgeInsetsMake(0,20,0, 0)] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; // [[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(0,-60) forBarMetrics:UIBarMetricsDefault]; // //默认86 self.areaCode = @"86"; [_timerButton addTarget:self action:@selector(timeTap) forControlEvents:UIControlEventTouchUpInside]; [self.countryCodeBtn addTarget:self action:@selector(countryCodeBtnAction) forControlEvents:UIControlEventTouchUpInside]; } -(void)setTextkeyboadType{ self.phoneNumberFiled.layer.masksToBounds=YES; self.phoneNumberFiled.layer.cornerRadius=6; self.verifyTextFiled.layer.masksToBounds=YES; self.verifyTextFiled.layer.cornerRadius=6; _timerButton.layer.masksToBounds=YES; _timerButton.layer.cornerRadius=6; _timerButton.backgroundColor=COLOR_LABEL_TITLE; _nextTepBtn.layer.masksToBounds=YES; _nextTepBtn.layer.cornerRadius=6; _nextTepBtn.backgroundColor=COLOR_LABEL_TITLE; self.countryView.layer.masksToBounds = YES; self.countryView.layer.cornerRadius = 6; UIView*phoneView=[[UIView alloc]initWithFrame:CGRectMake(0,0, 10, 10)]; self.phoneNumberFiled.leftView=phoneView; self.phoneNumberFiled.leftViewMode=UITextFieldViewModeAlways; UIView*phoneView1=[[UIView alloc]initWithFrame:CGRectMake(0,0, 10, 10)]; self.verifyTextFiled.leftView=phoneView1; self.verifyTextFiled.leftViewMode=UITextFieldViewModeAlways; } -(void)timeTap{ if (self.phoneNumberFiled.text.length==0) { [self.view makeToast:@"请输入正确手机号"]; return; } __block int timeout=60; //倒计时时间 dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); dispatch_source_t _timer1 = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0,queue); dispatch_source_set_timer(_timer1,dispatch_walltime(NULL, 0),1.0*NSEC_PER_SEC, 0); //每秒执行 dispatch_source_set_event_handler(_timer1, ^{ if(timeout<=0){ //倒计时结束,关闭 dispatch_source_cancel(_timer1); dispatch_async(dispatch_get_main_queue(), ^{ //设置界面的按钮显示 根据自己需求设置 [_timerButton setTitle:@"发送验证码" forState:UIControlStateNormal]; _timerButton.userInteractionEnabled = YES; }); }else{ // int minutes = timeout / 60; int seconds = timeout % 60; NSString *strTime=@""; if (seconds==0) { strTime=@"60"; }else{ strTime = [NSString stringWithFormat:@"%.2d", seconds]; } dispatch_async(dispatch_get_main_queue(), ^{ //设置界面的按钮显示 根据自己需求设置 NSLog(@"____%@",strTime); [_timerButton setTitle:[NSString stringWithFormat:@"%@秒后发送",strTime] forState:UIControlStateNormal]; _timerButton.userInteractionEnabled = NO; _timerButton.backgroundColor=[UIColor lightGrayColor]; }); timeout--; } }); dispatch_resume(_timer1); NSUserDefaults*userdefult=[NSUserDefaults standardUserDefaults]; NSString*forgetPhoneNumber=self.phoneNumberFiled.text; [userdefult setObject:forgetPhoneNumber forKey:@"forgetPhoneNumber"]; [userdefult synchronize]; [self getVerifycode]; } #pragma mark - 获取验证码新(SMS) -(void)getVerifycode{ [IFISHHTTPTOOL getverifyWithTimerButton:_timerButton addphoneNumber:self.phoneNumberFiled.text zone:self.areaCode result:^(NSError *err) { }]; } #define mark - 获取阿里验证码 已去 -(void)getAliVerify{ [AFHttpTool getSecurityCodeWithPhoneNumber:self.phoneNumberFiled.text sendType:@"2" success:^(id response) { if (response) { NSDictionary *reDic=[NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingMutableContainers error:nil]; _verifyData=reDic[@"data"]; if ([reDic[@"result"] isEqualToString:@"100"]) { [self.view makeToast:@"验证码发送成功"]; }else if([reDic[@"result"] isEqualToString:@"101"]){ [self.view makeToast:@"获取验证失败"]; // 获取验证失败 }else if ([reDic[@"result"] isEqualToString:@"201"]){ [self.view makeToast:@"手机已经注册过"]; }else if([reDic[@"result"] isEqualToString:@"202"]){ [self.view makeToast:@"手机未注册"]; }else if([reDic[@"result"] isEqualToString:@"203"]){ } } } failure:^(NSError *err) { UIAlertView *alter =[[UIAlertView alloc]initWithTitle:@"温馨提示" message:@"请检查您的网络" delegate:self cancelButtonTitle:@"取消" otherButtonTitles: nil]; [alter show]; }]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } #pragma mark-处理收键盘 -(BOOL)textFieldShouldReturn:(UITextField *)textField{ [textField resignFirstResponder]; return YES; } -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ [self hiddenKeybord]; } -(void)hiddenKeybord{ [self.phoneNumberFiled resignFirstResponder]; [self.verifyTextFiled resignFirstResponder]; } - (IBAction)nextStep:(id)sender { //BOOL isMacth=[dataContorl valiMobile:self.phoneNumberFiled.text]; if (self.verifyTextFiled.text.length==0) { [self.view makeToast:@"请输入正确验证码和手机号"]; return; } __weak typeof(self)weakSelf=self; [SMSSDK commitVerificationCode:weakSelf.verifyTextFiled.text phoneNumber:weakSelf.phoneNumberFiled.text zone:weakSelf.areaCode result:^(SMSSDKUserInfo *userInfo, NSError *error) { { if (!error) { NSLog(@"验证成功"); ResetViewController*vc=[[ResetViewController alloc]init]; [weakSelf.navigationController pushViewController:vc animated:YES]; } else { NSLog(@"错误信息:%@",error); NSString *str =@"验证码验证失败"; [self.view makeToast:str]; } } }]; } #pragma mark - 选择国家 -(void)countryCodeBtnAction { XWCountryCodeController *CountryCodeVC = [[XWCountryCodeController alloc] init]; [CountryCodeVC toReturnCountryCode:^(NSString *countryCodeStr) { [self.countryCodeBtn setTitle:countryCodeStr forState:UIControlStateNormal]; NSArray *array = [countryCodeStr componentsSeparatedByString:@"+"]; self.areaCode = array[1]; }]; [self presentViewController:CountryCodeVC animated:YES completion:nil]; } @end