ifish/Ifish/controllers/logAddRegistController/ForgetViewController.m

254 lines
8.9 KiB
Objective-C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// 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 (weak, nonatomic) IBOutlet UIButton *switchBtn;
@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{
BOOL isTextCode = [[_switchBtn titleForState:UIControlStateNormal] isEqualToString:@"语音验证码"];
[IFISHHTTPTOOL getverifyWithTimerButton:_timerButton addphoneNumber:self.phoneNumberFiled.text zone:self.areaCode isTextCode:isTextCode 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<UITouch *> *)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];
}
#pragma mark -- Actions --
// 切换语音验证码还是短信验证码
- (IBAction)switchAction:(UIButton* )sender {
if ([[self.timerButton titleForState:UIControlStateNormal] isEqualToString:@"语音验证码"]) {
[self.timerButton setTitle:@"短信验证码" forState:UIControlStateNormal];
[sender setTitle:@"语音验证码" forState:UIControlStateNormal];
} else if ([[self.timerButton titleForState:UIControlStateNormal] isEqualToString:@"短信验证码"]) {
[self.timerButton setTitle:@"语音验证码" forState:UIControlStateNormal];
[sender setTitle:@"短信验证码" forState:UIControlStateNormal];
}
}
@end