| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304 |
- //
- // GSignController.m
- // aiim
- //
- // Created by gan on 2025/2/28.
- //
- #import "GSignController.h"
- #import "config.h"
- #import "UserNetApi.h"
- @interface GSignController ()
- @property (weak, nonatomic) IBOutlet UITextField *inputZH;
- @property (weak, nonatomic) IBOutlet UITextField *inputMMA;
- @property (weak, nonatomic) IBOutlet UITextField *inputMMB;
- @property (weak, nonatomic) IBOutlet UITextField *inputYX;
- @property (weak, nonatomic) IBOutlet UITextField *inputYZM;
- @property (weak, nonatomic) IBOutlet UIButton *getyanzmBt;
- @property (weak, nonatomic) IBOutlet UILabel *noteLb;
- @property (weak, nonatomic) IBOutlet UIButton *zhuceBt;
- @property (nonatomic) NSInteger count;
- @property (strong, nonatomic) NSTimer *heatBeat;
- @property (strong, nonatomic) NSString *youxiang;
- @end
- @implementation GSignController
- - (void)viewDidLoad {
- [super viewDidLoad];
- // Do any additional setup after loading the view.
- [self.navigationController setNavigationBarHidden:YES animated:NO];
- // 创建一个点击手势
- UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismissKeyboard)];
- // 将手势添加到主视图上
- [self.view addGestureRecognizer:tap];
- // 注册键盘显示通知
- [[NSNotificationCenter defaultCenter] addObserver:self
- selector:@selector(keyboardWillShow:)
- name:UIKeyboardWillShowNotification object:nil];
- // 注册键盘隐藏通知
- [[NSNotificationCenter defaultCenter] addObserver:self
- selector:@selector(keyboardWillHide:)
- name:UIKeyboardWillHideNotification object:nil];
- [self initSubView];
- }
- -(void)dismissKeyboard{
- NSLog(@"dismissKeyboard");
- [self.view endEditing:YES];
- }
- -(void)initSubView{
- _inputZH.borderStyle=UITextBorderStyleNone;
- _inputZH.layer.borderWidth = 1.0f;
- _inputZH.layer.borderColor = globalColor(GCTypeGreen).CGColor; //globalColor(GCTypeGreen);
- _inputZH.layer.cornerRadius = 8.0f; // 可选,设置圆角
- _inputZH.backgroundColor = [UIColor clearColor];
- _inputZH.textColor=[UIColor whiteColor];
- NSString *note = NSLocalizedString(@"Sign-usernme-note", @"");
- NSMutableAttributedString *placeholder = [[NSMutableAttributedString alloc] initWithString:note attributes:@{NSForegroundColorAttributeName: [UIColor lightGrayColor]}];
- UIView *paddingView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 10, 0)];
- _inputZH.leftView = paddingView;
- _inputZH.leftViewMode = UITextFieldViewModeAlways;
- _inputZH.attributedPlaceholder = placeholder;
-
- _inputMMA.borderStyle=UITextBorderStyleNone;
- _inputMMA.layer.borderWidth = 1.0f;
- _inputMMA.layer.borderColor = globalColor(GCTypeGreen).CGColor; //globalColor(GCTypeGreen);
- _inputMMA.layer.cornerRadius = 8.0f; // 可选,设置圆角
- _inputMMA.backgroundColor = [UIColor clearColor];
- _inputMMA.textColor=[UIColor whiteColor];
- note = NSLocalizedString(@"Sign-passw-note", @"");
- NSMutableAttributedString *placeholder2 = [[NSMutableAttributedString alloc] initWithString:note attributes:@{NSForegroundColorAttributeName: [UIColor lightGrayColor]}];
- UIView *paddingView2 = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 10, 0)];
- _inputMMA.leftView = paddingView2;
- _inputMMA.leftViewMode = UITextFieldViewModeAlways;
- _inputMMA.attributedPlaceholder = placeholder2;
-
- _inputMMB.borderStyle=UITextBorderStyleNone;
- _inputMMB.layer.borderWidth = 1.0f;
- _inputMMB.layer.borderColor = globalColor(GCTypeGreen).CGColor; //globalColor(GCTypeGreen);
- _inputMMB.layer.cornerRadius = 8.0f; // 可选,设置圆角
- _inputMMB.backgroundColor = [UIColor clearColor];
- _inputMMB.textColor=[UIColor whiteColor];
- note = NSLocalizedString(@"Sign-passw-note", @"");
- NSMutableAttributedString *placeholder3 = [[NSMutableAttributedString alloc] initWithString:note attributes:@{NSForegroundColorAttributeName: [UIColor lightGrayColor]}];
- UIView *paddingView3 = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 10, 0)];
- _inputMMB.leftView = paddingView3;
- _inputMMB.leftViewMode = UITextFieldViewModeAlways;
- _inputMMB.attributedPlaceholder = placeholder3;
-
-
- _inputYX.borderStyle=UITextBorderStyleNone;
- _inputYX.layer.borderWidth = 1.0f;
- _inputYX.layer.borderColor = globalColor(GCTypeGreen).CGColor; //globalColor(GCTypeGreen);
- _inputYX.layer.cornerRadius = 8.0f; // 可选,设置圆角
- _inputYX.backgroundColor = [UIColor clearColor];
- _inputYX.textColor=[UIColor whiteColor];
- note = NSLocalizedString(@"Sign-qingshuryx", @"");
- NSMutableAttributedString *placeholder4 = [[NSMutableAttributedString alloc] initWithString:note attributes:@{NSForegroundColorAttributeName: [UIColor lightGrayColor]}];
- UIView *paddingView4 = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 10, 0)];
- _inputYX.leftView = paddingView4;
- _inputYX.leftViewMode = UITextFieldViewModeAlways;
- _inputYX.attributedPlaceholder = placeholder4;
-
-
- _inputYZM.borderStyle=UITextBorderStyleNone;
- _inputYZM.layer.borderWidth = 1.0f;
- _inputYZM.layer.borderColor = globalColor(GCTypeGreen).CGColor; //globalColor(GCTypeGreen);
- _inputYZM.layer.cornerRadius = 8.0f; // 可选,设置圆角
- _inputYZM.backgroundColor = [UIColor clearColor];
- _inputYZM.textColor=[UIColor whiteColor];
- note = NSLocalizedString(@"Sign-qingsryzm", @"");
- NSMutableAttributedString *placeholder5 = [[NSMutableAttributedString alloc] initWithString:note attributes:@{NSForegroundColorAttributeName: [UIColor lightGrayColor]}];
- UIView *paddingView5 = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 10, 0)];
- _inputYZM.leftView = paddingView5;
- _inputYZM.leftViewMode = UITextFieldViewModeAlways;
- _inputYZM.attributedPlaceholder = placeholder5;
-
- [_getyanzmBt setTitle:NSLocalizedString(@"Sign-huoquyzm", @"获取验证码") forState:UIControlStateNormal];
- _getyanzmBt.titleLabel.font = [UIFont systemFontOfSize: 15.0];
- [_getyanzmBt setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
- [_getyanzmBt setBackgroundColor:globalColor(GCTypeGreen)];
- _getyanzmBt.layer.cornerRadius = 16;
- _getyanzmBt.layer.masksToBounds = YES; // 防止子视图超出圆角边界
-
- _noteLb.numberOfLines=3;
- _noteLb.font = [UIFont systemFontOfSize:14.0f];
- _noteLb.textColor = globalColor(GCTypeDark3);
- _noteLb.text =NSLocalizedString(@"Sign-yanzhengmts", @"");
-
- [_zhuceBt setTitle:NSLocalizedString(@"Sign-zhuce", @"注册") forState:UIControlStateNormal];
- _zhuceBt.titleLabel.font = [UIFont systemFontOfSize: 19.0];
- [_zhuceBt setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
- [_zhuceBt setBackgroundColor:globalColor(GCTypeGreen)];
- _zhuceBt.layer.cornerRadius = 27;
- _zhuceBt.layer.masksToBounds = YES; // 防止子视图超出圆角边界
- _count = 0;
- [self startHeartbeat];
- }
- -(void)dealloc{
- [self destoryHeartbeat];
- }
- - (void)keyboardWillShow:(NSNotification *)notification {
- CGFloat moveF = 0;
-
- if(_inputMMB.isFirstResponder){
- moveF = -100.0f;
- }
- if(_inputYX.isFirstResponder){
- moveF = -150.0f;
- }
- if(_inputYZM.isFirstResponder){
- moveF = -250.0f;
- }
-
- CGRect frame = self.view.frame;
- NSLog(@"frame.origin.y:%f",frame.origin.y);
- frame.origin.y=moveF;
- NSDictionary *userInfo = [notification userInfo];
- double duration = [[userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey] doubleValue];
- UIViewAnimationCurve curve = [[userInfo objectForKey:UIKeyboardAnimationCurveUserInfoKey] integerValue];
- [UIView animateWithDuration:duration
- delay:0.0
- options:(curve << 16)
- animations:^{
- self.view.frame = frame;;
- } completion:nil];
-
-
- }
-
- - (void)keyboardWillHide:(NSNotification *)notification{
- CGRect frame = self.view.frame;
- frame.origin.y=0;
- self.view.frame = frame;
- }
- - (IBAction)gotoBack:(id)sender {
- [self dismissViewControllerAnimated:YES completion:nil];
- }
- - (IBAction)getyanzmAct:(id)sender {
- if(_count==0){
-
- _youxiang =_inputYX.text;
-
- NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,64}|[\\p{L}0-9._%+-]+@[\\p{L}0-9.-]+\\.[\\p{L}]{2,}";
- //NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,64}";
- NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
- BOOL isValid = [emailTest evaluateWithObject:_youxiang];
- if (isValid) {
- _count = 60;
- [self sendYanzhengma];
- } else {
- NSLog(@"Email is invalid");
- }
- }
- }
- - (IBAction)zbuceAct:(id)sender {
-
- if([_inputYX.text isEqualToString:_youxiang]){
- if([_inputMMA.text isEqualToString:_inputMMB.text]){
- if(_inputZH.text.length>3&&_inputMMA.text.length>3&&_inputYZM.text.length>3){
-
- NSString *emailRegex = @"^[a-zA-Z0-9]+$";
- NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
- BOOL isValid = [emailTest evaluateWithObject:_inputZH.text];
- if(isValid){
- [self updateSign];
- }
- else{
- [MBProgressHUD showWithText:@"帳號只能包含數位字母"];
- }
- }
- else{//所有项目为必填,且不小于4个字符
-
- }
- }
- else{//密码输入不一致
-
- }
- }
- else{//邮箱不是获取验证码的邮箱
-
- }
-
-
- }
- //定时服务
- - (void)startHeartbeat {
- self.heatBeat = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(heartbeatAction) userInfo:nil repeats:YES];
- [self.heatBeat setFireDate:[NSDate distantPast]];
- [[NSRunLoop currentRunLoop] addTimer:_heatBeat forMode:NSRunLoopCommonModes];
- }
- //销毁定时
- - (void)destoryHeartbeat{
- [self.heatBeat invalidate];
- self.heatBeat = nil;
- }
- -(void)heartbeatAction{
- if(_count>0){
- NSString *note = [NSString stringWithFormat:@"%@(%ld)",NSLocalizedString(@"Sign-wangjimm", @"验证码"),(long)_count];
- [_getyanzmBt setTitle:note forState:UIControlStateNormal];
- _count=_count-1;
- }
- else{
- [_getyanzmBt setTitle:NSLocalizedString(@"Sign-huoquyzm", @"获取验证码") forState:UIControlStateNormal];
- }
- }
- #pragma mark network
- -(void)sendYanzhengma{
- NSLog(@"sendYanzhengma");
- [UserNetApi getEmailcode:_inputYX.text succ:^(int code, NSDictionary * res) {
- NSLog(@"res:%@",res);
- } fail:^(NSError * _Nonnull error) {
- NSLog(@"errer");
- }];
- }
- -(void)updateSign{
-
- NSDictionary *dic=@{
- @"host":@"",
- @"username":_inputZH.text,
- @"phonenumber":@"",
- @"email":_inputYX.text,
- @"password":_inputMMA.text,
- @"confirmPassword":_inputMMB.text,
- @"code":_inputYZM.text,
- @"uuid":@""
- };
- [UserNetApi sign:dic succ:^(int code, NSDictionary * res) {
- NSLog(@"res:%@",res);
- NSString *cd = res[@"code"];
- if(cd.intValue ==200){
- [self dismissViewControllerAnimated:YES completion:nil];
- }
- else{
- NSLog(@"注册账号失败!");
- }
-
- } fail:^(NSError * _Nonnull error) {
- NSLog(@"errer");
- }];
-
- }
- @end
|