// // YMReportEvidenceCell.m // MSYOUPAI // // Created by YoMi on 2024/3/5. // Copyright © 2024 MS. All rights reserved. // #import "YMReportEvidenceCell.h" #import "YMReportEvidenceCellViewModel.h" @interface YMReportEvidenceCell () /// ViewModel @property (nonatomic, strong) YMReportEvidenceCellViewModel *viewModel; /// 基础视图 @property (nonatomic, strong) UIView *baseView; /// 预览图 @property (nonatomic, strong) UIImageView *previewImage; /// 选择图 @property (nonatomic, strong) UIImageView *selectedImage; /// 删除按钮 @property (nonatomic, strong) UIButton *deleteBtn; @end @implementation YMReportEvidenceCell - (void)ym_setupViews{ self.contentView.backgroundColor = UIColor.clearColor; self.backgroundColor = UIColor.clearColor; [self.contentView addSubview:self.baseView]; [self.baseView addSubview:self.selectedImage]; [self.baseView addSubview:self.previewImage]; [self.baseView addSubview:self.deleteBtn]; [self setNeedsUpdateConstraints]; [self updateConstraintsIfNeeded]; } - (void)updateConstraints { [self.baseView mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.contentView); make.left.equalTo(self.contentView); make.right.equalTo(self.contentView); make.bottom.equalTo(self.contentView); }]; [self.selectedImage mas_makeConstraints:^(MASConstraintMaker *make) { make.edges.equalTo(self.baseView); }]; [self.previewImage mas_makeConstraints:^(MASConstraintMaker *make) { make.edges.equalTo(self.baseView); }]; [self.deleteBtn mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.baseView).offset(adapt(5)); make.right.equalTo(self.baseView).offset(adapt(-5)); make.width.height.mas_equalTo(adapt(20)); }]; [super updateConstraints]; } - (void)ym_bindViewModel:(YMReportEvidenceCellViewModel*)viewModel{ if (!viewModel) { return; } _viewModel = viewModel; if (!self.viewModel.isAddCell) { self.previewImage.hidden = NO; if (OCStringIsEmpty(self.viewModel.networkAlbum)) { self.previewImage.image = self.viewModel.localAlbum; } else { [self.previewImage sd_setImageWithURL:[LCTools getImageUrlWithAddress:self.viewModel.networkAlbum]]; } }else{ self.previewImage.hidden = YES; } self.deleteBtn.hidden = self.viewModel.isHideDeleteButton; } - (UIView *)baseView{ if (!_baseView) { _baseView = [[UIView alloc]init]; } return _baseView; } - (UIImageView *)previewImage{ if (!_previewImage) { _previewImage = [[UIImageView alloc]init];; _previewImage.contentMode = UIViewContentModeScaleAspectFill; _previewImage.layer.cornerRadius = adapt(10); _previewImage.layer.masksToBounds = YES; _previewImage.userInteractionEnabled = YES; } return _previewImage; } - (UIImageView *)selectedImage{ if (!_selectedImage) { _selectedImage = [[UIImageView alloc]init];; _selectedImage.image = ImageByName(@"ym_report_add_icon"); _selectedImage.contentMode = UIViewContentModeScaleAspectFill; _selectedImage.layer.cornerRadius = adapt(10); _selectedImage.layer.masksToBounds = YES; _selectedImage.userInteractionEnabled = YES; } return _selectedImage; } - (UIButton *)deleteBtn{ if (!_deleteBtn) { _deleteBtn = [UIButton buttonWithType:UIButtonTypeCustom]; [_deleteBtn setBackgroundImage:ImageByName(@"ym_report_delete_icon") forState:UIControlStateNormal]; _deleteBtn.hidden = YES; WS(weakSelf) [[[_deleteBtn rac_signalForControlEvents:UIControlEventTouchUpInside] takeUntil:self.rac_willDeallocSignal] subscribeNext:^(id sender) { if (weakSelf.viewModel.removeReportEvidenceBlock) { weakSelf.viewModel.removeReportEvidenceBlock(); } }]; } return _deleteBtn; } @end