214 lines
7.3 KiB
Objective-C
214 lines
7.3 KiB
Objective-C
//
|
|
// QXChirldModeView.m
|
|
// QXLive
|
|
//
|
|
// Created by 启星 on 2025/5/12.
|
|
//
|
|
|
|
#import "QXPasswordView.h"
|
|
CGFloat labelWith = 50;
|
|
CGFloat labelHeight = 63;
|
|
@interface QXPasswordView()<UITextFieldDelegate>
|
|
@property(nonatomic,strong)UILabel *titleLabel;
|
|
@property(nonatomic,strong)UIButton *forgotBtn;
|
|
@property(nonatomic,strong)UITextField *textField;
|
|
@property(nonatomic,strong)UILabel *label1;
|
|
@property(nonatomic,strong)UILabel *label2;
|
|
@property(nonatomic,strong)UILabel *label3;
|
|
@property(nonatomic,strong)UILabel *label4;
|
|
@end
|
|
@implementation QXPasswordView
|
|
|
|
- (instancetype)initWithFrame:(CGRect)frame type:(QXPasswordViewType)type
|
|
{
|
|
self = [super initWithFrame:frame];
|
|
if (self) {
|
|
[self initSubviews];
|
|
[self setType:type];
|
|
}
|
|
return self;
|
|
}
|
|
- (instancetype)init
|
|
{
|
|
self = [super init];
|
|
if (self) {
|
|
[self initSubviews];
|
|
}
|
|
return self;
|
|
}
|
|
-(void)initSubviews{
|
|
|
|
self.titleLabel = [[UILabel alloc] init];
|
|
self.titleLabel.textColor = QXConfig.textColor;
|
|
self.titleLabel.font = [UIFont boldSystemFontOfSize:16];
|
|
[self addSubview:self.titleLabel];
|
|
[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.centerX.equalTo(self);
|
|
make.top.equalTo(self).offset(30);
|
|
make.height.mas_equalTo(24);
|
|
}];
|
|
|
|
self.label1 = [[UILabel alloc] init];
|
|
[self setCustomLabel:self.label1];
|
|
[self addSubview:self.label1];
|
|
|
|
self.label2 = [[UILabel alloc] init];
|
|
[self setCustomLabel:self.label2];
|
|
[self addSubview:self.label2];
|
|
|
|
self.label3 = [[UILabel alloc] init];
|
|
[self setCustomLabel:self.label3];
|
|
[self addSubview:self.label3];
|
|
|
|
self.label4 = [[UILabel alloc] init];
|
|
[self setCustomLabel:self.label4];
|
|
[self addSubview:self.label4];
|
|
|
|
[self.label2 mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.right.equalTo(self.mas_centerX).offset(-8);
|
|
make.size.mas_equalTo(CGSizeMake(labelWith, labelHeight));
|
|
make.top.equalTo(self.titleLabel.mas_bottom).offset(30);
|
|
}];
|
|
|
|
[self.label3 mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.left.equalTo(self.mas_centerX).offset(8);
|
|
make.size.mas_equalTo(CGSizeMake(labelWith, labelHeight));
|
|
make.top.equalTo(self.label2);
|
|
}];
|
|
|
|
[self.label1 mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.right.equalTo(self.label2.mas_left).offset(-16);
|
|
make.size.mas_equalTo(CGSizeMake(labelWith, labelHeight));
|
|
make.top.equalTo(self.label2);
|
|
}];
|
|
|
|
[self.label4 mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.left.equalTo(self.label3.mas_right).offset(16);
|
|
make.size.mas_equalTo(CGSizeMake(labelWith, labelHeight));
|
|
make.top.equalTo(self.label2);
|
|
}];
|
|
|
|
self.textField = [[UITextField alloc] init];
|
|
self.textField.delegate = self;
|
|
self.textField.font = [UIFont systemFontOfSize:1];
|
|
self.textField.keyboardType = UIKeyboardTypeNumberPad;
|
|
self.textField.returnKeyType = UIReturnKeyDone;
|
|
self.textField.textColor = [UIColor clearColor];
|
|
self.textField.userInteractionEnabled = YES;
|
|
// [self.textField addTarget:self action:@selector(textDidChange:) forControlEvents:(UIControlEventEditingChanged)];
|
|
[self insertSubview:self.textField atIndex:0];
|
|
|
|
[self.textField mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.centerX.centerY.equalTo(self.label1);
|
|
make.width.height.mas_equalTo(1);
|
|
}];
|
|
self.forgotBtn = [[UIButton alloc] init];
|
|
[self.forgotBtn setTitleColor:QXConfig.themeColor forState:(UIControlStateNormal)];
|
|
self.forgotBtn.titleLabel.font = [UIFont systemFontOfSize:12];
|
|
[self.forgotBtn setTitle:[NSString stringWithFormat:@"%@?%@",QXText(@"忘记密码"),QXText(@"请联系客服")] forState:(UIControlStateNormal)];
|
|
[self.forgotBtn addTarget:self action:@selector(forgotAction) forControlEvents:(UIControlEventTouchUpInside)];
|
|
[self addSubview:self.forgotBtn];
|
|
[self.forgotBtn mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.top.equalTo(self.label1.mas_bottom).offset(10);
|
|
make.height.mas_equalTo(38);
|
|
make.centerX.equalTo(self);
|
|
}];
|
|
}
|
|
-(void)forgotAction{
|
|
|
|
}
|
|
-(void)setCustomLabel:(UILabel*)label{
|
|
label.font = [UIFont boldSystemFontOfSize:22];
|
|
label.layer.cornerRadius = 5;
|
|
label.layer.masksToBounds = YES;
|
|
label.textColor = QXConfig.textColor;
|
|
label.textAlignment = NSTextAlignmentCenter;
|
|
label.backgroundColor = RGB16(0xEFF2F8);
|
|
MJWeakSelf
|
|
[label addTapBlock:^(id _Nonnull obj) {
|
|
[weakSelf.textField becomeFirstResponder];
|
|
}];
|
|
// label.layer.shadowColor = [UIColor grayColor].CGColor;
|
|
// label.layer.shadowOpacity = 0.5;
|
|
// label.layer.shadowOffset = CGSizeMake(0, 2);
|
|
// label.layer.shadowRadius = 5;
|
|
// label.layer.shadowPath = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, labelWith, labelHeight) cornerRadius:0].CGPath;
|
|
// [label addShadowWithColor:[UIColor grayColor] radius:5 frame:CGRectMake(0, 0, labelWith, labelHeight)];
|
|
|
|
|
|
}
|
|
|
|
-(BOOL)textFieldShouldReturn:(UITextField *)textField{
|
|
[textField resignFirstResponder];
|
|
return YES;
|
|
}
|
|
|
|
|
|
|
|
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
|
|
if (string.length>1) {
|
|
//防止粘贴
|
|
return NO;
|
|
}
|
|
if (textField.text.length <= 4) {
|
|
if (textField.text.length == 0) {
|
|
if ([string isEqualToString:@""]) {
|
|
//不做操作
|
|
}else{
|
|
self.label1.text = string;
|
|
}
|
|
}else if (textField.text.length == 1){
|
|
if ([string isEqualToString:@""]) {
|
|
self.label1.text = @"";
|
|
}else{
|
|
self.label2.text = string;
|
|
}
|
|
}else if (textField.text.length == 2){
|
|
if ([string isEqualToString:@""]) {
|
|
self.label2.text = @"";
|
|
}else{
|
|
self.label3.text = string;
|
|
}
|
|
self.label4.text = @"";
|
|
}else if (textField.text.length == 3){
|
|
if ([string isEqualToString:@""]) {
|
|
self.label3.text = @"";
|
|
}else{
|
|
self.label4.text = string;
|
|
self.textField.text = [NSString stringWithFormat:@"%@%@%@%@",self.label1.text,self.label2.text,self.label3.text,self.label4.text];
|
|
[self.textField resignFirstResponder];
|
|
if (self.delegate && [self.delegate respondsToSelector:@selector(inputFinished:)]) {
|
|
[self.delegate inputFinished:[NSString stringWithFormat:@"%@%@%@%@",self.label1.text,self.label2.text,self.label3.text,self.label4.text]];
|
|
}
|
|
}
|
|
}else{
|
|
if ([string isEqualToString:@""]) {
|
|
self.label4.text = @"";
|
|
return YES;
|
|
}
|
|
return NO;
|
|
}
|
|
return YES;
|
|
}
|
|
return NO;
|
|
}
|
|
|
|
|
|
-(void)setType:(QXPasswordViewType)type{
|
|
_type = type;
|
|
switch (type) {
|
|
case QXPasswordViewTypeChirldMode:{
|
|
self.titleLabel.text = QXText(@"请输入监护密码");
|
|
}
|
|
break;
|
|
case QXPasswordViewTypeRoom:{
|
|
self.titleLabel.text = QXText(@"请输入房间密码");
|
|
}
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
}
|
|
@end
|