Files
yinmeng-ios-store/yinmeng-ios/DingDangApp/V2Versions/Login/View/DDLoginTextView.m

238 lines
9.0 KiB
Mathematica
Raw Normal View History

2023-12-07 10:50:21 +08:00
//
// DDLoginTextView.m
// DingDangApp
//
// Created by apple on 2023/7/4.
//
#import "DDLoginTextView.h"
@implementation DDLoginTextView {
UILabel *_leftLabel;
}
#pragma mark - Init
2023-12-07 10:50:21 +08:00
- (instancetype)initWithFrame:(CGRect)frame withType:(DDTextFieldViewType)type
{
self = [super initWithFrame:frame];
if (self) {
self.backgroundColor = [DDAppColor dd_getColorWithHexText:@"#F8F8F8"];
self.layer.cornerRadius = 51.0/2;
self.layer.masksToBounds = YES;
2023-12-07 10:50:21 +08:00
self.type = type;
}
return self;
}
- (void)initLeftLabel {
if (!_leftLabel){
_leftLabel = [[UILabel alloc] init];
_leftLabel.textColor = [DDAppColor dd_MajorTitleColor];
_leftLabel.font = DDFont(18);
[self addSubview:_leftLabel];
[_leftLabel mas_makeConstraints:^(MASConstraintMaker *make) {
// make.top.equalTo(self.iconImageView);
make.centerY.equalTo(self);
make.left.mas_equalTo(10);
}];
}
}
#pragma mark - Set
- (void)setType:(DDTextFieldViewType)type {
2023-12-07 10:50:21 +08:00
_type = type;
// self.lineView.hidden = YES;
2023-12-07 10:50:21 +08:00
switch (type) {
case DDTextFieldPhone:
{
// self.iconImageView.image = [UIImage imageNamed:@"login_bg_icon_3"];
2023-12-07 10:50:21 +08:00
self.textField.keyboardType = UIKeyboardTypeNumberPad;
self.textField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:@"请输入手机号" attributes:@{NSForegroundColorAttributeName:DDHEXColor(0x999999), NSFontAttributeName : DDFont(16)}];
2023-12-07 10:50:21 +08:00
self.textField.jk_maxLength = 11;
}
break;
case DDTextFieldGetCode: {
// self.iconImageView.image = [UIImage imageNamed:@"login_bg_icon_4"];
2023-12-07 10:50:21 +08:00
self.textField.keyboardType = UIKeyboardTypeNumberPad;
self.textField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:@"请输入验证码" attributes:@{NSForegroundColorAttributeName:DDHEXColor(0x999999), NSFontAttributeName : DDFont(16)}];
self.textField.jk_maxLength = 5;
2023-12-07 10:50:21 +08:00
[self.textField mas_remakeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self).offset(20);
make.width.height.mas_equalTo(self);
2023-12-07 10:50:21 +08:00
make.centerY.equalTo(self.iconImageView);
}];
[self.getCodeBtn mas_remakeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.textField.mas_right).mas_offset(10);
make.centerY.equalTo(self.textField);
make.height.mas_equalTo(24);
make.width.mas_equalTo(80);
make.right.equalTo(self).inset(5);
}];
}
break;
case DDTextFieldPasswordAccount: {
self.textField.keyboardType = UIKeyboardTypeNumberPad;
self.textField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:@"请输入账号/ID" attributes:@{NSForegroundColorAttributeName:DDHEXColor(0x999999), NSFontAttributeName : DDFont(16)}];
[self.textField mas_remakeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self).offset(20);
make.width.height.mas_equalTo(self);
make.centerY.equalTo(self.iconImageView);
2023-12-07 10:50:21 +08:00
}];
}
break;
case DDTextFieldPassWord:
{
// self.iconImageView.image = [UIImage imageNamed:@"login_bg_icon_4"];
2023-12-07 10:50:21 +08:00
self.textField.secureTextEntry = YES;
self.textField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:@"请输入密码" attributes:@{NSForegroundColorAttributeName:DDHEXColor(0x999999), NSFontAttributeName : DDFont(16)}];
2023-12-07 10:50:21 +08:00
[self.textField mas_remakeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self).offset(20);
2023-12-07 10:50:21 +08:00
make.width.mas_equalTo(244);
make.height.mas_equalTo(40);
make.centerY.equalTo(self.iconImageView);
}];
[self.showPassWordBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.mas_equalTo(self.lineView.mas_right);
make.centerY.mas_equalTo(self.textField.mas_centerY);
make.width.height.mas_equalTo(44);
}];
}
break;
case DDTextFieldInvideCode:{
// self.iconImageView.image =[UIImage imageNamed:@"login_bg_icon_4"];
2023-12-07 10:50:21 +08:00
self.textField.keyboardType = UIKeyboardTypeASCIICapable;
self.textField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:@"邀请码(非必填)" attributes:@{NSForegroundColorAttributeName:DDHEXColor(0x999999), NSFontAttributeName : DDFont(16)}];
2023-12-07 10:50:21 +08:00
@weakify(self);
[[self.textField rac_textSignal] subscribeNext:^(NSString * _Nullable x) {
@strongify(self);
if (x.length>20) {
self.textField.text = [x substringToIndex:20];
}
}];
}
break;
default:
break;
}
}
- (void)setCustomLeftText:(NSString *)customLeftText {
_customLeftText = customLeftText;
2023-12-07 10:50:21 +08:00
self.iconImageView.hidden = YES;
if (_customLeftText.length == 0 || [_customLeftText isEqualToString:@""]) {
return;
}
[self initLeftLabel];
_leftLabel.text = customLeftText;
}
#pragma mark - Action
- (void)showPassWordBtnClick {
2023-12-07 10:50:21 +08:00
self.showPassWordBtn.selected = !self.showPassWordBtn.selected;
if (self.showPassWordBtn.isSelected) {
self.textField.secureTextEntry = NO;
return;
}
self.textField.secureTextEntry = YES;
}
- (void)getCodeBtnClick {
if (self.getCodeBlock) {
self.getCodeBlock();
}
}
#pragma mark - Get
- (UIButton *)showPassWordBtn {
2023-12-07 10:50:21 +08:00
if (!_showPassWordBtn) {
_showPassWordBtn = [UIButton buttonWithType:(UIButtonTypeCustom)];
[_showPassWordBtn setImage:[UIImage imageNamed:@"login_bg_icon_5"] forState:(UIControlStateNormal)];
[_showPassWordBtn setImage:[UIImage imageNamed:@"login_bg_icon_6"] forState:(UIControlStateSelected)];
[_showPassWordBtn addTarget:self action:@selector(showPassWordBtnClick) forControlEvents:UIControlEventTouchUpInside];
[self addSubview:_showPassWordBtn];
[_showPassWordBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.mas_equalTo(self.lineView.mas_right);
make.centerY.mas_equalTo(self.textField.mas_centerY);
make.width.height.mas_equalTo(44);
}];
}
return _showPassWordBtn;
}
- (JKCountDownButton *)getCodeBtn {
2023-12-07 10:50:21 +08:00
if (!_getCodeBtn) {
_getCodeBtn = [JKCountDownButton buttonWithType:UIButtonTypeCustom];
_getCodeBtn.titleLabel.font = DDFont(12);
[_getCodeBtn setTitle:@" " forState:UIControlStateNormal];
[_getCodeBtn setTitleColor:[DDAppColor dd_MajorTitleColor] forState:UIControlStateNormal];
2023-12-07 10:50:21 +08:00
[_getCodeBtn addTarget:self action:@selector(getCodeBtnClick) forControlEvents:UIControlEventTouchUpInside];
[self addSubview:_getCodeBtn];
[_getCodeBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.textField.mas_right).mas_offset(10);
make.centerY.equalTo(self.textField);
make.height.mas_equalTo(24);
make.width.mas_equalTo(80);
make.right.equalTo(self).inset(5);
2023-12-07 10:50:21 +08:00
}];
}
return _getCodeBtn;
}
- (UIImageView *)iconImageView {
2023-12-07 10:50:21 +08:00
if (!_iconImageView) {
_iconImageView = [[UIImageView alloc]init];
_iconImageView.contentMode = UIViewContentModeScaleAspectFill;
_iconImageView.hidden = YES;
2023-12-07 10:50:21 +08:00
[self addSubview:_iconImageView];
[_iconImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self).offset(25);
// make.top.mas_equalTo(self).mas_offset(9);
make.centerY.equalTo(self);
2023-12-07 10:50:21 +08:00
make.width.height.mas_equalTo(21);
}];
}
return _iconImageView;
}
- (UITextField *)textField {
2023-12-07 10:50:21 +08:00
if (!_textField) {
_textField = [[UITextField alloc] init];
_textField.font = DDFont(16);
2023-12-07 10:50:21 +08:00
_textField.textColor = DDHEXColor(0x333333);
[self addSubview:_textField];
[_textField mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.iconImageView.mas_right).offset(10);
make.right.equalTo(self);
make.height.mas_equalTo(40);
make.centerY.equalTo(self.iconImageView);
}];
}
return _textField;
}
- (UIView *)lineView {
2023-12-07 10:50:21 +08:00
if (!_lineView) {
_lineView = [[UIView alloc]init];
_lineView.backgroundColor = DDHEXColor(0xEAEAEA);
_lineView.hidden = YES;
2023-12-07 10:50:21 +08:00
[self addSubview:_lineView];
[_lineView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.iconImageView.mas_bottom).offset(10);
make.right.equalTo(self).inset(25);
make.left.equalTo(self).offset(25);
make.height.mas_equalTo(1);
}];
}
return _lineView;
}
@end