// // YMDynamicDetailCommentCell.m // MSYOUPAI // // Created by YoMi on 2024/3/21. // Copyright © 2024 MS. All rights reserved. // #import "YMDynamicDetailCommentCell.h" #import "YMDynamicDetailCommentCellViewModel.h" @interface YMDynamicDetailCommentCell () /// ViewModel @property (nonatomic, strong) YMDynamicDetailCommentCellViewModel *viewModel; /// 基础视图 @property (nonatomic, strong) UIView *baseView; /// 用户头像视图 @property (nonatomic, strong) UIImageView *userAvatarView; /// 用户昵称标签 @property (nonatomic, strong) UILabel *userNickNameLb; /// 动态评论日期标签 @property (nonatomic, strong) UILabel *dynamicCommentDateLb; /// 动态评论内容标签 @property (nonatomic, strong) UILabel *dynamicCommentContentLb; @end @implementation YMDynamicDetailCommentCell - (void)awakeFromNib { [super awakeFromNib]; // Initialization code } - (void)setSelected:(BOOL)selected animated:(BOOL)animated { [super setSelected:selected animated:animated]; // Configure the view for the selected state } - (void)ym_setupViews{ self.contentView.backgroundColor = UIColor.clearColor; self.backgroundColor = UIColor.clearColor; [self.contentView addSubview:self.baseView]; [self.baseView addSubview:self.userAvatarView]; [self.baseView addSubview:self.userNickNameLb]; [self.baseView addSubview:self.dynamicCommentDateLb]; [self.baseView addSubview:self.dynamicCommentContentLb]; [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.userAvatarView mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.baseView).offset(adapt(15)); make.left.equalTo(self.baseView).offset(adapt(15)); make.width.height.mas_equalTo(adapt(40)); }]; [self.userNickNameLb mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.userAvatarView.mas_top); make.left.equalTo(self.userAvatarView.mas_right).offset(adapt(10)); }]; [self.dynamicCommentDateLb mas_makeConstraints:^(MASConstraintMaker *make) { make.centerY.equalTo(self.userNickNameLb.mas_centerY); make.right.equalTo(self.baseView).offset(adapt(-15)); }]; [self.dynamicCommentContentLb mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.userNickNameLb.mas_bottom).offset(adapt(10)); make.left.equalTo(self.userAvatarView.mas_right).offset(adapt(10)); make.right.equalTo(self.baseView).offset(adapt(-15)); make.bottom.equalTo(self.baseView).offset(adapt(-15)).priorityHigh(); }]; [super updateConstraints]; } - (void)ym_bindViewModel:(YMDynamicDetailCommentCellViewModel*)viewModel{ if (!viewModel) { return; } _viewModel = viewModel; [self.userAvatarView sd_setImageWithURL:[LCTools getImageUrlWithAddress:self.viewModel.userAvatar]]; self.userNickNameLb.text = self.viewModel.userNickname; self.dynamicCommentDateLb.text = self.viewModel.dynamicCommentDate; self.dynamicCommentContentLb.attributedText = self.viewModel.dynamicCommentContent; } - (UIView *)baseView{ if (!_baseView) { _baseView = [[UIView alloc]init]; _baseView.backgroundColor = HexColorFromRGB(0xFFFFFF); } return _baseView; } - (UIImageView *)userAvatarView{ if (!_userAvatarView) { _userAvatarView = [[UIImageView alloc]init]; _userAvatarView.backgroundColor = UIColor.lightGrayColor; _userAvatarView.contentMode = UIViewContentModeScaleAspectFill; _userAvatarView.layer.cornerRadius = adapt(40)/2; _userAvatarView.clipsToBounds = YES; _userAvatarView.userInteractionEnabled = YES; WS(weakSelf) UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] init]; [_userAvatarView addGestureRecognizer:tap]; [[[tap rac_gestureSignal] takeUntil:self.rac_willDeallocSignal] subscribeNext:^(id x) { [weakSelf.viewModel.gotoPersonalPageSubject sendNext:@(weakSelf.viewModel.userId)]; }]; } return _userAvatarView; } - (UILabel *)userNickNameLb{ if (!_userNickNameLb) { _userNickNameLb = [[UILabel alloc]init]; _userNickNameLb.font = LCFont(13); _userNickNameLb.textColor = HexColorFromRGB(0x333333); _userNickNameLb.textAlignment = NSTextAlignmentLeft; _userNickNameLb.text = @"******"; } return _userNickNameLb; } - (UILabel *)dynamicCommentDateLb{ if (!_dynamicCommentDateLb) { _dynamicCommentDateLb = [[UILabel alloc]init]; _dynamicCommentDateLb.font = LCFont(12); _dynamicCommentDateLb.textColor = HexColorFromRGB(0x9c9c9c); _dynamicCommentDateLb.textAlignment = NSTextAlignmentRight; _dynamicCommentDateLb.text = @"******"; } return _dynamicCommentDateLb; } - (UILabel *)dynamicCommentContentLb{ if (!_dynamicCommentContentLb) { _dynamicCommentContentLb = [[UILabel alloc]init]; _dynamicCommentContentLb.font = LCFont(13); _dynamicCommentContentLb.textColor = HexColorFromRGB(0x333333); _dynamicCommentContentLb.textAlignment = NSTextAlignmentLeft; _dynamicCommentContentLb.text = @"******"; _dynamicCommentContentLb.numberOfLines = 0; } return _dynamicCommentContentLb; } @end