Files
featherVoice/QXLive/HomePage(声播)/View/首页/QXHomeTopCell.m
2025-10-20 09:43:10 +08:00

175 lines
7.8 KiB
Objective-C

//
// QXHomeTopCell.m
// QXLive
//
// Created by 启星 on 2025/5/7.
//
#import "QXHomeTopCell.h"
@interface QXHomeTopCell()
@property(nonatomic,strong)NSMutableArray *imgs;
@property(nonatomic,strong)UIImageView *peopleIconView;
//
@end
@implementation QXHomeTopCell
- (instancetype)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:frame]) {
[self initSubViews];
}
return self;
}
-(void)initSubViews{
self.backgroundColor = [UIColor clearColor];
self.roomCoverImageView = [[UIImageView alloc] init];
self.roomCoverImageView.contentMode = UIViewContentModeScaleAspectFill;
[self.roomCoverImageView addRoundedCornersWithRadius:7];
self.roomCoverImageView.layer.borderColor = RGB16(0x333333).CGColor;
self.roomCoverImageView.layer.borderWidth = 1.5;
[self addSubview:self.roomCoverImageView];
self.disPlayMaskView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 180, 40)];
[self.disPlayMaskView setTopToBottomGradientBackgroundWithColors:@[[UIColor colorWithHexString:@"#00000000"],[UIColor colorWithHexString:@"#00000096"]] frame:self.disPlayMaskView.bounds];
[self.disPlayMaskView addRoundedCornersWithRadius:7];
[self addSubview:self.disPlayMaskView];
self.titleLabel = [[UILabel alloc] init];
self.titleLabel.textColor = RGB16A(0xF1ECFF, 0.85);
self.titleLabel.textAlignment = NSTextAlignmentCenter;
self.titleLabel.font = [UIFont systemFontOfSize:12];
[self addSubview:self.titleLabel];
self.animateBgView = [[UIView alloc] init];
self.animateBgView.backgroundColor = RGB16(0x333333);
[self.animateBgView addRoundedCornersWithRadius:8];
[self addSubview:self.animateBgView];
self.animateView = [[UIImageView alloc] init];
self.animateView.animationImages = self.imgs;
self.animateView.animationDuration = 1;
[self.animateView startAnimating];
[self.animateBgView addSubview:self.animateView];
self.roomPeopleBgView = [[UIView alloc] init];
[self.roomPeopleBgView addRoundedCornersWithRadius:7];
[self addSubview:self.roomPeopleBgView];
// self.roomPeopleBgImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"home_top_room_people_bg"]];
// self.roomPeopleBgImageView.contentMode = UIViewContentModeScaleToFill;
// [self.roomPeopleBgView addSubview:self.roomPeopleBgImageView];
self.firstHeaderImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"user_header_placehoulder"]];
self.firstHeaderImageView.backgroundColor = [UIColor whiteColor];
[self.firstHeaderImageView addRoundedCornersWithRadius:8];
self.firstHeaderImageView.contentMode = UIViewContentModeScaleAspectFill;
[self.roomPeopleBgView addSubview:self.firstHeaderImageView];
self.secondHeaderImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"user_header_placehoulder"]];
self.secondHeaderImageView.backgroundColor = [UIColor whiteColor];
[self.secondHeaderImageView addRoundedCornersWithRadius:8];
self.secondHeaderImageView.contentMode = UIViewContentModeScaleAspectFill;
[self.roomPeopleBgView addSubview:self.secondHeaderImageView];
self.thirdHeaderImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"user_header_placehoulder"]];
self.thirdHeaderImageView.contentMode = UIViewContentModeScaleAspectFill;
self.thirdHeaderImageView.backgroundColor = [UIColor whiteColor];
[self.thirdHeaderImageView addRoundedCornersWithRadius:8];
[self.roomPeopleBgView addSubview:self.thirdHeaderImageView];
self.countLabel = [[UILabel alloc] init];
[self.countLabel adjustsFontSizeToFitWidth];
self.countLabel.textAlignment = NSTextAlignmentCenter;
self.countLabel.font = [UIFont systemFontOfSize:12.f];
self.countLabel.textColor = UIColor.whiteColor;
[self.roomPeopleBgView addSubview:self.countLabel];
self.peopleIconView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"room_people"]];
[self.roomPeopleBgView addSubview:self.peopleIconView];
[self.roomCoverImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.top.right.equalTo(self);
make.height.mas_equalTo(135);
}];
[self.disPlayMaskView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.bottom.equalTo(self.roomCoverImageView);
make.height.mas_equalTo(40);
}];
[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.equalTo(self);
make.top.equalTo(self.roomCoverImageView.mas_bottom).offset(5);
}];
[self.animateBgView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.top.mas_equalTo(8);
make.size.mas_equalTo(CGSizeMake(28, 16));
}];
[self.animateView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(20, 12));
make.centerX.centerY.equalTo(self.animateBgView);
}];
[self.roomPeopleBgView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(8);
// make.size.mas_equalTo(CGSizeMake(93, 24));
make.height.mas_equalTo(24);
make.right.mas_equalTo(-8);
make.bottom.equalTo(self.roomCoverImageView.mas_bottom).offset(-8);
}];
// [self.roomPeopleBgImageView mas_makeConstraints:^(MASConstraintMaker *make) {
// make.top.bottom.right.left.equalTo(self.roomPeopleBgView);
// }];
[self.firstHeaderImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(16, 16));
make.left.equalTo(self.roomPeopleBgView.mas_left);
make.bottom.equalTo(self.roomPeopleBgView);
}];
[self.secondHeaderImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(16, 16));
make.left.equalTo(self.firstHeaderImageView.mas_right).offset(-6);
make.centerY.equalTo(self.firstHeaderImageView);
}];
[self.thirdHeaderImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(16, 16));
make.left.equalTo(self.secondHeaderImageView.mas_right).offset(-6);
make.centerY.equalTo(self.firstHeaderImageView);
}];
[self.countLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(self.roomPeopleBgView);
make.width.mas_equalTo(32);
make.height.mas_equalTo(12);
make.centerY.equalTo(self.firstHeaderImageView);
}];
[self.peopleIconView mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(self.countLabel.mas_left).offset(-2);
make.centerY.equalTo(self.firstHeaderImageView);
make.width.height.mas_equalTo(14);
}];
self.countLabel.text = @"23人";
}
-(void)setRoomModel:(QXRoomListModel *)roomModel{
_roomModel = roomModel;
self.titleLabel.text = roomModel.room_name;
[self.roomCoverImageView sd_setImageWithURL:[NSURL URLWithString:roomModel.room_cover]];
self.countLabel.text = [NSString localizedStringWithFormat:QXText(@"%@人"),[NSString stringWithFormat:@"%ld",roomModel.user_list.count]];
for (int i = 0; i < roomModel.user_list.count; i++) {
QXUserHomeModel *md = roomModel.user_list[i];
if (i == 0) {
[self.thirdHeaderImageView sd_setImageWithURL:[NSURL URLWithString:md.avatar]];
}else if (i == 1){
[self.secondHeaderImageView sd_setImageWithURL:[NSURL URLWithString:md.avatar]];
}else{
[self.firstHeaderImageView sd_setImageWithURL:[NSURL URLWithString:md.avatar]];
}
}
}
-(NSMutableArray *)imgs{
if (!_imgs) {
_imgs = [NSMutableArray array];
for (int i = 0; i < 14; i++) {
NSString *str = [NSString stringWithFormat:@"Flow 100%02d",i];
UIImage *img = [UIImage imageNamed:str];
[_imgs addObject:img];
}
}
return _imgs;
}
@end