// // mobilePhoneAndEmailConfirmController.m // ThePaperBase // // Created by Huixin on 15/8/19. // Copyright (c) 2015年 scar1900. All rights reserved. // #import "mobilePhoneAndEmailConfirmController.h" #import "registerController.h" #import "userSystemViewModel.h" @interface mobilePhoneAndEmailConfirmController () @property(nonatomic, strong)UIImageView *userImageView; @property(nonatomic, strong)UITextField *userField; @property(nonatomic, strong)UIView *userLine; @property(nonatomic, strong)UIImageView *inviteCodeImageView; @property(nonatomic, strong)UITextField *inviteCodeField; @property(nonatomic, strong)UIView *inviteCodeLine; @property(nonatomic, strong)UIButton *getCodeBtn; @property(nonatomic, strong)TPCustomButton *confirmBtn; @property(nonatomic, strong)userSystemViewModel *viewModel; @end @implementation mobilePhoneAndEmailConfirmController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. self.view.backgroundColor = [UIColor colorWithHexString:BackGroundColor]; self.titleStr = @"注册"; _viewModel = [userSystemViewModel new]; _viewModel.delegate = self; UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tap:)]; [self.view addGestureRecognizer:tapGesture]; [self.view addSubview:self.userField]; [self.view addSubview:self.userImageView]; [self.view addSubview:self.userLine]; [self.view addSubview:self.getCodeBtn]; [self.view addSubview:self.inviteCodeImageView]; [self.view addSubview:self.inviteCodeField]; [self.view addSubview:self.inviteCodeLine]; [self.view addSubview:self.confirmBtn]; if (![TPUserDefault instance].registerBO) { [TPUserDefault instance].registerBO = registerInfoBO.new; } [self.userField becomeFirstResponder]; [self layoutViews]; } - (void)layoutViews { [self.userImageView makeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(self.view.left).offset(20); make.bottom.equalTo(self.userField.bottom); make.width.mas_equalTo(@20); make.height.mas_equalTo(@19); }]; [self.userField makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.naviBar.bottom).offset(38); make.left.equalTo(self.view.left).offset(50); make.right.equalTo(self.view.right).offset(-20); make.height.mas_equalTo(@19); }]; [self.userLine makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.userField.bottom).offset(7); make.left.equalTo(self.userImageView.left); make.right.equalTo(self.userField.right); make.height.mas_equalTo(@1); }]; [self.getCodeBtn makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.userLine.bottom).offset(30); make.centerX.equalTo(self.view.centerX); make.width.mas_equalTo(@80); make.height.mas_equalTo(@20); }]; [self.inviteCodeImageView makeConstraints:^(MASConstraintMaker *make) { make.centerY.equalTo(self.inviteCodeField.centerY); make.left.equalTo(self.view.left).offset(20); make.width.mas_equalTo(@20); make.height.mas_equalTo(@15); }]; [self.inviteCodeField makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.getCodeBtn.bottom).offset(38); make.left.equalTo(self.view.left).offset(50); make.right.equalTo(self.view.right).offset(-20); make.height.mas_equalTo(@19); }]; [self.inviteCodeLine makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.inviteCodeField.bottom).offset(7); make.left.equalTo(self.inviteCodeImageView.left); make.right.equalTo(self.inviteCodeField.right); make.height.mas_equalTo(@1); }]; [self.confirmBtn makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.inviteCodeLine.bottom).offset(35); make.left.equalTo(self.view.left).offset(20); make.right.equalTo(self.view.right).offset(-20); make.height.equalTo(self.confirmBtn.width).multipliedBy(0.15); }]; } #pragma mark - get method - (UIImageView*)userImageView { if (!_userImageView) { _userImageView = [[UIImageView alloc] init]; _userImageView.image = Image(@"login/userName.png"); } return _userImageView; } - (UITextField*)userField { if (!_userField) { _userField = [[UITextField alloc] init]; _userField.backgroundColor = [UIColor clearColor]; NSAttributedString* atrString = [[NSAttributedString alloc] initWithString:@"请输入您的手机或电子邮箱" attributes:@{NSForegroundColorAttributeName:[UIColor colorWithHexString:TextLightGray]}]; _userField.attributedPlaceholder = atrString; _userField.textColor = [UIColor colorWithHexString:TextBlack]; _userField.font = appFont(TEXT_FOUR_LEVELSIZE, NO); _userField.textAlignment = NSTextAlignmentLeft; _userField.keyboardAppearance = UIKeyboardAppearanceDefault; if ([[TPUserDefault instance].isNightMode intValue] > 0) { _userField.keyboardAppearance = UIKeyboardAppearanceDark; } _userField.keyboardType = UIKeyboardTypeEmailAddress; _userField.clearButtonMode = UITextFieldViewModeWhileEditing; _userField.delegate = self; [_userField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged]; } return _userField; } - (UIView*)userLine { if (!_userLine) { _userLine = [[UIView alloc] init]; _userLine.backgroundColor = [UIColor colorWithHexString:LINECOLOR]; } return _userLine; } - (UIButton*)getCodeBtn { if (!_getCodeBtn) { _getCodeBtn = [UIButton buttonWithType:UIButtonTypeCustom]; [_getCodeBtn setTitle:@"获取邀请码" forState:UIControlStateNormal]; [_getCodeBtn setTitleColor:[UIColor colorWithHexString:BLUECOLOR] forState:UIControlStateNormal]; [_getCodeBtn setTitleColor:[UIColor colorWithHexString:BUTTONSELECTBACK] forState:UIControlStateHighlighted]; _getCodeBtn.titleLabel.font = appFont(TEXT_FIVE_LEVELSIZE, NO); _getCodeBtn.layer.borderColor = [UIColor colorWithHexString:BLUECOLOR].CGColor; _getCodeBtn.layer.cornerRadius = 4.f; _getCodeBtn.layer.borderWidth = 1; [_getCodeBtn addTarget:self action:@selector(getInviteCode:) forControlEvents:UIControlEventTouchUpInside]; } return _getCodeBtn; } - (UIImageView*)inviteCodeImageView { if (!_inviteCodeImageView) { _inviteCodeImageView = [[UIImageView alloc] init]; _inviteCodeImageView.image = Image(@"login/pin.png"); } return _inviteCodeImageView; } - (UITextField*)inviteCodeField { if (!_inviteCodeField) { _inviteCodeField = [[UITextField alloc] init]; _inviteCodeField.backgroundColor = [UIColor clearColor]; NSAttributedString* atrString = [[NSAttributedString alloc] initWithString:@"请输入您收到的邀请码" attributes:@{NSForegroundColorAttributeName:[UIColor colorWithHexString:TextLightGray]}]; _inviteCodeField.attributedPlaceholder = atrString; _inviteCodeField.textColor = [UIColor colorWithHexString:TextBlack]; _inviteCodeField.font = appFont(TEXT_FOUR_LEVELSIZE, NO); _inviteCodeField.textAlignment = NSTextAlignmentLeft; _inviteCodeField.keyboardAppearance = UIKeyboardAppearanceDefault; if ([[TPUserDefault instance].isNightMode intValue] > 0) { _inviteCodeField.keyboardAppearance = UIKeyboardAppearanceDark; } _inviteCodeField.keyboardType = UIKeyboardTypeNumberPad; _inviteCodeField.clearButtonMode = UITextFieldViewModeWhileEditing; _inviteCodeField.delegate = self; [_inviteCodeField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged]; } return _inviteCodeField; } - (UIView*)inviteCodeLine { if (!_inviteCodeLine) { _inviteCodeLine = [[UIView alloc] init]; _inviteCodeLine.backgroundColor = [UIColor colorWithHexString:LINECOLOR]; } return _inviteCodeLine; } - (TPCustomButton*)confirmBtn { if (!_confirmBtn) { _confirmBtn = [[TPCustomButton alloc] init]; _confirmBtn.title = @"确认"; [_confirmBtn addTarget:self action:@selector(confirmEvent:) forControlEvents:UIControlEventTouchUpInside]; } return _confirmBtn; } #pragma mark - textfield delegate - (void)textFieldDidChange:(UITextField *)textField { if ([textField.text isMatchedByRegex:@"[^\\u0020-\\u007E\\u00A0-\\u00BE\\u2E80-\\uA4CF\\uF900-\\uFAFF\\uFE30-\\uFE4F\\uFF00-\\uFFEF\\u0080-\\u009F\\u2000-\\u201f\r\n]"]) { textField.text = disable_emoji(textField.text); } if (textField == self.userField) { [TPUserDefault instance].registerBO.mail = textField.text; }else if (textField == self.inviteCodeField) { [TPUserDefault instance].registerBO.verCode = textField.text; } } - (BOOL)textFieldShouldReturn:(UITextField *)textField { if (textField == _userField && [_userField isFirstResponder]) { [_inviteCodeField becomeFirstResponder]; } return YES; } - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { if ([textField isFirstResponder]) { if ([[[textField textInputMode] primaryLanguage] isEqualToString:@"emoji"] || ![[textField textInputMode] primaryLanguage]) { return NO; } } return YES; } #pragma mark - btn event handler - (void)getInviteCode:(UIButton*)btn { [self closeKeyBoard]; [_viewModel getInviteCode]; } - (void)confirmEvent:(UIButton*)btn { [self closeKeyBoard]; [_viewModel confirmMobileAndEmail]; } #pragma mark - viewmodel delegate - (void)confirmInviteCodeSuccess { registerController *registerVC = registerController.new; [self.navigationController pushViewController:registerVC animated:YES]; } #pragma mark - tap handler - (void)tap:(UITapGestureRecognizer*)sender { [self closeKeyBoard]; } #pragma mark - keyBoard event - (void)closeKeyBoard { [[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder) to:nil from:nil forEvent:nil]; } - (void)dealloc { self.viewModel = nil; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } /* #pragma mark - Navigation // In a storyboard-based application, you will often want to do a little preparation before navigation - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { // Get the new view controller using [segue destinationViewController]. // Pass the selected object to the new view controller. } */ @end