// // YMReportRemarkView.m // MSYOUPAI // // Created by YoMi on 2024/3/5. // Copyright © 2024 MS. All rights reserved. // #import "YMReportRemarkView.h" #import "YMReportViewModel.h" @interface YMReportRemarkView () /// 举报VM @property (nonatomic, strong) YMReportViewModel *viewModel; /// 简介文本框 @property (nonatomic, strong) YMTextView *reportRemarkTextView; /// 简介上限标签 @property (nonatomic, strong) UILabel *reportRemarkLimitLb; @end @implementation YMReportRemarkView - (void)ym_setupViews{ [self addSubview:self.reportRemarkTextView]; [self addSubview:self.reportRemarkLimitLb]; [self setNeedsUpdateConstraints]; [self updateConstraintsIfNeeded]; } - (void)updateConstraints{ [self.reportRemarkTextView mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self).offset(adapt(15)); make.left.equalTo(self).offset(adapt(15)); make.right.equalTo(self).offset(adapt(-15)); make.bottom.equalTo(self).offset(adapt(-15)); make.height.mas_equalTo(adapt(160)); }]; [self.reportRemarkLimitLb mas_makeConstraints:^(MASConstraintMaker *make) { make.right.equalTo(self).offset(adapt(-30)); make.bottom.equalTo(self).offset(adapt(-30)); make.height.mas_equalTo(adapt(15)); }]; [super updateConstraints]; } - (void)ym_bindViewModel:(YMReportViewModel *)viewModel{ if (!viewModel) { return; } _viewModel = viewModel; @weakify(self) [[[[RACObserve(self.viewModel, reportRemarkMaxLength) distinctUntilChanged] deliverOnMainThread] takeUntil:self.rac_willDeallocSignal] subscribeNext:^(NSNumber * reportRemarkMaxLength) { @strongify(self) self.reportRemarkTextView.maxLength = [reportRemarkMaxLength intValue]; }]; [self.reportRemarkTextView addTextDidChangeHandler:^(YMTextView * _Nonnull textView) { @strongify(self) self.reportRemarkLimitLb.text = stringFormat(@"%ld/%ld",textView.formatText.length,self.viewModel.reportRemarkMaxLength); [self.viewModel.getReportTextSubject sendNext:textView.formatText]; }]; } - (YMTextView *)reportRemarkTextView { if (!_reportRemarkTextView) { _reportRemarkTextView = [[YMTextView alloc]init]; _reportRemarkTextView.ym_textContainerInset = UIEdgeInsetsMake(adapt(10), adapt(10), adapt(35), adapt(10)); _reportRemarkTextView.textColor = HexColorFromRGB(0x333333); _reportRemarkTextView.tintColor = HexColorFromRGB(0xfd7bc5); _reportRemarkTextView.font = LCFont(13); _reportRemarkTextView.placeholder = @"提供更多信息有助于举报快速处理~"; _reportRemarkTextView.placeholderFont = LCFont(13); _reportRemarkTextView.placeholderColor = HexColorFromRGB(0xbababc); _reportRemarkTextView.minHeight = adapt(160); _reportRemarkTextView.backgroundColor = HexColorFromRGB(0xf7f8fa); _reportRemarkTextView.layer.cornerRadius = adapt(8); } return _reportRemarkTextView; } - (UILabel *)reportRemarkLimitLb{ if (!_reportRemarkLimitLb) { _reportRemarkLimitLb = [[UILabel alloc]init]; _reportRemarkLimitLb.font = LCFont(13); _reportRemarkLimitLb.textColor = HexColorFromRGB(0x9c9c9c); _reportRemarkLimitLb.textAlignment = NSTextAlignmentRight; } return _reportRemarkLimitLb; } @end