// // XPMineFriendTableViewCell.m // xplan-ios // // Created by 冯硕 on 2021/12/21. // #import "XPMineFriendTableViewCell.h" ///Third #import ///Tool #import "NetImageConfig.h" #import "NetImageView.h" #import "UIImage+Utils.h" ///Model #import "UserInfoModel.h" @interface XPMineFriendTableViewCell () ///头像 @property (nonatomic,strong) NetImageView *avatarImageView; ///容器 @property (nonatomic,strong) UIStackView *stackView; ///昵称 @property (nonatomic,strong) UILabel *nickLabel; ///性别 //@property (nonatomic,strong) UIButton *sexImageView; ///等级 @property (nonatomic,strong) NetImageView *experImageView; ///魅力等级 @property (nonatomic,strong) NetImageView *charmImageView; @property(nonatomic, strong) NetImageView *VIPImageView; ///签名 @property (nonatomic,strong) UILabel *signLabel; @property (nonatomic, strong) UIView *container; @end @implementation XPMineFriendTableViewCell - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { [self initSubViews]; [self initSubViewConstraints]; } return self; } #pragma mark - Private Method - (void)initSubViews { self.backgroundColor = [UIColor clearColor]; self.selectionStyle = UITableViewCellSelectionStyleNone; UIView *bottomSpace = [[UIView alloc] init]; [self.contentView addSubview:bottomSpace]; [bottomSpace mas_makeConstraints:^(MASConstraintMaker *make) { make.leading.trailing.bottom.mas_equalTo(self.contentView); make.height.mas_equalTo(12); }]; UIView *container = [[UIView alloc] init]; container.backgroundColor = [UIColor whiteColor]; container.layer.cornerRadius = 10; [self.contentView addSubview:container]; [container mas_makeConstraints:^(MASConstraintMaker *make) { make.top.mas_equalTo(self.contentView); make.bottom.mas_equalTo(bottomSpace.mas_top); make.leading.mas_equalTo(16); make.trailing.mas_equalTo(-16); }]; [container addSubview:self.avatarImageView]; [container addSubview:self.stackView]; [container addSubview:self.signLabel]; [self.stackView addArrangedSubview:self.nickLabel]; // [self.stackView addArrangedSubview:self.sexImageView]; [self.stackView addArrangedSubview:self.experImageView]; [self.stackView addArrangedSubview:self.charmImageView]; [self.stackView addArrangedSubview:self.VIPImageView]; _container = container; } - (void)initSubViewConstraints { [self.avatarImageView mas_makeConstraints:^(MASConstraintMaker *make) { make.size.mas_equalTo(CGSizeMake(50, 50)); make.centerY.mas_equalTo(self.container); make.leading.mas_equalTo(self.container).offset(15); }]; [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { make.leading.mas_equalTo(self.avatarImageView.mas_trailing).offset(10); make.trailing.mas_lessThanOrEqualTo(self.container).offset(-10); make.bottom.mas_equalTo(self.avatarImageView.mas_centerY).offset(-2); // make.leading.mas_equalTo(self.avatarImageView.mas_trailing).offset((10)); // make.trailing.mas_lessThanOrEqualTo(self.container).mas_offset(-0); // make.height.mas_equalTo(((20))); // make.top.equalTo(self.avatarImageView.mas_top).mas_offset((3)); }]; // [self.sexImageView mas_makeConstraints:^(MASConstraintMaker *make) { // make.width.mas_equalTo(28); // make.height.mas_equalTo(14); // }]; [self.signLabel mas_makeConstraints:^(MASConstraintMaker *make) { make.leading.mas_equalTo(self.stackView); make.top.mas_equalTo(self.stackView.mas_bottom).offset(7); }]; CGFloat width = 28 * 20 / 14; [self.charmImageView mas_makeConstraints:^(MASConstraintMaker *make) { make.height.mas_equalTo(20); make.width.mas_equalTo(width); }]; [self.experImageView mas_makeConstraints:^(MASConstraintMaker *make) { make.height.mas_equalTo(20); make.width.mas_equalTo(width); }]; [self.VIPImageView mas_makeConstraints:^(MASConstraintMaker *make) { make.height.mas_equalTo(20); make.width.mas_equalTo(width); }]; } #pragma mark - Getters And Setters - (void)setUserInfo:(UserInfoModel *)userInfo { _userInfo = userInfo; if (_userInfo) { self.avatarImageView.imageUrl = _userInfo.avatar; self.nickLabel.text = _userInfo.nick; self.signLabel.text = _userInfo.userDesc && _userInfo.userDesc.length > 0? _userInfo.userDesc : YMLocalizedString(@"XPMineFriendTableViewCell0"); self.experImageView.hidden = NO; self.charmImageView.hidden = NO; self.experImageView.imageUrl = _userInfo.userLevelVo.experUrl; self.charmImageView.imageUrl = _userInfo.userLevelVo.charmUrl; // [self.sexImageView setTitle:[NSString getAgeWithBirth:_userInfo.birth] forState:UIControlStateNormal]; // self.sexImageView.backgroundColor = _userInfo.gender == GenderType_Male ? UIColorFromRGB(0x6BB3FF) :UIColorFromRGB(0xFF80CC); // self.sexImageView.titleEdgeInsets = _userInfo.gender != GenderType_Male ? UIEdgeInsetsMake(0, 2, 0, 0):UIEdgeInsetsMake(0, -1, 0, 0); // self.sexImageView.selected = _userInfo.gender != GenderType_Male; if (userInfo.userVipInfoVO) { self.VIPImageView.hidden = userInfo.userVipInfoVO.vipLevel == 0; self.VIPImageView.imageUrl = userInfo.userVipInfoVO.nameplateUrl; @kWeakify(self); [self.VIPImageView loadImageWithUrl:userInfo.userVipInfoVO.nameplateUrl completion:^(UIImage * _Nullable image, NSURL * _Nonnull url) { if (image) { @kStrongify(self); CGFloat scale = image.size.width / image.size.height; [self.VIPImageView mas_remakeConstraints:^(MASConstraintMaker *make) { make.size.mas_equalTo(CGSizeMake(20* scale, 20)); }]; [self.stackView layoutIfNeeded]; } }]; } else { self.VIPImageView.hidden = YES; } } } - (NetImageView *)avatarImageView { if (!_avatarImageView) { NetImageConfig * config = [[NetImageConfig alloc]init]; config.imageType = ImageTypeUserIcon; config.placeHolder = [UIImageConstant defaultAvatarPlaceholder]; _avatarImageView = [[NetImageView alloc] initWithConfig:config]; _avatarImageView.layer.masksToBounds = YES; _avatarImageView.layer.cornerRadius = 50.0/2; } return _avatarImageView; } - (UIStackView *)stackView { if (!_stackView) { _stackView = [[UIStackView alloc] init]; _stackView.axis = UILayoutConstraintAxisHorizontal; _stackView.distribution = UIStackViewDistributionFill; _stackView.alignment = UIStackViewAlignmentCenter; _stackView.spacing = 4; } return _stackView; } - (UILabel *)nickLabel { if (!_nickLabel) { _nickLabel = [[UILabel alloc] init]; _nickLabel.font = kFontSemibold(14); _nickLabel.textColor = [DJDKMIMOMColor inputTextColor]; } return _nickLabel; } //- (UIButton *)sexImageView { // if (!_sexImageView) { // _sexImageView = [[UIButton alloc] init]; // [_sexImageView setImage:kImage(@"home_age_boy_icon") forState:UIControlStateNormal]; // [_sexImageView setImage:kImage(@"home_age_girl_icon") forState:UIControlStateSelected]; // _sexImageView.titleLabel.font = [UIFont systemFontOfSize:10 weight:UIFontWeightMedium]; // [_sexImageView setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; // _sexImageView.imageEdgeInsets = UIEdgeInsetsMake(0, 0, 0, 0); // _sexImageView.layer.cornerRadius = 14/2; // _sexImageView.layer.masksToBounds = YES; // } // return _sexImageView; //} - (NetImageView *)experImageView { if (!_experImageView) { NetImageConfig * config = [[NetImageConfig alloc]init]; _experImageView = [[NetImageView alloc] initWithConfig:config]; } return _experImageView; } - (NetImageView *)charmImageView { if (!_charmImageView) { NetImageConfig * config = [[NetImageConfig alloc]init]; _charmImageView = [[NetImageView alloc] initWithConfig:config]; } return _charmImageView; } - (NetImageView *)VIPImageView { if (!_VIPImageView) { NetImageConfig * config = [[NetImageConfig alloc]init]; _VIPImageView = [[NetImageView alloc] initWithConfig:config]; } return _VIPImageView; } - (UILabel *)signLabel{ if (!_signLabel) { _signLabel = [[UILabel alloc] init]; _signLabel.textColor = UIColorFromRGB(0x7b7b7d); _signLabel.font = kFontRegular(13); } return _signLabel; } @end