// // GiGaRegistViewController.m // GIGA // // Created by lianxiang on 2018/8/21. // Copyright © 2018年 com.giga.ios. All rights reserved. // #import "GiGaRegistViewController.h" #import "TTTAttributedLabel.h" #import "GiGaWebViewController.h" #import "NSTimer+Convenience.h" #import "GiGaBaseAPiRequest.h" #import "GiGaNetManager.h" #import "MBProgressHUD.h" #import "GiGaAttributedLabel.h" #import "UINavigationBar+Custom.h" @interface GiGaRegistViewController () @property (weak, nonatomic) IBOutlet UITextField *phoneNumberTextField; @property (weak, nonatomic) IBOutlet UITextField *codeTextField; @property (weak, nonatomic) IBOutlet UIButton *sendCodeBtn; @property (weak, nonatomic) IBOutlet UITextField *passTexFied; @property (weak, nonatomic) IBOutlet UIButton *checkBtn; @property (weak, nonatomic) IBOutlet UIButton *registBtn; @property (weak, nonatomic) IBOutlet GiGaAttributedLabel *useragreementLabel; @property(nonatomic,strong) NSTimer*timer; @property(nonatomic) NSInteger time; @end @implementation GiGaRegistViewController - (void)viewDidLoad { [super viewDidLoad]; //self.title = @"注册"; //[self addNavTitile:@"注册"]; _time = 60; // Do any additional setup after loading the view from its nib. [self confirmUI]; [self.sendCodeBtn addTarget:self action:@selector(sendCodeBtnAction:) forControlEvents:UIControlEventTouchUpInside]; [self.registBtn addTarget:self action:@selector(registBtnAction:) forControlEvents:UIControlEventTouchUpInside]; [self.checkBtn addTarget:self action:@selector(checkBtnAction:) forControlEvents:UIControlEventTouchUpInside]; [self resetBackimg]; } -(void)resetBackimg{ UIButton *backBtn = [UIButton buttonWithType:UIButtonTypeCustom]; backBtn.frame = CGRectMake(0, 0, 40, 40); [backBtn setImage:[UIImage imageNamed:@"nav_redback"] forState:UIControlStateNormal]; [backBtn setImageEdgeInsets:UIEdgeInsetsMake(0,-14, 0, 14)]; //backBtn.backgroundColor = [UIColor redColor]; [backBtn addTarget:self action:@selector(backItemAction) forControlEvents:UIControlEventTouchUpInside]; UIBarButtonItem *backItem = [[UIBarButtonItem alloc] initWithCustomView:backBtn]; self.navigationItem.leftBarButtonItem = backItem; } -(void)backItemAction{ [self.navigationController popViewControllerAnimated:YES]; } -(void)viewDidAppear:(BOOL)animated{ [super viewDidAppear:animated]; } -(void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; [self.navigationController.navigationBar setClearNav]; } -(void)dealloc{ if (_timer) { [_timer unfireTimer]; [_timer invalidate]; _timer = nil; } } -(void)sendCodeBtnAction:(UIButton *)btn{ if (self.phoneNumberTextField.text == nil) { GIGA_ShowToast(@"请输入手机号"); return; } if (![GiGaHelper isPhoneNumber:self.phoneNumberTextField.text]) { GIGA_ShowToast(@"请输入正确手机号"); return; } btn.userInteractionEnabled = NO; [self startTimer:btn]; [self sendVerifiCode:btn]; } -(void)startTimer:(UIButton *)btn{ if (_time>0) { _timer = [NSTimer scheduledTimerWithTimeInterval:1 count:60 callback:^{ NSString *timeStr=[NSString stringWithFormat:@"%lds",(long)self->_time]; [btn setTitle:timeStr forState:UIControlStateNormal]; self->_time--; if (self->_time==0) { [self.sendCodeBtn setTitle:@"发送短信" forState:UIControlStateNormal]; self->_time =60; btn.userInteractionEnabled = YES; } }]; [[NSRunLoop currentRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes]; } } #pragma mark 发送短信验证码 -(void)sendVerifiCode:(UIButton *)btn{ [MBProgressHUD showHUDAddedTo:self.view animated:YES]; NSString *phoneNumber = self.phoneNumberTextField.text; NSDictionary *param = @{ @"mobile":phoneNumber }; GiGaBaseAPiRequest *api = [GiGaBaseAPiRequest initWithRequestPath:@"msg/sms/v1/registersendcode" method:RequestPostMethod parms:param]; [api requstDataWithResult:^(GiGaAPIResult *result) { [MBProgressHUD hideHUDForView:self.view animated:YES]; GILog(@"短信获取%@",result.message); btn.userInteractionEnabled = YES; }]; } -(void)confirmUI{ self.useragreementLabel.highlightedTextColor = GIGARGB(219, 23, 37, 1); self.useragreementLabel.textColor = GIGARGB(145,145,145, 1); self.useragreementLabel.delegate = self; self.useragreementLabel.enabledTextCheckingTypes= NSTextCheckingTypePhoneNumber|NSTextCheckingTypeAddress|NSTextCheckingTypeLink; self.useragreementLabel.linkAttributes = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:NO] forKey:(NSString *)kCTUnderlineStyleAttributeName]; //链接正常状态文本属性NSTextCheckingTypeLink; NSString *text = @"已阅读并同意《用户服务协议》"; [self.useragreementLabel setText:text afterInheritingLabelAttributesAndConfiguringWithBlock:^NSMutableAttributedString *(NSMutableAttributedString *mutableAttributedString) { NSRange fontRange = [[mutableAttributedString string] rangeOfString:@"用户服务协议" options:NSCaseInsensitiveSearch]; UIFont* sysFont = [UIFont fontWithName:@"PingFangSC-Semibold" size:10.f]; CTFontRef font = CTFontCreateWithName((__bridge CFStringRef)sysFont.fontName, sysFont.pointSize, NULL); if (font) { [mutableAttributedString addAttribute:(NSString *)kCTFontAttributeName value:(__bridge id)font range:fontRange]; [mutableAttributedString addAttribute:(NSString *)kCTForegroundColorAttributeName value:(__bridge id)[GIGARGB(219, 23, 37, 1) CGColor] range:fontRange]; } return mutableAttributedString; }]; NSRange fontRange = [text rangeOfString:@"用户服务协议" options:NSCaseInsensitiveSearch]; [self.useragreementLabel addLinkToTransitInformation:@{ @"SourceName":@"useragreement" } withRange:fontRange]; self.registBtn.layer.masksToBounds = YES; self.registBtn.layer.cornerRadius = self.registBtn.frame.size.height / 2; } #pragma mark - TTTAttributedLabelDelegate -(void)attributedLabel:(TTTAttributedLabel *)label didSelectLinkWithURL:(NSURL *)url { } -(void)attributedLabel:(TTTAttributedLabel *)label didSelectLinkWithTransitInformation:(NSDictionary *)components { NSLog(@"components%@",components); // GiGaWebViewController *webView = [[GiGaWebViewController alloc] init]; // webView.souceType = WebSourceTypeLoacalHtml; // webView.fileName = components[@"SourceName"]; // [self.navigationController pushViewController:webView animated:YES]; GiGaWebViewController *webView = [[GiGaWebViewController alloc] init]; webView.souceType = WebSourceTypeUrlLink; webView.url = @"http://www.youtansu.com"; [self.navigationController pushViewController:webView animated:YES]; } #pragma mark 注册 -(void)registBtnAction:(UIButton *)btn{ if (self.phoneNumberTextField.text.length ==0) { GIGA_ShowToast(@"请输入手机号"); return; } if (![GiGaHelper isPhoneNumber:self.phoneNumberTextField.text]) { GIGA_ShowToast(@"请输入正确手机号"); return; } if (self.codeTextField.text.length == 0) { GIGA_ShowToast(@"请输入验证码"); return; } if (!(self.passTexFied.text.length >=6 && self.passTexFied.text.length <=20) || self.passTexFied.text.length == 0) { GIGA_ShowToast(@"请输入6~20位密码"); return; } [self regeist:btn]; } //注册 -(void)regeist:(UIButton *)btn{ btn.userInteractionEnabled = NO; NSDictionary *param = @{@"username":self.phoneNumberTextField.text,@"verifiedCode":self.codeTextField.text,@"password":self.passTexFied.text}; GiGaBaseAPiRequest *api = [GiGaBaseAPiRequest initWithRequestPath:@"sys/v1/phoneregister" method:RequestPostMethod parms:param]; [api requstDataWithResult:^(GiGaAPIResult *result) { btn.userInteractionEnabled = YES; GILog(@"注册->%@",result.message); if (result.code == 0) { NC_POST_NAME_OBJECT(kUserRegistSucccess,self.phoneNumberTextField.text); }else if (result.code == GiGAErrorCode_USER_EXIST){ GIGA_ShowToast(@"用户已存在"); NC_POST_NAME_OBJECT(kUserRegistSucccess,self.phoneNumberTextField.text); }else{ GIGA_ShowToast(result.message); } }]; } -(void)checkBtnAction:(UIButton *)btn{ btn.selected = !btn.selected; if (btn.selected) { [btn setImage:[UIImage imageNamed:@"btn_turndown"] forState:UIControlStateSelected]; [self.registBtn setBackgroundColor:[UIColor lightGrayColor]]; self.registBtn.userInteractionEnabled = NO; }else{ [btn setImage:[UIImage imageNamed:@"btn_right"] forState:UIControlStateNormal]; [self.registBtn setBackgroundColor:GIGARGB(0, 222, 189, 1)]; self.registBtn.userInteractionEnabled = YES; } } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end