// // YMFriendsListCell.m // MSYOUPAI // // Created by YoMi on 2024/3/1. // Copyright © 2024 MS. All rights reserved. // #import "YMFriendsListCell.h" #import "YMFriendsListCellViewModel.h" @interface YMFriendsListCell () /// 好友VM @property (nonatomic, strong) YMFriendsListCellViewModel *viewModel; /// 基础视图 @property (nonatomic, strong) UIView *baseView; /// 提醒视图 @property (nonatomic, strong) UIView *reminderView; /// 用户头像视图 @property (nonatomic, strong) UIImageView *userAvatarView; /// 用户昵称标签 @property (nonatomic, strong) UILabel *userNicknameLb; /// 用户描述标签 @property (nonatomic, strong) UILabel *userDescLb; /// 关注按钮 @property (nonatomic, strong) UIButton *followBtn; @end @implementation YMFriendsListCell - (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 addSubview:self.baseView]; [self.baseView addSubview:self.reminderView]; [self.baseView addSubview:self.userAvatarView]; [self.baseView addSubview:self.userNicknameLb]; [self.baseView addSubview:self.userDescLb]; [self.baseView addSubview:self.followBtn]; [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.reminderView mas_makeConstraints:^(MASConstraintMaker *make) { make.centerY.equalTo(self.baseView.mas_centerY); make.left.equalTo(self.baseView).offset(adapt(5)); make.width.height.mas_equalTo(adapt(8)); }]; [self.userAvatarView mas_makeConstraints:^(MASConstraintMaker *make) { make.centerY.equalTo(self.baseView.mas_centerY); make.left.equalTo(self.reminderView.mas_right).offset(adapt(10)); make.width.height.mas_equalTo(adapt(50)); }]; [self.userNicknameLb mas_makeConstraints:^(MASConstraintMaker *make) { make.bottom.equalTo(self.userAvatarView.mas_centerY).offset(adapt(-5)); make.left.equalTo(self.userAvatarView.mas_right).offset(adapt(16)); }]; [self.userDescLb mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.userAvatarView.mas_centerY).offset(adapt(5)); make.left.equalTo(self.userAvatarView.mas_right).offset(adapt(16)); }]; [self.followBtn mas_makeConstraints:^(MASConstraintMaker *make) { make.centerY.equalTo(self.baseView.mas_centerY); make.right.equalTo(self.baseView).offset(adapt(-12)); make.width.mas_equalTo(adapt(60)); make.height.mas_equalTo(adapt(28)); }]; [super updateConstraints]; } - (void)ym_bindViewModel:(YMFriendsListCellViewModel *)viewModel{ if (!viewModel) { return; } _viewModel = viewModel; self.reminderView.hidden = self.viewModel.isHideReminder; [self.userAvatarView sd_setImageWithURL:[LCTools getImageUrlWithAddress:self.viewModel.userAvatar]]; self.userNicknameLb.text = self.viewModel.userNickname; self.userDescLb.text = self.viewModel.userDesc; if (!self.viewModel.isFollow) { [self.followBtn setTitle:@"关注" forState:UIControlStateNormal]; self.followBtn.backgroundColor = HexColorFromRGB(0xF888E7); }else{ if (!self.viewModel.isMutualConcerns) { [self.followBtn setTitle:@"已关注" forState:UIControlStateNormal]; }else{ [self.followBtn setTitle:@"已互关" forState:UIControlStateNormal]; } self.followBtn.backgroundColor = HexColorFromRGB(0xCCCCCC); } } - (UIView *)baseView{ if (!_baseView) { _baseView = [[UIView alloc]init]; } return _baseView; } - (UIView *)reminderView{ if (!_reminderView) { _reminderView = [[UIView alloc]init]; _reminderView.backgroundColor = HexColorFromRGB(0xfd7bc5); _reminderView.layer.cornerRadius = adapt(8)/2; } return _reminderView; } - (UIImageView *)userAvatarView{ if (!_userAvatarView) { _userAvatarView = [[UIImageView alloc]init]; _userAvatarView.backgroundColor = UIColor.lightGrayColor; _userAvatarView.layer.cornerRadius = adapt(50)/2; _userAvatarView.layer.masksToBounds = YES; } return _userAvatarView; } - (UILabel *)userNicknameLb{ if (!_userNicknameLb) { _userNicknameLb = [[UILabel alloc]init]; _userNicknameLb.font = LCBoldFont(15); _userNicknameLb.textColor = HexColorFromRGB(0x1B2739); _userNicknameLb.textAlignment = NSTextAlignmentLeft; _userNicknameLb.text = @"******"; } return _userNicknameLb; } - (UILabel *)userDescLb{ if (!_userDescLb) { _userDescLb = [[UILabel alloc]init]; _userDescLb.font = LCFont(12); _userDescLb.textColor = HexColorFromRGB(0x7E848D); _userDescLb.textAlignment = NSTextAlignmentLeft; _userDescLb.text = @"*****"; } return _userDescLb; } - (UIButton *)followBtn{ if (!_followBtn) { _followBtn = [UIButton buttonWithType:UIButtonTypeCustom]; _followBtn.titleLabel.font = LCFont(13); [_followBtn setTitle:@"关注" forState:UIControlStateNormal]; [_followBtn setTitleColor:HexColorFromRGB(0xFFFFFF) forState:UIControlStateNormal]; _followBtn.backgroundColor = HexColorFromRGB(0xF888E7); _followBtn.layer.cornerRadius = adapt(8); WS(weakSelf) [[[_followBtn rac_signalForControlEvents:UIControlEventTouchUpInside] takeUntil:self.rac_willDeallocSignal] subscribeNext:^(__kindof UIButton * _Nullable sender) { [weakSelf.viewModel followUser]; }]; } return _followBtn; } @end