124 lines
3.6 KiB
Objective-C
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
|