// // GetSmsCodeViewController.m // Youth // // Created by mambaxie on 2022/1/1. // #import "GetSmsCodeViewController.h" #import "WLUnitField.h" #import "PYGetSmsCodeButton.h" #import "SetNickNameViewController.h" NSUInteger SMSCodeNumberCount = 4; @interface GetSmsCodeViewController () @property (nonatomic, strong) NSString *phone; @property (nonatomic, strong) UILabel *tipsLabel; @property (nonatomic, strong) WLUnitField *uniField; @end @implementation GetSmsCodeViewController - (NSString *)topImageName { return @"TH_login_code_img"; } - (NSString *)tipsContent { return @"请输入获取的验证码"; } - (instancetype)initWithPhone:(NSString *)phone { if (self = [super init]) { _phone = phone; } return self; } - (void)viewDidLoad { [super viewDidLoad]; WLUnitField *uniField = [[WLUnitField alloc] initWithInputUnitCount:SMSCodeNumberCount]; uniField.y = [self topContentMargin]; uniField.unitSize = CGSizeMake(FIX_SIZE(44), FIX_SIZE(52)); uniField.delegate = self; uniField.unitSpace = FIX_SIZE(8); uniField.borderRadius = 15; uniField.cursorColor = uniField.trackTintColor = uniField.textColor = COLOR_WITH_RGB(0x222222); uniField.textFont = MT_FONT_MEDIUM_SIZE(15); uniField.borderWidth = 1; uniField.backgroundColor = COLOR_WITH_RGB(0xF3F9FB); uniField.tintColor = [UIColor clearColor]; [uniField sizeToFit]; uniField.inputDelegate = self; // [uniField addTarget:self action:@selector(unitFieldEditingChanged:) forControlEvents:UIControlEventEditingChanged]; uniField.centerX = SCREEN_WIDTH * 0.5; [self.cardView addSubview:uniField]; self.uniField = uniField; UILabel *tipsLabel = [[UILabel alloc] init]; tipsLabel.font = MT_FONT_REGULAR_SIZE(11); tipsLabel.textColor = COLOR_WITH_RGB(0xA5AFB5); tipsLabel.text = [NSString stringWithFormat:@"已发送验证码至 %@", self.phone]; [tipsLabel sizeToFit]; tipsLabel.centerX = SCREEN_WIDTH * 0.5; tipsLabel.y = uniField.bottom + FIX_SIZE(10); [self.cardView addSubview:tipsLabel]; self.tipsLabel = tipsLabel; PYGetSmsCodeButton *getSmsCodeButton = [PYGetSmsCodeButton smsCodeButton]; getSmsCodeButton.y = tipsLabel.bottom + FIX_SIZE(51.5); getSmsCodeButton.centerX = tipsLabel.centerX; WeakSelf(self); getSmsCodeButton.getSmsWithPhoneBlock = ^NSString * _Nonnull{ return weakself.phone; }; getSmsCodeButton.enabled = NO; [getSmsCodeButton startTimer]; [self.cardView addSubview:getSmsCodeButton]; } - (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; #if DEBUG dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ // self.uniField.text = @"1454"; // 14554 // [self unitFieldEditingChanged:self.uniField]; }); #else [self.uniField becomeFirstResponder]; #endif } #pragma mark - WLUnitFieldDelegate - (void)textDidChange:(nullable id )textInput { if (self.uniField.text.length == SMSCodeNumberCount) { [LoginService loginByPhoneWithPhone:self.phone code:self.uniField.text completion:^(id _Nullable rsp, NSError * _Nullable error) { if (error) { self.tipsLabel.text = @"短信验证码错误"; [self.tipsLabel sizeToFit]; self.tipsLabel.centerX = SCREEN_WIDTH * 0.5; self.tipsLabel.textColor = COLOR_WITH_RGB(0xFF4C73); } }]; } } - (void)selectionWillChange:(nullable id )textInput { } - (void)selectionDidChange:(nullable id )textInput { } - (void)textWillChange:(nullable id )textInput { } - (BOOL)unitField:(WLUnitField *)uniField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { return YES; } @end