Files
yinmeng-ios/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeCell/MewMainHomePartyCell.m
2023-12-21 18:42:16 +08:00

219 lines
8.4 KiB
Objective-C

//
// MewMainHomePartyCell.m
// xplan-ios
//
// Created by duoban on 2023/12/21.
//
#import "MewMainHomePartyCell.h"
#import <SDWebImageFLPlugin/SDWebImageFLPlugin.h>
@interface MewMainHomePartyCell()
///周榜,小时榜
@property(nonatomic,strong) NetImageView *mewTopOneView;
///背景
@property(nonatomic,strong) NetImageView *mewBgImageView;
///蒙层
@property(nonatomic,strong) UIImageView *mewMaskView;
///标签图片
@property(nonatomic,strong) NetImageView *mewTagView;
///pk图片
@property(nonatomic,strong) UIImageView *mewPKImageView;
///房间名
@property(nonatomic,strong) UILabel *mewTitleView;
///热度图标
@property(nonatomic,strong) UILabel *mewHotNumView;
///热度值
@property(nonatomic,strong) UIImageView *mewHotImageView;
///热度波浪
@property(nonatomic,strong) FLAnimatedImageView *mewHeatGifView;
@end
@implementation MewMainHomePartyCell
-(instancetype)initWithFrame:(CGRect)frame{
self = [super initWithFrame:frame];
if(self){
[self installUI];
[self installConstraints];
for (int i = 4; i >= 0; i--) {
NetImageConfig *config = [[NetImageConfig alloc]init];
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
NetImageView *imageView = [[NetImageView alloc]initWithConfig:config];
imageView.tag = 1000 + i;
imageView.layer.cornerRadius = kGetScaleWidth(18)/2;
imageView.layer.masksToBounds = YES;
imageView.layer.borderWidth = 1;
imageView.layer.borderColor = [UIColor whiteColor].CGColor;
[self.contentView addSubview:imageView];
imageView.hidden = YES;
CGFloat x = 8 + i * 12;
[imageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.mas_equalTo(kGetScaleWidth(x));
make.width.height.mas_equalTo(kGetScaleWidth(18));
make.bottom.mas_equalTo(-kGetScaleWidth(8));
}];
if(i == 4){
UIView *grayView = [UIView new];
grayView.backgroundColor = UIColorRGBAlpha(0xD8D8D8, 0.5);
[imageView addSubview:grayView];
[grayView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(imageView);
}];
}
}
}
return self;
}
-(void)installUI{
[self.contentView addSubview:self.mewBgImageView];
[self.mewBgImageView addSubview:self.mewMaskView];
[self.mewBgImageView addSubview:self.mewTopOneView];
[self.contentView addSubview:self.mewTagView];
[self.mewTagView addSubview:self.mewHeatGifView];
[self.contentView addSubview:self.mewPKImageView];
[self.contentView addSubview:self.mewTitleView];
[self.contentView addSubview:self.mewHotNumView];
[self.contentView addSubview:self.mewHotImageView];
}
-(void)setRoomModel:(MewMainHomeHotRoomModel *)roomModel{
_roomModel = roomModel;
self.mewBgImageView.image = nil;
[self.mewBgImageView loadImageWithUrl:_roomModel.avatar completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) {
self.mewBgImageView.image = image;
}];
self.mewTopOneView.image = nil;
[self.mewTopOneView loadImageWithUrl:_roomModel.backgroundPic completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) {
self.mewTopOneView.image = image;
}];
self.mewHeatGifView.hidden = YES;
self.mewTagView.image = nil;
[self.mewTagView loadImageWithUrl:_roomModel.tagPict completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) {
self.mewTagView.image = image;
self.mewHeatGifView.hidden = NO;
}];
self.mewPKImageView.hidden = _roomModel.crossPking == NO;
self.mewTitleView.text = _roomModel.title;
self.mewHotNumView.text = [NSString stringWithFormat:@"%ld",_roomModel.onlineNum];
for (int i = 4; i >= 0; i--) {
NetImageView *imageView = [self.contentView viewWithTag:1000+i];
imageView.hidden = YES;
if(i < _roomModel.micUsers.count){
MewMainHomeHotMicUserModel *micModel = [_roomModel.micUsers safeObjectAtIndex1:i];
imageView.image = nil;
imageView.hidden = NO;
[imageView loadImageWithUrl:micModel.avatar completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) {
imageView.image = image;
}];
}
}
}
-(void)installConstraints{
[self.mewBgImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.contentView);
}];
[self.mewTopOneView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.mewBgImageView);
}];
[self.mewMaskView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.mewBgImageView);
}];
[self.mewTagView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(kGetScaleWidth(46));
make.height.mas_equalTo(kGetScaleWidth(18));
make.top.leading.mas_equalTo(kGetScaleWidth(6));
}];
[self.mewHeatGifView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.mas_equalTo(kGetScaleWidth(6));
make.width.mas_equalTo(kGetScaleWidth(10));
make.height.mas_equalTo(kGetScaleWidth(9));
make.centerY.equalTo(self.mewTagView);
}];
[self.mewPKImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.mas_equalTo(kGetScaleWidth(7));
make.width.mas_equalTo(kGetScaleWidth(40));
make.height.mas_equalTo(kGetScaleWidth(16));
make.bottom.mas_equalTo(-kGetScaleWidth(54));
}];
[self.mewTitleView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.trailing.equalTo(self.contentView).inset(kGetScaleWidth(8));
make.height.mas_equalTo(kGetScaleWidth(20));
make.bottom.mas_equalTo(-kGetScaleWidth(30));
}];
[self.mewHotNumView mas_makeConstraints:^(MASConstraintMaker *make) {
make.trailing.mas_equalTo(-kGetScaleWidth(10));
make.height.mas_equalTo(kGetScaleWidth(14));
make.bottom.mas_equalTo(-kGetScaleWidth(8));
}];
[self.mewHotImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.height.mas_equalTo(kGetScaleWidth(12));
make.trailing.equalTo(self.mewHotNumView.mas_leading).mas_offset(-kGetScaleWidth(1));
make.centerY.equalTo(self.mewHotNumView);
}];
}
#pragma mark - 懒加载
- (FLAnimatedImageView *)mewHeatGifView{
if(!_mewHeatGifView){
_mewHeatGifView = [FLAnimatedImageView new];
NSData *localData = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"mew_main_home_heat.gif" ofType:nil]];
FLAnimatedImage *animatedImage = [FLAnimatedImage animatedImageWithGIFData:localData];
_mewHeatGifView.animatedImage = animatedImage;
}
return _mewHeatGifView;
}
- (NetImageView *)mewBgImageView{
if(!_mewBgImageView){
NetImageConfig *config = [[NetImageConfig alloc]init];
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_mewBgImageView = [[NetImageView alloc]initWithConfig:config];
_mewBgImageView.layer.cornerRadius = kGetScaleWidth(12);
_mewBgImageView.layer.masksToBounds = YES;
}
return _mewBgImageView;
}
- (UIImageView *)mewMaskView{
if(!_mewMaskView){
_mewMaskView = [UIImageView new];
_mewMaskView.image = kImage(@"mew_main_home_party_cell_mask");
}
return _mewMaskView;
}
- (NetImageView *)mewTagView{
if(!_mewTagView){
_mewTagView = [[NetImageView alloc]init];
}
return _mewTagView;
}
- (UILabel *)mewTitleView{
if(!_mewTitleView){
_mewTitleView = [UILabel labelInitWithText:@"" font:kFontMedium(14) textColor:[UIColor whiteColor]];
}
return _mewTitleView;
}
- (UIImageView *)mewHotImageView{
if(!_mewHotImageView){
_mewHotImageView = [UIImageView new];
_mewHotImageView.image = kImage(@"mew_main_home_party_cell_hot");
}
return _mewHotImageView;
}
- (UILabel *)mewHotNumView{
if(!_mewHotNumView){
_mewHotNumView = [UILabel labelInitWithText:@"0" font:kFontBold(11) textColor:[UIColor whiteColor]];
}
return _mewHotNumView;
}
- (UIImageView *)mewPKImageView{
if(!_mewPKImageView){
_mewPKImageView = [UIImageView new];
_mewPKImageView.image = kImage(@"mew_main_home_party_cell_pk");
}
return _mewPKImageView;
}
- (NetImageView *)mewTopOneView{
if(!_mewTopOneView){
_mewTopOneView = [NetImageView new];
}
return _mewTopOneView;
}
@end