|
//
// 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 () <UITextFieldDelegate, userSystemViewModel>
@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
|