// // UserLogin_VC.m // Haishenghai-master // // Created by GG on 2018/12/29. // Copyright © 2018年 Haishenghai intelligence network technology. All rights reserved. // #import "UserLogin_VC.h" #import "Header.h" @interface UserLogin_VC () //记录选中效果 @property (nonatomic,assign)BOOL selected; @end @implementation UserLogin_VC #pragma mark - Life Circle - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. [self setupUI]; NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; if ([defaults boolForKey:@"isRememberPsd"]) { [defaults setBool:YES forKey:@"isRememberPsd"]; [self.rememberBtn setBackgroundImage:[UIImage imageNamed:@"hsh_login_checkbox_transformation"] forState:UIControlStateNormal]; self.accountTF.text = [[NSUserDefaults standardUserDefaults]objectForKey:@"phone"]; self.passwordTF.text = [[NSUserDefaults standardUserDefaults]objectForKey:@"password"]; }else if(! [defaults boolForKey:@"isRememberPsd"]){ [defaults setBool:NO forKey:@"isRememberPsd"]; [self.rememberBtn setBackgroundImage:[UIImage imageNamed:@"hsh_login_checkbox"] forState:UIControlStateNormal]; } } -(void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; self.navigationController.navigationBarHidden = YES; // [self.navigationController setNavigationBarHidden:NO animated:NO]; // [self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault]; // // [self.navigationController.navigationBar setShadowImage:[UIImage new]]; } -(void)viewWillDisappear:(BOOL)animated{ [super viewWillDisappear:animated]; self.navigationController.navigationBarHidden = NO; // [self.navigationController.navigationBar setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault]; // [self.navigationController.navigationBar setShadowImage:nil]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } #pragma mark -Set UI -(void)setupUI{ /** 设置背景 */ self.view.backgroundColor = [UIColor whiteColor]; /** 设置logo */ [self.logoImageView setImage:[UIImage imageNamed:@"logo"]]; self.logoImageView.frame = CGRectMake(WIDTH/2-55, HEIGHT/4-75, 110, 110); [self.view addSubview:self.logoImageView]; /** 设置内容视图 *///暂时没用到 // self.containerView.backgroundColor = [UIColor clearColor]; // [self.view addSubview:self.containerView]; /**设置账户输入框 */ self.accountTF.frame = CGRectMake(20, HEIGHT/2-44, WIDTH-40, 44); self.accountTF.placeholder = @"用户名/手机号"; self.accountTF.tintColor = [UIColor blueColor]; self.accountTF.textColor = [UIColor blackColor]; self.accountTF.font = [UIFont systemFontOfSize:18]; self.accountTF.leftViewMode = UITextFieldViewModeAlways; // self.accountTF.clearsOnBeginEditing = YES; // self.accountTF.clearButtonMode = UITextFieldViewModeWhileEditing; self.accountTF.autocorrectionType =UITextAutocorrectionTypeDefault; self.accountTF.delegate = self; //设置左边视图 UIImageView *userImage = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 20, 20)]; userImage.contentMode = UIViewContentModeLeft; //?? userImage.image = [UIImage imageNamed:@"hsh_login_user"]; self.accountTF.leftView = userImage; [self.view addSubview:self.accountTF]; UIView *accountLine = [[UIView alloc]init]; //?? accountLine.frame = CGRectMake(0, 43.5, self.accountTF.frame.size.width, 0.5); accountLine.backgroundColor = [UIColor grayColor]; self.accountLine = accountLine; [self.accountTF addSubview:accountLine]; /**设置账户列表 */ _userList = [UIButton buttonWithType:UIButtonTypeCustom]; _userList.frame = CGRectMake(self.accountTF.frame.size.width-32, 12, 32, 20); [_userList setBackgroundImage:[UIImage imageNamed:@"hsh_login_drop-down"] forState:UIControlStateNormal]; [_userList addTarget:self action:@selector(userListBtnClick:) forControlEvents:UIControlEventTouchUpInside]; [self.accountTF addSubview:_userList]; /**设置密码输入框 */ self.passwordTF.frame = CGRectMake(20, HEIGHT/2, WIDTH-40, 44); self.passwordTF.placeholder = @"密码"; self.passwordTF.tintColor = [UIColor blueColor]; self.passwordTF.textColor = [UIColor blackColor]; self.passwordTF.font = [UIFont systemFontOfSize:18]; self.passwordTF.leftViewMode = UITextFieldViewModeAlways; // self.passwordTF.clearButtonMode = UITextFieldViewModeWhileEditing; self.passwordTF.secureTextEntry = YES; // self.passwordTF.clearsOnBeginEditing = YES; self.passwordTF.delegate = self; //设置左边视图 UIImageView *passwordImage = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 20, 20)]; passwordImage.contentMode = UIViewContentModeLeft; //?? passwordImage.image = [UIImage imageNamed:@"hsh_login_password"]; self.passwordTF.leftView = passwordImage; [self.view addSubview:self.passwordTF]; UIView *passwordLine = [[UIView alloc]init]; //?? passwordLine.frame = CGRectMake(0, 43.5, self.passwordTF.frame.size.width, 0.5); passwordLine.backgroundColor = [UIColor grayColor]; self.passwordLine = passwordLine; [self.passwordTF addSubview:passwordLine]; /**设置重置密码button */ self.resetPasswordBtn.frame = CGRectMake(self.passwordTF.frame.size.width-80, 0, 80, 44); [self.resetPasswordBtn setTitle:@"忘记密码" forState:UIControlStateNormal]; [self.resetPasswordBtn setTitleColor:[UIColor colorWithRed:68/255.0 green:68/255.0 blue:68/255.0 alpha:1] forState:UIControlStateNormal]; self.resetPasswordBtn.titleLabel.font = [UIFont systemFontOfSize:18]; self.resetPasswordBtn.titleLabel.textAlignment = NSTextAlignmentRight; [self.resetPasswordBtn addTarget:self action:@selector(resetPasswordBtnClick:) forControlEvents:UIControlEventTouchUpInside]; [self.passwordTF addSubview:self.resetPasswordBtn]; /**设置记住密码button *///反选 self.rememberBtn.frame = CGRectMake(20, HEIGHT/2+49, 20, 20); [self.rememberBtn setBackgroundImage:[UIImage imageNamed:@"hsh_login_checkbox"] forState:UIControlStateNormal]; [self.rememberBtn addTarget:self action:@selector(selectBtnClick:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:self.rememberBtn]; UILabel *remberLabel = [[UILabel alloc]initWithFrame:CGRectMake(40, HEIGHT/2+44, 100, 30)]; remberLabel.text = @"记住账户"; remberLabel.textColor = [UIColor colorWithRed:68/255.0 green:68/255.0 blue:68/255.0 alpha:1]; remberLabel.font = [UIFont systemFontOfSize:18]; [self.view addSubview:remberLabel]; /**设置注册Button */ self.registButton .frame = CGRectMake(WIDTH-175, HEIGHT/2+44, 160, 30); //button富文本 NSMutableAttributedString *attributedStr = [[NSMutableAttributedString alloc]initWithString:@"还没有账号?注册"]; [attributedStr addAttribute:NSForegroundColorAttributeName value:[UIColor colorWithRed:205/255.0 green:205/255.0 blue:210/255.0 alpha:1] range:NSMakeRange(0, 6)]; [attributedStr addAttribute:NSForegroundColorAttributeName value:[UIColor colorWithRed:66/255.0 green:66/255.0 blue:66/255.0 alpha:1] range:NSMakeRange(6, 2)]; [self.registButton setAttributedTitle:attributedStr forState:UIControlStateNormal]; self.registButton.titleLabel.textAlignment = NSTextAlignmentRight; [self.registButton setTitleColor:[UIColor colorWithRed:68/255.0 green:68/255.0 blue:68/255.0 alpha:1] forState:UIControlStateNormal]; [self.registButton addTarget:self action:@selector(registeBtnClick:) forControlEvents:UIControlEventTouchUpInside]; self.registButton.titleLabel.font = [UIFont systemFontOfSize:18]; [self.view addSubview:self.registButton]; /**设置登录Button */ self.loginButton.frame = CGRectMake(20, HEIGHT*0.75, WIDTH-40, 44); [self.loginButton setBackgroundImage:[UIImage imageNamed:@"blue"] forState:UIControlStateNormal]; [self.loginButton setTitle:@"登录" forState:UIControlStateNormal]; [self.loginButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; self.loginButton.titleLabel.font = [UIFont systemFontOfSize:18]; self.loginButton.titleLabel.textAlignment = NSTextAlignmentCenter; // self.loginButton.clipsToBounds = YES; [self.loginButton addTarget:self action:@selector(loginButtonClick:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:self.loginButton]; /** 布局 */ [self make_layout]; } -(void)make_layout{ // [self.logoImageView mas_makeConstraints:^(MASConstraintMaker *make) { // make.width.mas_equalTo (120.f); // make.height.mas_equalTo(120.f); // make.topMargin.mas_equalTo(100.f); // }]; } #pragma mark - Event response -(void)userListBtnClick:(UIButton *)listBtn{ NSLog(@"用户列表"); } //反选 -(void)selectBtnClick:(UIButton *)select{ // _selected = !_selected; // if (_selected) { // [self.rememberBtn setImage:[UIImage imageNamed:@"hsh_login_checkbox_transformation"] forState:UIControlStateNormal]; // //保存用户名 密码 // [[NSUserDefaults standardUserDefaults]setObject:self.accountTF.text forKey:@"phone"]; // [[NSUserDefaults standardUserDefaults]setObject:self.passwordTF.text forKey:@"password"]; // // }else{ // [self.rememberBtn setImage:[UIImage imageNamed:@"hsh_login_checkbox"] forState:UIControlStateNormal]; // //不保存 // } NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; if ([defaults boolForKey:@"isRememberPsd"]) { [self.rememberBtn setBackgroundImage:[UIImage imageNamed:@"hsh_login_checkbox"] forState:UIControlStateNormal]; [defaults setBool:false forKey:@"isRememberPsd"]; }else{ [self.rememberBtn setBackgroundImage:[UIImage imageNamed:@"hsh_login_checkbox_transformation"] forState:UIControlStateNormal]; [defaults setBool:true forKey:@"isRememberPsd"]; } [defaults synchronize]; } -(void)resetPasswordBtnClick:(UIButton *)resetBtn{ ResetPassword_VC *resetPassword = [[ResetPassword_VC alloc]init]; [self.navigationController pushViewController:resetPassword animated:YES]; } #pragma mark------用户名密码校验 -(void)show{ if (self.accountTF.text ==nil||self.accountTF.text.length<11||self.accountTF.text.length >11) { // [self.loginButton setEnabled:NO]; // [self.registButton setEnabled:NO]; ALERTSHOW(@"手机号输入有误"); return; } if (self.passwordTF.text ==nil||self.passwordTF.text.length>8){ // [self.loginButton setEnabled:NO]; // [self.registButton setEnabled:NO]; ALERTSHOW(@"密码输入有误"); return; } } #pragma mark----获取手机标识 //+(NSString *)identifier //{ // NSString *key = @"com.app.keychain.uuid"; // KeychainItemWrapper *keychainItem = [[KeychainItemWrapper alloc] initWithIdentifier:key accessGroup:nil]; // // NSString *strUUID = [keychainItem objectForKey:(__bridge id)kSecValueData]; // // if (strUUID.length <= 0) { // strUUID = [[[UIDevice currentDevice] identifierForVendor] UUIDString]; // // [keychainItem setObject:@"uuid" forKey:(__bridge id)kSecAttrAccount]; // [keychainItem setObject:strUUID forKey:(__bridge id)kSecValueData]; // } // // return strUUID; //} -(void)loginButtonClick:(UIButton *)loginBtn{ [self show]; NSString *identifierStr = [[[UIDevice currentDevice] identifierForVendor] UUIDString]; NSLog(@"手机标识%@",identifierStr); [DataSourceManager setLoginWithUrlPhone:self.accountTF.text Password:self.passwordTF.text ClientId:identifierStr AppType:@"3" completionBlock:^(NSDictionary *dic) { //// //保存用户名 密码 if ([[NSUserDefaults standardUserDefaults] boolForKey:@"isRememberPsd"]) { //保存用户名 密码 [[NSUserDefaults standardUserDefaults]setObject:self.accountTF.text forKey:@"phone"]; [[NSUserDefaults standardUserDefaults]setObject:self.passwordTF.text forKey:@"password"]; } [self goMain]; }]; } -(void)registeBtnClick:(UIButton *)registBtn{ UserRegister_VC *registeVC = [[UserRegister_VC alloc]init]; // registeVC.navigationController.navigationBarHidden = YES; [self.navigationController pushViewController:registeVC animated:YES]; } #pragma mark - Delegate methods - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{ return YES; } //避免键盘遮挡,登录表单或按钮上移代码 - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{ NSTimeInterval animationDuration = 0.30f; [UIView beginAnimations:@ "ResizeForKeyboard" context:nil]; [UIView setAnimationDuration:animationDuration]; //将视图的Y坐标向上移动,以使下面腾出地方用于软键盘的显示 self.view.frame = CGRectMake(0.0f, -50.0f, self.view.frame.size.width, self.view.frame.size.height); //64-216 [UIView commitAnimations]; return YES; } -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ NSTimeInterval animationDuration = 0.30f; [UIView beginAnimations:@ "ResizeForKeyboard" context:nil]; [UIView setAnimationDuration:animationDuration]; //恢复屏幕 self.view.frame = CGRectMake(0.0f, 0.0f, self.view.frame.size.width, self.view.frame.size.height); //64-216 [UIView commitAnimations]; [[UIApplication sharedApplication].keyWindow endEditing:YES]; } - (BOOL)textFieldShouldReturn:(UITextField *)textField { [textField resignFirstResponder]; return YES; } -(void)goMain{ //初始化tabBar UITabBarController *tabBar = [[UITabBarController alloc ]init]; ViewController *firstVC = [[ViewController alloc]init]; DeveceList_VC *deveceVC = [[DeveceList_VC alloc]init]; Message_VC *messageVC = [[Message_VC alloc]init]; Person_VC *personVC = [[Person_VC alloc]init]; NSMutableArray *vcArray = [NSMutableArray arrayWithObjects:firstVC,deveceVC,messageVC,personVC, nil]; NSArray *titles = @[@"首页",@"设备 ",@"消息",@"我的"]; NSArray *images = @[@"hsh_nav_home",@"hsh_nav_equipment",@"hsh_nav_news",@"hsh_nav_user"]; NSArray *selectImages = @[@"hsh_nav_home_trensform",@"hsh_nav_equipment_trensform",@"hsh_nav_news_trensform",@"hsh_nav_user_trensform"]; NSMutableArray *vcArr = [NSMutableArray array]; for (int i =0; i<4; i++) { UIViewController *vc = vcArray[i]; UINavigationController *nav = [[UINavigationController alloc]initWithRootViewController:vc]; vc.tabBarItem.title = titles[i]; NSArray *titleColors = @[[UIColor colorWithRed:255/255.0 green:74/255.0 blue:154/255.0 alpha:1],[UIColor colorWithRed:66/255.0 green:234/255.0 blue:211/255.0 alpha:1],[UIColor colorWithRed:255/255.0 green:122/255.0 blue:70/255.0 alpha:1],[UIColor colorWithRed:119/255.0 green:84/255.0 blue:228/255.0 alpha:1]]; [vc.tabBarItem setTitleTextAttributes:@{NSForegroundColorAttributeName:titleColors[i]} forState:UIControlStateSelected]; vc.tabBarItem.image = [[UIImage imageNamed:images[i]]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; vc.tabBarItem.selectedImage = [[UIImage imageNamed:selectImages[i]]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; [vcArr addObject:nav]; } tabBar.viewControllers = vcArr; [UIApplication sharedApplication].keyWindow.rootViewController = tabBar; } //在页面消失的时候就让navigationbar还原样式 -(void)viewDidDisappear:(BOOL)animated{ self.navigationController.navigationBarHidden =NO; } @end