12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- //
- // 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
|