238 lines
9.0 KiB
Objective-C
238 lines
9.0 KiB
Objective-C
//
|
|
// DDLoginTextView.m
|
|
// DingDangApp
|
|
//
|
|
// Created by apple on 2023/7/4.
|
|
//
|
|
|
|
#import "DDLoginTextView.h"
|
|
|
|
@implementation DDLoginTextView {
|
|
UILabel *_leftLabel;
|
|
}
|
|
|
|
#pragma mark - Init
|
|
- (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;
|
|
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 {
|
|
_type = type;
|
|
// self.lineView.hidden = YES;
|
|
switch (type) {
|
|
case DDTextFieldPhone:
|
|
{
|
|
// self.iconImageView.image = [UIImage imageNamed:@"login_bg_icon_3"];
|
|
self.textField.keyboardType = UIKeyboardTypeNumberPad;
|
|
self.textField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:@"请输入手机号" attributes:@{NSForegroundColorAttributeName:DDHEXColor(0x999999), NSFontAttributeName : DDFont(16)}];
|
|
self.textField.jk_maxLength = 11;
|
|
}
|
|
break;
|
|
case DDTextFieldGetCode: {
|
|
// self.iconImageView.image = [UIImage imageNamed:@"login_bg_icon_4"];
|
|
self.textField.keyboardType = UIKeyboardTypeNumberPad;
|
|
self.textField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:@"请输入验证码" attributes:@{NSForegroundColorAttributeName:DDHEXColor(0x999999), NSFontAttributeName : DDFont(16)}];
|
|
self.textField.jk_maxLength = 5;
|
|
[self.textField mas_remakeConstraints:^(MASConstraintMaker *make) {
|
|
make.left.equalTo(self).offset(20);
|
|
make.width.height.mas_equalTo(self);
|
|
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);
|
|
}];
|
|
}
|
|
break;
|
|
case DDTextFieldPassWord:
|
|
{
|
|
// self.iconImageView.image = [UIImage imageNamed:@"login_bg_icon_4"];
|
|
self.textField.secureTextEntry = YES;
|
|
self.textField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:@"请输入密码" attributes:@{NSForegroundColorAttributeName:DDHEXColor(0x999999), NSFontAttributeName : DDFont(16)}];
|
|
[self.textField mas_remakeConstraints:^(MASConstraintMaker *make) {
|
|
make.left.equalTo(self).offset(20);
|
|
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"];
|
|
self.textField.keyboardType = UIKeyboardTypeASCIICapable;
|
|
self.textField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:@"邀请码(非必填)" attributes:@{NSForegroundColorAttributeName:DDHEXColor(0x999999), NSFontAttributeName : DDFont(16)}];
|
|
@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;
|
|
|
|
self.iconImageView.hidden = YES;
|
|
if (_customLeftText.length == 0 || [_customLeftText isEqualToString:@""]) {
|
|
return;
|
|
}
|
|
|
|
[self initLeftLabel];
|
|
_leftLabel.text = customLeftText;
|
|
}
|
|
|
|
|
|
#pragma mark - Action
|
|
- (void)showPassWordBtnClick {
|
|
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 {
|
|
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 {
|
|
if (!_getCodeBtn) {
|
|
_getCodeBtn = [JKCountDownButton buttonWithType:UIButtonTypeCustom];
|
|
_getCodeBtn.titleLabel.font = DDFont(12);
|
|
[_getCodeBtn setTitle:@" " forState:UIControlStateNormal];
|
|
[_getCodeBtn setTitleColor:[DDAppColor dd_MajorTitleColor] forState:UIControlStateNormal];
|
|
[_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);
|
|
}];
|
|
}
|
|
return _getCodeBtn;
|
|
}
|
|
- (UIImageView *)iconImageView {
|
|
if (!_iconImageView) {
|
|
_iconImageView = [[UIImageView alloc]init];
|
|
_iconImageView.contentMode = UIViewContentModeScaleAspectFill;
|
|
_iconImageView.hidden = YES;
|
|
[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);
|
|
make.width.height.mas_equalTo(21);
|
|
}];
|
|
}
|
|
return _iconImageView;
|
|
}
|
|
|
|
- (UITextField *)textField {
|
|
if (!_textField) {
|
|
_textField = [[UITextField alloc] init];
|
|
_textField.font = DDFont(16);
|
|
_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 {
|
|
if (!_lineView) {
|
|
_lineView = [[UIView alloc]init];
|
|
_lineView.backgroundColor = DDHEXColor(0xEAEAEA);
|
|
_lineView.hidden = YES;
|
|
[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
|