// // YMHomeUserView.m // YUMI // // Created by XY on 2023/2/17. // #import "XPHomeUserView.h" #import #import "NetImageView.h" #import "DJDKMIMOMColor.h" /// M #import "HomeRecommendRoomModel.h" @interface XPHomeUserView() /// 头像 @property (nonatomic, strong) NetImageView *avatarImageView; /// 昵称 @property (nonatomic, strong) UILabel *nicknameLabel; /// 简介 @property (nonatomic, strong) UILabel *introduceLabel; /// 环形遮罩 @property (nonatomic, strong) UIImageView *circleView; @end @implementation XPHomeUserView - (void)setRoomModel:(HomeRecommendRoomModel *)roomModel { _roomModel = roomModel; self.nicknameLabel.text = roomModel.nick; self.introduceLabel.text = roomModel.roomDesc; self.avatarImageView.imageUrl = roomModel.avatar; } - (instancetype)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { [self createUI]; [self addTarget:self action:@selector(userViewClicked) forControlEvents:UIControlEventTouchUpInside]; } return self; } - (void)createUI { [self addSubview:self.avatarImageView]; [self addSubview:self.nicknameLabel]; [self addSubview:self.introduceLabel]; [self addSubview:self.circleView]; [self.avatarImageView mas_makeConstraints:^(MASConstraintMaker *make) { make.top.mas_equalTo(0); make.centerX.mas_equalTo(self); make.width.height.mas_equalTo(70); }]; [self.nicknameLabel mas_makeConstraints:^(MASConstraintMaker *make) { make.top.mas_equalTo(self.avatarImageView.mas_bottom).offset(15); make.centerX.mas_equalTo(self); make.leading.mas_greaterThanOrEqualTo(2); make.trailing.mas_lessThanOrEqualTo(-2); }]; [self.introduceLabel mas_makeConstraints:^(MASConstraintMaker *make) { make.top.mas_equalTo(self.nicknameLabel.mas_bottom).offset(2); make.centerX.mas_equalTo(self); make.leading.mas_greaterThanOrEqualTo(2); make.trailing.mas_lessThanOrEqualTo(-2); }]; [self.circleView mas_makeConstraints:^(MASConstraintMaker *make) { make.leading.trailing.mas_equalTo(0); make.top.mas_equalTo(self.avatarImageView); make.bottom.mas_equalTo(self.avatarImageView); }]; } /// 点击事件 - (void)userViewClicked { if (self.delegate && [self.delegate respondsToSelector:@selector(userViewClickAction:)]) { [self.delegate userViewClickAction:self.roomModel]; } } #pragma mark - 懒加载 - (NetImageView *)avatarImageView { if (!_avatarImageView) { _avatarImageView = [[NetImageView alloc] init]; _avatarImageView.contentMode = UIViewContentModeScaleAspectFill; _avatarImageView.layer.cornerRadius = 35; _avatarImageView.clipsToBounds = YES; } return _avatarImageView; } - (UILabel *)nicknameLabel { if (!_nicknameLabel) { _nicknameLabel = [[UILabel alloc] init]; _nicknameLabel.textColor = [DJDKMIMOMColor appMainColor]; _nicknameLabel.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; } return _nicknameLabel; } - (UILabel *)introduceLabel { if (!_introduceLabel) { _introduceLabel = [[UILabel alloc] init]; _introduceLabel.textColor = [DJDKMIMOMColor appMainColor]; _introduceLabel.font = [UIFont systemFontOfSize:10 weight:UIFontWeightMedium]; } return _introduceLabel; } - (UIImageView *)circleView { if (!_circleView) { _circleView = [[UIImageView alloc] init]; _circleView.contentMode = UIViewContentModeScaleAspectFit; _circleView.image = [UIImage imageNamed:@"home_user_circle"]; } return _circleView; } @end