Files
peko-ios/YuMi/Modules/YMNewHome/View/CustomView/XPHomeUserView.m
2024-04-11 17:05:27 +08:00

124 lines
3.6 KiB
Objective-C

//
// YMHomeUserView.m
// YUMI
//
// Created by XY on 2023/2/17.
//
#import "XPHomeUserView.h"
#import <Masonry.h>
#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