// // YMImproveInfoFemaleNicknameView.m // MSYOUPAI // // Created by YoMi on 2024/2/8. // Copyright © 2024 MS. All rights reserved. // #import "YMImproveInfoFemaleNicknameView.h" #import "YMImproveInfoViewModel.h" @interface YMImproveInfoFemaleNicknameView () /// 完善信息VM @property (nonatomic, strong) YMImproveInfoViewModel *viewModel; /// 昵称标题标签 @property (nonatomic, strong) UILabel *nicknameTitleLb; @property (nonatomic, strong) UIView *baseView; /// 昵称输入框 @property (nonatomic, strong) UITextField *nicknameContentInputBox; /// 昵称刷新按钮 @property (nonatomic, strong) UIButton *nicknameRefreshBtn; @end @implementation YMImproveInfoFemaleNicknameView - (void)ym_setupViews{ [self addSubview:self.nicknameTitleLb]; [self addSubview:self.baseView]; [self.baseView addSubview:self.nicknameContentInputBox]; [self.baseView addSubview:self.nicknameRefreshBtn]; [self setNeedsUpdateConstraints]; [self updateConstraintsIfNeeded]; } - (void)updateConstraints{ [self.nicknameTitleLb mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self); make.left.equalTo(self); make.height.mas_equalTo(adapt(22)); }]; [self.baseView mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.nicknameTitleLb.mas_bottom).offset(adapt(5)); make.left.equalTo(self); make.right.equalTo(self); make.height.mas_equalTo(adapt(48)); }]; [self.nicknameContentInputBox mas_makeConstraints:^(MASConstraintMaker *make) { make.centerY.equalTo(self.baseView); make.left.equalTo(self.baseView).offset(adapt(16)); make.width.mas_equalTo(adapt(200)); }]; [self.nicknameRefreshBtn mas_makeConstraints:^(MASConstraintMaker *make) { make.centerY.equalTo(self.baseView); make.right.equalTo(self.baseView).offset(adapt(-16)); make.width.mas_equalTo(adapt(80)); make.height.mas_equalTo(adapt(25)); }]; [super updateConstraints]; } - (void)ym_bindViewModel:(YMImproveInfoViewModel *)viewModel{ if (!viewModel) { return; } _viewModel = viewModel; RAC(self.nicknameContentInputBox, text) = RACObserve(self.viewModel, improveInfoFemaleNickname); } - (UILabel *)nicknameTitleLb{ if (!_nicknameTitleLb) { _nicknameTitleLb = [[UILabel alloc]init]; _nicknameTitleLb.font = LCFont(13); _nicknameTitleLb.textColor = HexColorFromRGBA(0x333333,1); _nicknameTitleLb.textAlignment = NSTextAlignmentLeft; _nicknameTitleLb.text = @"昵称"; } return _nicknameTitleLb; } - (UIView *)baseView{ if (!_baseView) { _baseView = [[UIView alloc]init]; _baseView.backgroundColor = HexColorFromRGBA(0xF2F5FF,1); _baseView.layer.borderColor = HexColorFromRGBA(0xF2F5FF,1).CGColor; _baseView.layer.borderWidth = 0.2; _baseView.layer.cornerRadius = adapt(16); _baseView.layer.masksToBounds = true; } return _baseView; } - (UITextField *)nicknameContentInputBox{ if (!_nicknameContentInputBox) { NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc]init]; style.minimumLineHeight = 0; NSMutableAttributedString *placeholderAttributed = [[NSMutableAttributedString alloc]initWithString:@"取一个独特的昵称吧"]; placeholderAttributed.yy_paragraphStyle = style; placeholderAttributed.yy_font = LCFont(13); placeholderAttributed.yy_color = HexColorFromRGB(0x545D79); placeholderAttributed.yy_alignment = NSTextAlignmentLeft; _nicknameContentInputBox = [[UITextField alloc]init]; _nicknameContentInputBox.textColor = HexColorFromRGB(0x333333); _nicknameContentInputBox.textAlignment = NSTextAlignmentLeft; _nicknameContentInputBox.attributedPlaceholder = placeholderAttributed; _nicknameContentInputBox.clearButtonMode = UITextFieldViewModeWhileEditing; _nicknameContentInputBox.autocorrectionType = UITextAutocorrectionTypeDefault; _nicknameContentInputBox.autocapitalizationType = UITextAutocapitalizationTypeNone; _nicknameContentInputBox.keyboardType = UIKeyboardTypeDefault; WS(weakSelf) [[[_nicknameContentInputBox rac_textSignal] takeUntil:self.rac_willDeallocSignal] subscribeNext:^(id value) { weakSelf.viewModel.improveInfoFemaleNickname = value; }]; } return _nicknameContentInputBox; } - (UIButton *)nicknameRefreshBtn{ if (!_nicknameRefreshBtn) { _nicknameRefreshBtn = [UIButton buttonWithType:UIButtonTypeCustom]; [_nicknameRefreshBtn setImage:ImageByName(@"ym_improve_info_nickname_random_icon") forState:UIControlStateNormal]; [_nicknameRefreshBtn setTitle:@" 随机" forState:UIControlStateNormal]; [_nicknameRefreshBtn setTitleColor:HexColorFromRGB(0x545D79) forState:UIControlStateNormal]; _nicknameRefreshBtn.titleLabel.font = LCFont(13); _nicknameRefreshBtn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentRight; // [_nicknameRefreshBtn setSemanticContentAttribute:UISemanticContentAttributeForceLeftToRight]; CGFloat margin = 5; _nicknameRefreshBtn.titleEdgeInsets = UIEdgeInsetsMake(0, margin, 0, -margin); _nicknameRefreshBtn.imageEdgeInsets = UIEdgeInsetsMake(0, margin, 0, -margin); WS(weakSelf) [[[_nicknameRefreshBtn rac_signalForControlEvents:UIControlEventTouchUpInside] takeUntil:self.rac_willDeallocSignal] subscribeNext:^(__kindof UIButton * _Nullable sender) { [weakSelf.viewModel randomNickname]; }]; } return _nicknameRefreshBtn; } @end