瀏覽代碼

新用户注册

huangyp 6 年之前
父節點
當前提交
a1b98374a1
共有 34 個文件被更改,包括 880 次插入13 次删除
  1. 40 0
      UU_Ent/UU_Ent.xcodeproj/project.pbxproj
  2. 4 2
      UU_Ent/UU_Ent/Modules/Base/YRBaseVC.m
  3. 19 3
      UU_Ent/UU_Ent/Modules/Login/Main/Controllers/YRLoginVC.m
  4. 32 0
      UU_Ent/UU_Ent/Modules/Login/Main/Controllers/YRPwdLevelView.h
  5. 163 0
      UU_Ent/UU_Ent/Modules/Login/Main/Controllers/YRPwdLevelView.m
  6. 14 0
      UU_Ent/UU_Ent/Modules/Login/Main/Controllers/YRRegisterVC.h
  7. 296 0
      UU_Ent/UU_Ent/Modules/Login/Main/Controllers/YRRegisterVC.m
  8. 2 2
      UU_Ent/UU_Ent/Modules/Main/Main/Controllers/YRMainVC.m
  9. 3 3
      UU_Ent/UU_Ent/Modules/Work/Main/Controllers/YRWorkVC.m
  10. 23 0
      UU_Ent/UU_Ent/Supporting Files/Assets.xcassets/Resources/登录/UU_newForgetPwEmail.imageset/Contents.json
  11. 二進制
      UU_Ent/UU_Ent/Supporting Files/Assets.xcassets/Resources/登录/UU_newForgetPwEmail.imageset/UU_newForgetPwEmail@1x.png
  12. 二進制
      UU_Ent/UU_Ent/Supporting Files/Assets.xcassets/Resources/登录/UU_newForgetPwEmail.imageset/UU_newForgetPwEmail@2x.png
  13. 二進制
      UU_Ent/UU_Ent/Supporting Files/Assets.xcassets/Resources/登录/UU_newForgetPwEmail.imageset/UU_newForgetPwEmail@3x.png
  14. 23 0
      UU_Ent/UU_Ent/Supporting Files/Assets.xcassets/Resources/登录/UU_newPersonalRegister.imageset/Contents.json
  15. 二進制
      UU_Ent/UU_Ent/Supporting Files/Assets.xcassets/Resources/登录/UU_newPersonalRegister.imageset/UU_newPersonalRegister@1x.png
  16. 二進制
      UU_Ent/UU_Ent/Supporting Files/Assets.xcassets/Resources/登录/UU_newPersonalRegister.imageset/UU_newPersonalRegister@2x.png
  17. 二進制
      UU_Ent/UU_Ent/Supporting Files/Assets.xcassets/Resources/登录/UU_newPersonalRegister.imageset/UU_newPersonalRegister@3x.png
  18. 23 0
      UU_Ent/UU_Ent/Supporting Files/Assets.xcassets/Resources/登录/UU_newRegisterPw.imageset/Contents.json
  19. 二進制
      UU_Ent/UU_Ent/Supporting Files/Assets.xcassets/Resources/登录/UU_newRegisterPw.imageset/UU_newRegisterPw@1x.png
  20. 二進制
      UU_Ent/UU_Ent/Supporting Files/Assets.xcassets/Resources/登录/UU_newRegisterPw.imageset/UU_newRegisterPw@2x.png
  21. 二進制
      UU_Ent/UU_Ent/Supporting Files/Assets.xcassets/Resources/登录/UU_newRegisterPw.imageset/UU_newRegisterPw@3x.png
  22. 23 0
      UU_Ent/UU_Ent/Supporting Files/Assets.xcassets/Resources/登录/UU_newRegisterTel.imageset/Contents.json
  23. 二進制
      UU_Ent/UU_Ent/Supporting Files/Assets.xcassets/Resources/登录/UU_newRegisterTel.imageset/UU_newRegisterTel@1x.png
  24. 二進制
      UU_Ent/UU_Ent/Supporting Files/Assets.xcassets/Resources/登录/UU_newRegisterTel.imageset/UU_newRegisterTel@2x.png
  25. 二進制
      UU_Ent/UU_Ent/Supporting Files/Assets.xcassets/Resources/登录/UU_newRegisterTel.imageset/UU_newRegisterTel@3x.png
  26. 8 1
      UU_Ent/UU_Ent/Supporting Files/defines/import.h
  27. 9 1
      UU_Ent/UU_Ent/Supporting Files/defines/macro.h
  28. 2 0
      UU_Ent/UU_Ent/Utils/NSString/NSString+regular.h
  29. 11 0
      UU_Ent/UU_Ent/Utils/NSString/NSString+regular.m
  30. 1 1
      UU_Ent/UU_Ent/Utils/UIButton/YRButton.m
  31. 18 0
      UU_Ent/UU_Ent/Utils/UINavigation/YRShowMessageFromNavi.h
  32. 116 0
      UU_Ent/UU_Ent/Utils/UINavigation/YRShowMessageFromNavi.m
  33. 17 0
      UU_Ent/UU_Ent/Utils/UITextField/LeftViewTF.h
  34. 33 0
      UU_Ent/UU_Ent/Utils/UITextField/LeftViewTF.m

+ 40 - 0
UU_Ent/UU_Ent.xcodeproj/project.pbxproj

@@ -11,6 +11,10 @@
 		27029BCC2277063F00D53A94 /* UIColor+HexColor.m in Sources */ = {isa = PBXBuildFile; fileRef = 27029BCB2277063F00D53A94 /* UIColor+HexColor.m */; };
 		27029BD0227709CC00D53A94 /* UIButton+Layout.m in Sources */ = {isa = PBXBuildFile; fileRef = 27029BCE227709CC00D53A94 /* UIButton+Layout.m */; };
 		27029BD32277E16300D53A94 /* YRButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 27029BD22277E16300D53A94 /* YRButton.m */; };
+		2710E65522801B7E0002A4B0 /* YRRegisterVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 2710E65422801B7E0002A4B0 /* YRRegisterVC.m */; };
+		2710E65822801B930002A4B0 /* YRPwdLevelView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2710E65722801B930002A4B0 /* YRPwdLevelView.m */; };
+		2710E65D22801E330002A4B0 /* LeftViewTF.m in Sources */ = {isa = PBXBuildFile; fileRef = 2710E65C22801E330002A4B0 /* LeftViewTF.m */; };
+		2710E66022801ED10002A4B0 /* YRShowMessageFromNavi.m in Sources */ = {isa = PBXBuildFile; fileRef = 2710E65F22801ED10002A4B0 /* YRShowMessageFromNavi.m */; };
 		3FE47A8D89A70D18F98B1E41 /* libPods-UU_EntUITests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F4F857DEEC69AEDCFACDFD51 /* libPods-UU_EntUITests.a */; };
 		9948171422783494007C7CEA /* msg_route.json in Resources */ = {isa = PBXBuildFile; fileRef = 9948171322783494007C7CEA /* msg_route.json */; };
 		9948171722785013007C7CEA /* YRWorkTabCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 9948171622785013007C7CEA /* YRWorkTabCell.m */; };
@@ -138,6 +142,14 @@
 		27029BCF227709CC00D53A94 /* UIButton+Layout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIButton+Layout.h"; sourceTree = "<group>"; };
 		27029BD12277E16300D53A94 /* YRButton.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YRButton.h; sourceTree = "<group>"; };
 		27029BD22277E16300D53A94 /* YRButton.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YRButton.m; sourceTree = "<group>"; };
+		2710E65322801B7E0002A4B0 /* YRRegisterVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YRRegisterVC.h; sourceTree = "<group>"; };
+		2710E65422801B7E0002A4B0 /* YRRegisterVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YRRegisterVC.m; sourceTree = "<group>"; };
+		2710E65622801B930002A4B0 /* YRPwdLevelView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = YRPwdLevelView.h; path = UU_Ent/Modules/Login/Main/Controllers/YRPwdLevelView.h; sourceTree = SOURCE_ROOT; };
+		2710E65722801B930002A4B0 /* YRPwdLevelView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = YRPwdLevelView.m; path = UU_Ent/Modules/Login/Main/Controllers/YRPwdLevelView.m; sourceTree = SOURCE_ROOT; };
+		2710E65B22801E330002A4B0 /* LeftViewTF.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LeftViewTF.h; sourceTree = "<group>"; };
+		2710E65C22801E330002A4B0 /* LeftViewTF.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LeftViewTF.m; sourceTree = "<group>"; };
+		2710E65E22801ED10002A4B0 /* YRShowMessageFromNavi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YRShowMessageFromNavi.h; sourceTree = "<group>"; };
+		2710E65F22801ED10002A4B0 /* YRShowMessageFromNavi.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YRShowMessageFromNavi.m; sourceTree = "<group>"; };
 		49A8B37D50A80EFFD84620EC /* Pods-UU_EntTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-UU_EntTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-UU_EntTests/Pods-UU_EntTests.release.xcconfig"; sourceTree = "<group>"; };
 		49D3F089EECE8E3EDF7D2E1C /* Pods-UU_EntUITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-UU_EntUITests.release.xcconfig"; path = "Pods/Target Support Files/Pods-UU_EntUITests/Pods-UU_EntUITests.release.xcconfig"; sourceTree = "<group>"; };
 		71B4DF45C8EC3368ACFC4193 /* Pods-UU_Ent.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-UU_Ent.debug.xcconfig"; path = "Pods/Target Support Files/Pods-UU_Ent/Pods-UU_Ent.debug.xcconfig"; sourceTree = "<group>"; };
@@ -325,6 +337,24 @@
 			path = UIButton;
 			sourceTree = "<group>";
 		};
+		2710E65922801D760002A4B0 /* UITextField */ = {
+			isa = PBXGroup;
+			children = (
+				2710E65B22801E330002A4B0 /* LeftViewTF.h */,
+				2710E65C22801E330002A4B0 /* LeftViewTF.m */,
+			);
+			path = UITextField;
+			sourceTree = "<group>";
+		};
+		2710E65A22801D870002A4B0 /* UINavigation */ = {
+			isa = PBXGroup;
+			children = (
+				2710E65E22801ED10002A4B0 /* YRShowMessageFromNavi.h */,
+				2710E65F22801ED10002A4B0 /* YRShowMessageFromNavi.m */,
+			);
+			path = UINavigation;
+			sourceTree = "<group>";
+		};
 		999F650C227E656B00329012 /* UIView */ = {
 			isa = PBXGroup;
 			children = (
@@ -523,6 +553,8 @@
 		99C6FE8D22768EC000C7070A /* Utils */ = {
 			isa = PBXGroup;
 			children = (
+				2710E65A22801D870002A4B0 /* UINavigation */,
+				2710E65922801D760002A4B0 /* UITextField */,
 				999F651B227E6A3E00329012 /* NSString */,
 				999F6517227E696900329012 /* UILabel */,
 				999F650D227E656B00329012 /* UIImageView */,
@@ -658,6 +690,8 @@
 			children = (
 				27029BC52276A23400D53A94 /* YRLoginVC.h */,
 				27029BC62276A23400D53A94 /* YRLoginVC.m */,
+				2710E65322801B7E0002A4B0 /* YRRegisterVC.h */,
+				2710E65422801B7E0002A4B0 /* YRRegisterVC.m */,
 			);
 			path = Controllers;
 			sourceTree = "<group>";
@@ -665,6 +699,8 @@
 		99C6FEA72276940600C7070A /* Views */ = {
 			isa = PBXGroup;
 			children = (
+				2710E65622801B930002A4B0 /* YRPwdLevelView.h */,
+				2710E65722801B930002A4B0 /* YRPwdLevelView.m */,
 			);
 			path = Views;
 			sourceTree = "<group>";
@@ -1271,6 +1307,7 @@
 				99C6FE9222768EC000C7070A /* main.m in Sources */,
 				99C6FE99227690F800C7070A /* YRBaseNav.m in Sources */,
 				99C6FE96227690BE00C7070A /* YRBaseVC.m in Sources */,
+				2710E65522801B7E0002A4B0 /* YRRegisterVC.m in Sources */,
 				99C6FF172276D13500C7070A /* YRUserInfo.m in Sources */,
 				999F6510227E658E00329012 /* UIView+frame.m in Sources */,
 				99C6FEC32276959B00C7070A /* YRWorkVC.m in Sources */,
@@ -1278,14 +1315,17 @@
 				99C6FECE227697DA00C7070A /* YRContactVC.m in Sources */,
 				99C6FEC82276966600C7070A /* YRWebVC.m in Sources */,
 				99C6FEC02276957400C7070A /* YRMineVC.m in Sources */,
+				2710E66022801ED10002A4B0 /* YRShowMessageFromNavi.m in Sources */,
 				99C6FF1B2276DD3900C7070A /* YRTableView.m in Sources */,
 				27029BD32277E16300D53A94 /* YRButton.m in Sources */,
 				27029BCC2277063F00D53A94 /* UIColor+HexColor.m in Sources */,
+				2710E65822801B930002A4B0 /* YRPwdLevelView.m in Sources */,
 				99F4A7402277D2DF009AA6ED /* YRLoadingVC.m in Sources */,
 				99C6FE8F22768EC000C7070A /* AppDelegate.m in Sources */,
 				999F6516227E688600329012 /* UIView+selector.m in Sources */,
 				999F651E227E6A6000329012 /* NSString+regular.m in Sources */,
 				99F4A7432277D332009AA6ED /* YRCountDownView.m in Sources */,
+				2710E65D22801E330002A4B0 /* LeftViewTF.m in Sources */,
 				99C6FEBA2276950C00C7070A /* YRMainVC.m in Sources */,
 				9948171A22785044007C7CEA /* YRWorkCollCell.m in Sources */,
 				27029BC72276A23400D53A94 /* YRLoginVC.m in Sources */,

+ 4 - 2
UU_Ent/UU_Ent/Modules/Base/YRBaseVC.m

@@ -17,12 +17,14 @@
 - (void)viewDidLoad {
     [super viewDidLoad];
     // Do any additional setup after loading the view.
-    self.view.backgroundColor = RGB(242, 242, 242);
+    self.view.backgroundColor = RGB(242, 242, 242, 1);
     [self setUpUI];
 }
 
 
--(void)setUpUI{}
+-(void)setUpUI{
+    
+}
 
 
 -(void)setParamDic:(NSDictionary *)paramDic{

+ 19 - 3
UU_Ent/UU_Ent/Modules/Login/Main/Controllers/YRLoginVC.m

@@ -8,6 +8,7 @@
 
 #import "YRLoginVC.h"
 #import "YRUserInfo.h"
+#import "YRRegisterVC.h"
 #import <UU_Ent/Account.pbrpc.h>
 
 @interface YRLoginVC ()<UITextFieldDelegate>
@@ -52,7 +53,7 @@
         
         [MBProgressHUD hideHUDForView:self.view animated:YES];
         
-        if (!error) {
+        if (response.responseHeader.success) {
             
             NSDictionary *resDic = response.mj_keyValues;
             
@@ -74,6 +75,16 @@
     }];
 }
 
+#pragma mark --- 新用户注册
+-(void)registerAction
+{
+    YRRegisterVC *vc = [YRRegisterVC new];
+    
+    YRBaseNav *nav = [[YRBaseNav alloc] initWithRootViewController:vc];
+    
+    [self presentViewController:nav animated:YES completion:nil];
+}
+
 #pragma mark --- UITextField Delegate
 - (BOOL)textFieldShouldReturn:(UITextField *)textField
 {
@@ -225,8 +236,13 @@
     [self.scrollView addSubview:self.loginBtn];
     [self.loginBtn addTarget:self action:@selector(loginAction) forControlEvents:UIControlEventTouchUpInside];
     
+    YRButton *registerBtn = [[YRButton alloc]initWithTitle:@"新用户注册" titleColor:HexColor(@"#AADAFB") titleFont:12 buttonNormalColor:[UIColor clearColor] buttonSelectColor:[UIColor clearColor] buttonDiabledColor:[UIColor clearColor]];
+    [registerBtn setContentHorizontalAlignment:UIControlContentHorizontalAlignmentRight];
+    registerBtn.frame = CGRectMake(kWidth-120, CGRectGetMaxY(self.loginBtn.frame)+10, 100, 20);
+    [self.scrollView addSubview:registerBtn];
+    [registerBtn addTarget:self action:@selector(registerAction) forControlEvents:UIControlEventTouchUpInside];
     
-    [self loginAction];
+//    [self loginAction];
     
 }
 
@@ -234,7 +250,7 @@
 -(UIScrollView *)scrollView{
     if (!_scrollView) {
         _scrollView = [[UIScrollView alloc]initWithFrame:self.view.frame];
-        _scrollView.backgroundColor = [UIColor redColor];
+        _scrollView.backgroundColor = RGB(242, 242, 242, 1);
     }
     return _scrollView;
 }

+ 32 - 0
UU_Ent/UU_Ent/Modules/Login/Main/Controllers/YRPwdLevelView.h

@@ -0,0 +1,32 @@
+//
+//  YRPwdLevelView.h
+//  UU_Ent
+//
+//  Created by huangyp-pc on 2019/5/6.
+//  Copyright © 2019 UAS. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+@interface YRPwdLevelView : UIView
+
+//密码强度
+@property(assign,nonatomic)NSInteger level;
+
+@end
+
+/**
+ 判断密码强度
+ */
+
+@interface NSString(pwdLevel)
+
+/**
+ 判断密码强度
+ 
+ @param pwd 密码
+ @return 返回值,1代表弱,2代表中,3代表强
+ */
++(NSInteger)juguePasswordLevelWith:(NSString *)pwd;
+
+@end

+ 163 - 0
UU_Ent/UU_Ent/Modules/Login/Main/Controllers/YRPwdLevelView.m

@@ -0,0 +1,163 @@
+//
+//  YRPwdLevelView.m
+//  UU_Ent
+//
+//  Created by huangyp-pc on 2019/5/6.
+//  Copyright © 2019 UAS. All rights reserved.
+//
+
+#import "YRPwdLevelView.h"
+
+@interface YRPwdLevelView()
+
+@property(strong,nonatomic)NSMutableArray<UIView *> *viewArr;
+
+@property(strong,nonatomic)UILabel *textLabel;
+
+
+@end
+
+@implementation YRPwdLevelView
+
+-(instancetype)initWithFrame:(CGRect)frame{
+    
+    if (self = [super initWithFrame:frame]) {
+        
+        [self setupUI];
+        
+    }
+    
+    return self;
+    
+}
+
+-(void)setupUI{
+    
+    
+    self.viewArr = [NSMutableArray array];
+    for (int i=0; i<3; i++) {
+        
+        
+        UIView *view = [UIView new];
+        
+        view.backgroundColor = HexColor(@"#050505");
+        
+        [self addSubview:view];
+        
+        view.tag = i+1;
+        
+        CGFloat left = 5 + (20+10)*i;
+        
+        [view mas_makeConstraints:^(MASConstraintMaker *make) {
+            
+            make.width.mas_equalTo(20);
+            make.height.mas_equalTo(3);
+            make.centerY.equalTo(self);
+            make.left.equalTo(self).offset(left);
+            
+        }];
+        
+        
+        [self.viewArr addObject:view];
+        
+    }
+    
+    UILabel *leverLabel = [UILabel new];
+    
+    leverLabel.text = @"";
+    
+    leverLabel.textColor = HexColor(@"333333");
+    
+    leverLabel.font = FONT_SIZE(12);;
+    
+    [self addSubview:leverLabel];
+    
+    self.textLabel = leverLabel;
+    
+    [leverLabel mas_makeConstraints:^(MASConstraintMaker *make) {
+        
+        make.right.top.bottom.equalTo(self);
+        make.left.equalTo(self).offset(95);
+        
+    }];
+    
+}
+
+-(void)setLevel:(NSInteger)level{
+    
+    _level = level;
+    
+    NSArray<NSString *> *arr = @[@"",@"弱",@"中",@"强"];
+    
+    for (UIView *view in self.viewArr) {
+        
+        view.backgroundColor = HexColor(@"#050505");
+        
+        if (level == 0) {
+            
+            [view mas_updateConstraints:^(MASConstraintMaker *make) {
+                
+                make.height.mas_equalTo(0);
+                
+            }];
+            
+        }else{
+            
+            [view mas_updateConstraints:^(MASConstraintMaker *make) {
+                
+                make.height.mas_equalTo(3);
+                
+            }];
+            
+        }
+        
+    }
+    
+    for (UIView *view in self.viewArr) {
+        
+        if (view.tag > level) {
+            
+            view.backgroundColor = HexColor(@"#C5C4C4");
+            
+        }
+        
+    }
+    
+    
+    self.textLabel.text = arr[level];
+    
+    
+}
+
+@end
+
+@implementation NSString(pwdLevel)
+
++(NSInteger)juguePasswordLevelWith:(NSString *)pwd{
+    
+    NSString *strong = @"^(?=.{8,20})(((?=.*[0-9])(?=.*[a-z])(?=.*[A-Z]))|((?=.*[0-9])((?=.*[a-zA-Z]))(?=.*[^a-zA-Z0-9]))).*$";
+    
+    NSString *medium = @"^(?=.{8,20})(((?=.*[0-9])(?=.*[a-z]))|((?=.*[0-9])(?=.*[A-Z]))).*$";
+    
+    NSPredicate *strongPred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", strong];
+    
+    NSPredicate *mediumPred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", medium];
+    
+    if ([strongPred evaluateWithObject:pwd]) {
+        
+        return 3;
+        
+    }else if([mediumPred evaluateWithObject:pwd]){
+        
+        return 2;
+        
+    }else{
+        
+        return 1;
+        
+    }
+    
+    
+}
+
+@end

+ 14 - 0
UU_Ent/UU_Ent/Modules/Login/Main/Controllers/YRRegisterVC.h

@@ -0,0 +1,14 @@
+//
+//  YRRegisterVC.h
+//  UU_Ent
+//
+//  Created by huangyp-pc on 2019/5/6.
+//  Copyright © 2019 UAS. All rights reserved.
+//
+
+#import "YRBaseVC.h"
+
+@interface YRRegisterVC : YRBaseVC
+
+@end
+

+ 296 - 0
UU_Ent/UU_Ent/Modules/Login/Main/Controllers/YRRegisterVC.m

@@ -0,0 +1,296 @@
+//
+//  YRRegisterVC.m
+//  UU_Ent
+//
+//  Created by huangyp-pc on 2019/5/6.
+//  Copyright © 2019 UAS. All rights reserved.
+//
+
+#import "YRRegisterVC.h"
+#import "LeftViewTF.h"
+#import "YRPwdLevelView.h"
+
+@interface YRRegisterVC ()<UITextFieldDelegate>
+@property (nonatomic,strong) UIScrollView *scrollView;
+@property (nonatomic,strong) UITextField *nameTF;
+@property (nonatomic,strong) UITextField *telTF;
+@property (nonatomic,strong) UITextField *pwTF;
+@property (nonatomic,strong) UITextField *cPwTF;
+@property (nonatomic,strong) UITextField *emailTF;
+@property (nonatomic,strong) UIButton *registerBtn;
+@property (nonatomic,strong) YRPwdLevelView *pwLevel;
+@end
+
+@implementation YRRegisterVC
+
+- (void)viewDidLoad {
+    [super viewDidLoad];
+    // Do any additional setup after loading the view.
+    self.title = @"个人注册";
+    self.view.backgroundColor = [UIColor whiteColor];
+}
+
+#pragma mark --- 注册操作
+-(void)personRegister
+{
+    [self.view endEditing:YES];
+    [MBProgressHUD showHUDAddedTo:self.view animated:YES];
+    
+    NSString *name = FORMAT(@"%@",_nameTF.text);
+    NSString *tel = FORMAT(@"%@",_telTF.text);
+    NSString *pw = FORMAT(@"%@",_pwTF.text);
+    NSString *cPw = FORMAT(@"%@",_cPwTF.text);
+    NSString *email = FORMAT(@"%@",_emailTF.text);
+    
+//    if (name.length == 0 || tel.length == 0 || pw.length == 0 || cPw.length == 0) {
+//        [MBProgressHUD hideHUDForView:self.view animated:YES];
+//        [YRShowMessageFromNavi showDropViewWithMessage:@"请填写完整资料" ToNavi:self.navigationController withColor:nil];
+//        return;
+//    }
+//
+//    if (![pw isEqualToString:cPw]) {
+//        [MBProgressHUD hideHUDForView:self.view animated:YES];
+//        [YRShowMessageFromNavi showDropViewWithMessage:@"确认密码不一致" ToNavi:self.navigationController withColor:nil];
+//        return;
+//    }
+    
+    if (![NSString isEmail:email]) {
+        [MBProgressHUD hideHUDForView:self.view animated:YES];
+        [YRShowMessageFromNavi showDropViewWithMessage:@"请填写正确邮箱" ToNavi:self.navigationController withColor:nil];
+        return;
+    }
+    
+    
+    [GRPCCall useInsecureConnectionsForHost:kHostAddress];
+    
+    AccountService *client = [[AccountService alloc]initWithHost:kHostAddress];
+    
+    AccountSignupRequest *request = [AccountSignupRequest message];
+    
+    request.mobile = tel;
+    request.password = pw;
+    request.realname = name;
+    request.sex = AccountInfo_Sex_Male;
+    request.email = email;
+    
+    [client signupWithRequest:request handler:^(AccountSignupResponse * _Nullable response, NSError * _Nullable error) {
+        
+        [MBProgressHUD hideHUDForView:self.view animated:YES];
+        
+        if (response.responseHeader.success) {
+
+            [YRShowMessageFromNavi showDropViewWithMessage:@"注册成功" ToNavi:self.navigationController withColor:nil];
+            
+            [self.navigationController popViewControllerAnimated:YES];
+            
+        }else{
+            
+            
+        }
+        
+    }];
+    
+    
+    
+}
+
+#pragma mark --- 修改页面 密码强弱
+-(void)changePwLevelUI:(NSString *)text
+{
+    if (text.length == 0) {
+        _pwLevel.level = 0;
+        [_pwLevel mas_updateConstraints:^(MASConstraintMaker *make) {
+            make.height.mas_equalTo(0);
+        }];
+    }else{
+        NSInteger num = [NSString juguePasswordLevelWith:text];
+        _pwLevel.level = num;
+        
+        [_pwLevel mas_updateConstraints:^(MASConstraintMaker *make) {
+            make.height.mas_equalTo(33);
+        }];
+    }
+}
+
+#pragma mark --- UITextFieldDelegate
+- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
+{
+    if ([string isEqualToString:@"\n"]){ //判断输入的字是否是回车,即按下return
+        //在这里做你响应return键的代码
+        [textField resignFirstResponder];
+        return NO; //这里返回NO,就代表return键值失效,即页面上按下return,不会出现换行,如果为yes,则输入页面会换行
+    }
+    
+    if (textField == _pwTF) {
+        NSString *allText = [textField.text stringByReplacingCharactersInRange:range withString:string];
+        [self changePwLevelUI:allText];
+    }
+    
+    return YES;
+}
+
+#pragma mark --- 创建UI
+-(void)setUpUI
+{
+    [self.view addSubview:self.scrollView];
+    [self.scrollView mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.top.left.right.equalTo(self.view);
+        make.width.mas_equalTo(self_width);
+        make.height.mas_equalTo(self_height);
+    }];
+    
+    _nameTF = [LeftViewTF new];
+    _nameTF.borderStyle = UITextBorderStyleRoundedRect;
+    UIImageView *nameImage = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 18, 18)];
+    nameImage.image = [UIImage imageNamed:@"UU_newPersonalRegister"];
+    _nameTF.leftView = nameImage;
+    _nameTF.leftViewMode = UITextFieldViewModeAlways;
+    _nameTF.placeholder = @"姓名";
+    _nameTF.font = FONT_SIZE(14);
+    _nameTF.returnKeyType = UIReturnKeyDone;
+    _nameTF.delegate = self;
+    [self.scrollView addSubview:_nameTF];
+    
+    _telTF = [LeftViewTF new];
+    _telTF.borderStyle = UITextBorderStyleRoundedRect;
+    UIImageView *telImage = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 14.3, 20)];
+    telImage.image = [UIImage imageNamed:@"UU_newRegisterTel"];
+    _telTF.leftView = telImage;
+    _telTF.leftViewMode = UITextFieldViewModeAlways;
+    _telTF.placeholder = @"手机号";
+    _telTF.font = FONT_SIZE(14);
+    _telTF.returnKeyType = UIReturnKeyDone;
+    _telTF.delegate = self;
+    [self.scrollView addSubview:_telTF];
+    
+    _pwTF = [LeftViewTF new];
+    _pwTF.borderStyle = UITextBorderStyleRoundedRect;
+    UIImageView *pwImage = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 16, 18)];
+    pwImage.image = [UIImage imageNamed:@"UU_newRegisterPw"];
+    _pwTF.leftView = pwImage;
+    _pwTF.leftViewMode = UITextFieldViewModeAlways;
+    _pwTF.placeholder = @"密码";
+    _pwTF.font = FONT_SIZE(14);
+    _pwTF.delegate = self;
+    _pwTF.secureTextEntry = YES;
+    _pwTF.returnKeyType = UIReturnKeyDone;
+    [self.scrollView addSubview:_pwTF];
+    
+    _cPwTF = [LeftViewTF new];
+    _cPwTF.borderStyle = UITextBorderStyleRoundedRect;
+    UIImageView *cPwImage = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 16, 18)];
+    cPwImage.image = [UIImage imageNamed:@"UU_newRegisterPw"];
+    _cPwTF.leftView = cPwImage;
+    _cPwTF.leftViewMode = UITextFieldViewModeAlways;
+    _cPwTF.placeholder = @"确认密码";
+    _cPwTF.font = FONT_SIZE(14);
+    _cPwTF.returnKeyType = UIReturnKeyDone;
+    _cPwTF.delegate = self;
+    _cPwTF.secureTextEntry = YES;
+    [self.scrollView addSubview:_cPwTF];
+    
+    _emailTF = [LeftViewTF new];
+    _emailTF.borderStyle = UITextBorderStyleRoundedRect;
+    UIImageView *emailImage = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 18, 16)];
+    emailImage.image = [UIImage imageNamed:@"UU_newForgetPwEmail"];
+    _emailTF.leftView = emailImage;
+    _emailTF.leftViewMode = UITextFieldViewModeAlways;
+    _emailTF.placeholder = @"邮箱";
+    _emailTF.font = FONT_SIZE(14);
+    _emailTF.returnKeyType = UIReturnKeyDone;
+    _emailTF.delegate = self;
+    [self.scrollView addSubview:_emailTF];
+    
+    UILabel *lbl = [UILabel new];
+    lbl.text = @"*密码须为8-20字符的英文、数字混合";
+    lbl.textColor = HexColor(@"#D11010");
+    lbl.font = FONT_SIZE(12);
+    [self.scrollView addSubview:lbl];
+    
+    _pwLevel = [YRPwdLevelView new];
+    _pwLevel.level = 0;
+    [self.scrollView addSubview:_pwLevel];
+    
+    _registerBtn = [UIButton new];
+    _registerBtn.backgroundColor = HexColor(@"#33A2EE");
+    _registerBtn.layer.masksToBounds = YES;
+    _registerBtn.layer.cornerRadius = 5;
+    [_registerBtn setTitle:@"注册" forState:UIControlStateNormal];
+    [_registerBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
+    _registerBtn.titleLabel.font = FONT_SIZE(18);
+    [self.scrollView addSubview:_registerBtn];
+    [_registerBtn addTarget:self action:@selector(personRegister) forControlEvents:UIControlEventTouchUpInside];
+    
+    [_nameTF mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.top.left.equalTo(self.scrollView).offset(20);
+        make.right.equalTo(self.view).offset(-20);
+        make.height.mas_equalTo(40);
+    }];
+    
+    [_telTF mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.equalTo(self.scrollView).offset(20);
+        make.right.equalTo(self.view).offset(-20);
+        make.top.equalTo(self.nameTF.mas_bottom).offset(10);
+        make.height.mas_equalTo(40);
+    }];
+    
+    [lbl mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.equalTo(self.scrollView).offset(24);
+        make.right.equalTo(self.view).offset(-20);
+        make.top.equalTo(self.telTF.mas_bottom).offset(19);
+        make.height.mas_equalTo(17);
+    }];
+    
+    [_pwTF mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.equalTo(self.scrollView).offset(20);
+        make.right.equalTo(self.view).offset(-20);
+        make.top.equalTo(lbl.mas_bottom).offset(12);
+        make.height.mas_equalTo(40);
+    }];
+    
+    [_pwLevel mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.equalTo(self.scrollView).offset(24);
+        make.right.equalTo(self.view).offset(-20);
+        make.top.equalTo(self.pwTF.mas_bottom).offset(4);
+        make.height.mas_equalTo(0);
+    }];
+    
+    [_cPwTF mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.equalTo(self.scrollView).offset(20);
+        make.right.equalTo(self.view).offset(-20);
+        make.top.equalTo(self.pwLevel.mas_bottom).offset(10);
+        make.height.mas_equalTo(40);
+    }];
+    
+    [_emailTF mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.equalTo(self.scrollView).offset(20);
+        make.right.equalTo(self.view).offset(-20);
+        make.top.equalTo(self.cPwTF.mas_bottom).offset(10);
+        make.height.mas_equalTo(40);
+    }];
+    
+    [_registerBtn mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.equalTo(self.scrollView).offset(20);
+        make.right.equalTo(self.view).offset(-20);
+        make.top.equalTo(self.emailTF.mas_bottom).offset(31);
+        make.height.mas_equalTo(40);
+    }];
+}
+
+#pragma mark --- lazy
+-(UIScrollView *)scrollView{
+    if (!_scrollView) {
+        _scrollView = [[UIScrollView alloc]initWithFrame:self.view.frame];
+        _scrollView.backgroundColor = RGB(242, 242, 242, 1);
+    }
+    return _scrollView;
+}
+
+//#pragma mark --- 返回
+//-(void)backAction
+//{
+//    
+//    [self.navigationController popViewControllerAnimated:YES];
+//}
+
+@end

+ 2 - 2
UU_Ent/UU_Ent/Modules/Main/Main/Controllers/YRMainVC.m

@@ -48,12 +48,12 @@
 -(void)addChildControllers{
     
     YRMsgVC *msgVc = [YRMsgVC new];
-    YRContactVC *conVc = [YRContactVC new];
+//    YRContactVC *conVc = [YRContactVC new];
     YRWorkVC *workVc = [YRWorkVC new];
     YRMineVC *mineVc = [YRMineVC new];
     
     [self subVcWith:msgVc title:@"消息" normalImgTitle:@"UU_TabMes_nor" selImgTitle:@"UU_TabMes_select"];
-    [self subVcWith:conVc title:@"联系人" normalImgTitle:@"UU_TabContact_nor" selImgTitle:@"UU_TabContact_select"];
+//    [self subVcWith:conVc title:@"联系人" normalImgTitle:@"UU_TabContact_nor" selImgTitle:@"UU_TabContact_select"];
     [self subVcWith:workVc title:@"工作" normalImgTitle:@"UU_TabWork_nor" selImgTitle:@"UU_TabWork_select"];
     [self subVcWith:mineVc title:@"我" normalImgTitle:@"UU_TabMe_nor" selImgTitle:@"UU_TabMe_select"];
    

+ 3 - 3
UU_Ent/UU_Ent/Modules/Work/Main/Controllers/YRWorkVC.m

@@ -37,7 +37,7 @@
    
     UIImageView *topView = [[UIImageView alloc]initWithFrame:CGRectMake(0,0, kWidth, 94)];
     topView.image = [UIImage imageNamed:@"UU_newNavbg3"];
-    topView.backgroundColor = RGB(48, 92, 131);
+    topView.backgroundColor = RGB(48, 92, 131, 1);
     topView.userInteractionEnabled = YES;
     
     self.topView = topView;
@@ -84,14 +84,14 @@
     
     [self.view addSubview:topView];
     
-     self.view.backgroundColor = RGB(219, 227, 232);
+     self.view.backgroundColor = RGB(219, 227, 232, 1);
     
     [self.view addSubview:self.tableView];
     self.tableView.frame = CGRectMake(10, 74, self.view.frame.size.width-20, kHeight - 108);
     
     UIView *footerView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, self.view.width, 70)];
     
-    footerView.backgroundColor = RGB(219, 227, 232);
+    footerView.backgroundColor = RGB(219, 227, 232, 1);
     UIView *viewOne = [[UIView alloc]init];
     viewOne.layer.cornerRadius = 15;
     viewOne.layer.masksToBounds = YES;

+ 23 - 0
UU_Ent/UU_Ent/Supporting Files/Assets.xcassets/Resources/登录/UU_newForgetPwEmail.imageset/Contents.json

@@ -0,0 +1,23 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "filename" : "UU_newForgetPwEmail@1x.png",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "UU_newForgetPwEmail@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "UU_newForgetPwEmail@3x.png",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}

二進制
UU_Ent/UU_Ent/Supporting Files/Assets.xcassets/Resources/登录/UU_newForgetPwEmail.imageset/UU_newForgetPwEmail@1x.png


二進制
UU_Ent/UU_Ent/Supporting Files/Assets.xcassets/Resources/登录/UU_newForgetPwEmail.imageset/UU_newForgetPwEmail@2x.png


二進制
UU_Ent/UU_Ent/Supporting Files/Assets.xcassets/Resources/登录/UU_newForgetPwEmail.imageset/UU_newForgetPwEmail@3x.png


+ 23 - 0
UU_Ent/UU_Ent/Supporting Files/Assets.xcassets/Resources/登录/UU_newPersonalRegister.imageset/Contents.json

@@ -0,0 +1,23 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "filename" : "UU_newPersonalRegister@1x.png",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "UU_newPersonalRegister@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "UU_newPersonalRegister@3x.png",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}

二進制
UU_Ent/UU_Ent/Supporting Files/Assets.xcassets/Resources/登录/UU_newPersonalRegister.imageset/UU_newPersonalRegister@1x.png


二進制
UU_Ent/UU_Ent/Supporting Files/Assets.xcassets/Resources/登录/UU_newPersonalRegister.imageset/UU_newPersonalRegister@2x.png


二進制
UU_Ent/UU_Ent/Supporting Files/Assets.xcassets/Resources/登录/UU_newPersonalRegister.imageset/UU_newPersonalRegister@3x.png


+ 23 - 0
UU_Ent/UU_Ent/Supporting Files/Assets.xcassets/Resources/登录/UU_newRegisterPw.imageset/Contents.json

@@ -0,0 +1,23 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "filename" : "UU_newRegisterPw@1x.png",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "UU_newRegisterPw@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "UU_newRegisterPw@3x.png",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}

二進制
UU_Ent/UU_Ent/Supporting Files/Assets.xcassets/Resources/登录/UU_newRegisterPw.imageset/UU_newRegisterPw@1x.png


二進制
UU_Ent/UU_Ent/Supporting Files/Assets.xcassets/Resources/登录/UU_newRegisterPw.imageset/UU_newRegisterPw@2x.png


二進制
UU_Ent/UU_Ent/Supporting Files/Assets.xcassets/Resources/登录/UU_newRegisterPw.imageset/UU_newRegisterPw@3x.png


+ 23 - 0
UU_Ent/UU_Ent/Supporting Files/Assets.xcassets/Resources/登录/UU_newRegisterTel.imageset/Contents.json

@@ -0,0 +1,23 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "filename" : "UU_newRegisterTel@1x.png",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "UU_newRegisterTel@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "UU_newRegisterTel@3x.png",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}

二進制
UU_Ent/UU_Ent/Supporting Files/Assets.xcassets/Resources/登录/UU_newRegisterTel.imageset/UU_newRegisterTel@1x.png


二進制
UU_Ent/UU_Ent/Supporting Files/Assets.xcassets/Resources/登录/UU_newRegisterTel.imageset/UU_newRegisterTel@2x.png


二進制
UU_Ent/UU_Ent/Supporting Files/Assets.xcassets/Resources/登录/UU_newRegisterTel.imageset/UU_newRegisterTel@3x.png


+ 8 - 1
UU_Ent/UU_Ent/Supporting Files/defines/import.h

@@ -9,8 +9,13 @@
 #ifndef import_h
 #define import_h
 
-//自定义
+//gRPC服务
+#import <UU_Ent/Account.pbrpc.h>
+#import <UU_Ent/App.pbrpc.h>
+#import <UU_Ent/Home.pbrpc.h>
+#import <UU_Ent/Message.pbrpc.h>
 
+//自定义
 #import "YRUserInfo.h"
 #import "YRTableView.h"
 #import "UIColor+HexColor.h"
@@ -21,6 +26,8 @@
 #import "UIView+selector.h"
 #import "NSString+regular.h"
 #import "UILabel+vertical.h"
+#import "YRShowMessageFromNavi.h"
+#import "YRBaseNav.h"
 
 //第三方导入
 #import <GRPCClient/GRPCCall+Tests.h>

+ 9 - 1
UU_Ent/UU_Ent/Supporting Files/defines/macro.h

@@ -19,19 +19,27 @@
 #define DLog(...)
 
 #endif
+
 //当前控制器的宽高度
 #define self_width self.view.frame.size.width
 #define self_height self.view.frame.size.height
+
 //颜色
 #define HexColor(h) [UIColor colorWithHexString:(h)]
-#define RGB(r, g, b) [UIColor colorWithRed:((r) / 255.0) green:((g) / 255.0) blue:((b) / 255.0) alpha:1.0]
+#define RGB(r, g, b, A) [UIColor colorWithRed:((r) / 255.0) green:((g) / 255.0) blue:((b) / 255.0) alpha:(A)]
+
 //屏幕的宽高度
 #define kWidth [UIScreen mainScreen].bounds.size.width
 #define kHeight [UIScreen mainScreen].bounds.size.height
 
 //系统版本
 #define iOS11Early [[[UIDevice currentDevice] systemVersion] floatValue] < 11.0
+#define statusXLately [[UIApplication sharedApplication] statusBarFrame].size.height == 44
 
 //字体
 #define FONT_SIZE(size) [UIFont systemFontOfSize:size]
+
+//格式化字符串
+#define FORMAT(fmt, ...) [NSString stringWithFormat:(fmt), ##__VA_ARGS__]
+
 #endif /* macro_h */

+ 2 - 0
UU_Ent/UU_Ent/Utils/NSString/NSString+regular.h

@@ -14,6 +14,8 @@ NS_ASSUME_NONNULL_BEGIN
 
 +(BOOL)isAllNumber:(NSString *)str;
 
+//判断是否为邮箱
++(BOOL)isEmail:(NSString*)email;
 @end
 
 NS_ASSUME_NONNULL_END

+ 11 - 0
UU_Ent/UU_Ent/Utils/NSString/NSString+regular.m

@@ -21,4 +21,15 @@
     return isMatch;
 }
 
++ (BOOL)isEmail:(NSString*)email
+{
+    NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
+    
+    NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
+    
+    return [emailTest evaluateWithObject:email];
+    
+}
+
+
 @end

+ 1 - 1
UU_Ent/UU_Ent/Utils/UIButton/YRButton.m

@@ -18,7 +18,7 @@
             [self setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
         
         if (nColor) {
-            [self setBackgroundColor:color forState:UIControlStateNormal];
+            [self setBackgroundColor:nColor forState:UIControlStateNormal];
         }else
             [self setBackgroundColor:HexColor(@"#33A2EE") forState:UIControlStateNormal];
         

+ 18 - 0
UU_Ent/UU_Ent/Utils/UINavigation/YRShowMessageFromNavi.h

@@ -0,0 +1,18 @@
+//
+//  YRShowMessageFromNavi.h
+//  UU_Ent
+//
+//  Created by huangyp-pc on 2019/5/6.
+//  Copyright © 2019 UAS. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+@interface YRShowMessageFromNavi : UIView
+
++ (void)showDropViewWithMessage:(NSString *)message ToNavi:(UINavigationController *)Navi withColor:(UIColor *)color;
+
++ (void)hideDropView;
+
+@end
+

+ 116 - 0
UU_Ent/UU_Ent/Utils/UINavigation/YRShowMessageFromNavi.m

@@ -0,0 +1,116 @@
+//
+//  YRShowMessageFromNavi.m
+//  UU_Ent
+//
+//  Created by huangyp-pc on 2019/5/6.
+//  Copyright © 2019 UAS. All rights reserved.
+//
+
+#import "YRShowMessageFromNavi.h"
+
+static UILabel *label = nil;
+
+@implementation YRShowMessageFromNavi
+
++ (void)showDropViewWithMessage:(NSString *)message ToNavi:(UINavigationController *)Navi withColor:(UIColor *)color
+{
+    
+    if([message containsString:@"null"] || [message isKindOfClass:[NSNull class]] || [message containsString:@"NETWORK"] || [message containsString:@"程序错误"]){
+        
+        message = @"服务器配置异常";
+        
+    }
+    
+    if (color == nil)
+    {
+        color = RGB(35,71,114,0.8);
+    }
+    
+    if (label == nil)
+    {
+        Navi.view.userInteractionEnabled = NO;
+        // 1.创建label
+        label = [[UILabel alloc] init];
+        label.backgroundColor = color;
+        label.width = [UIScreen mainScreen].bounds.size.width;
+        label.height = [self getHeighth:message];
+        label.numberOfLines = 0;
+        // 2.设置其他属性
+        label.textColor = [UIColor whiteColor];
+        label.textAlignment = NSTextAlignmentCenter;
+        label.font =  FONT_SIZE(12);
+        NSString *str = @"";
+        if (message == nil || message.length == 0 || ![message isKindOfClass:[NSString class]]) {
+            
+            message = str;
+            
+        }
+        
+        label.text = message;
+        
+        // 3.添加
+        if (statusXLately) {
+            
+            label.y = 88 - label.height;
+            
+        }else{
+            
+            label.y = 64 - label.height;
+            
+        }
+        // 4.将label添加到导航控制器的view中,并且是盖在导航栏下边
+        [Navi.view insertSubview:label belowSubview:Navi.navigationBar];
+        // 5.动画
+        // 先利用1s的时间,让label往下移动一段距离
+        CGFloat duration;
+        if (label.height >15)
+            duration = 1.5;
+        else
+            duration = 0.7; // 动画的时间
+        
+        [UIView animateWithDuration:duration animations:^{
+            //        label.y += label.height;
+            label.transform = CGAffineTransformMakeTranslation(0, label.height);
+        } completion:^(BOOL finished) {
+            // 延迟1s后,再利用1s的时间,让label往上移动一段距离(回到一开始的状态)
+            CGFloat delay ;
+            if (label.height >15)
+                delay = 1;
+            else
+                delay = 0.5;
+            // 延迟1s
+            // UIViewAnimationOptionCurveLinear:匀速
+            [UIView animateWithDuration:duration delay:delay options:UIViewAnimationOptionCurveLinear animations:^{
+                //            label.y -= label.height;
+                label.alpha = 0.0f;
+            } completion:^(BOOL finished) {
+                [label removeFromSuperview];
+                label=nil;
+                
+                Navi.view.userInteractionEnabled=YES;
+            }];
+        }];
+        
+        // 如果某个动画执行完毕后,又要回到动画执行前的状态,建议使用transform来做动画
+    }else{
+        
+        
+    }
+    
+}
+
++ (CGFloat)getHeighth:(NSString *)str{
+    
+    return [str boundingRectWithSize:CGSizeMake(kWidth,CGFLOAT_MAX) options:NSStringDrawingUsesFontLeading | NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName: FONT_SIZE(12)} context:NULL].size.height;
+    
+}
+
++ (void)hideDropView
+{
+    
+    [label removeFromSuperview];
+    label = nil;
+    
+}
+
+@end

+ 17 - 0
UU_Ent/UU_Ent/Utils/UITextField/LeftViewTF.h

@@ -0,0 +1,17 @@
+//
+//  LeftViewTF.h
+//  UU_Ent
+//
+//  Created by huangyp-pc on 2019/5/6.
+//  Copyright © 2019 UAS. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface LeftViewTF : UITextField
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 33 - 0
UU_Ent/UU_Ent/Utils/UITextField/LeftViewTF.m

@@ -0,0 +1,33 @@
+//
+//  LeftViewTF.m
+//  UU_Ent
+//
+//  Created by huangyp-pc on 2019/5/6.
+//  Copyright © 2019 UAS. All rights reserved.
+//
+
+#import "LeftViewTF.h"
+
+@implementation LeftViewTF
+
+- (CGRect)leftViewRectForBounds:(CGRect)bounds
+{
+    CGRect iconRect = [super leftViewRectForBounds:bounds];
+    iconRect.origin.x += 15; //像右边偏15
+    return iconRect;
+}
+
+//UITextField 文字与输入框的距离
+- (CGRect)textRectForBounds:(CGRect)bounds{
+    
+    return CGRectInset(bounds, 45, 0);
+    
+}
+
+//控制文本的位置
+- (CGRect)editingRectForBounds:(CGRect)bounds{
+    
+    return CGRectInset(bounds, 45, 0);
+}
+
+@end