219 lines
8.4 KiB
Objective-C
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
|