Files
featherVoice/QXLive/Mine(音域)/View/礼物墙/QXMineGiftWallCell.m
2025-11-06 13:04:04 +08:00

107 lines
3.9 KiB
Objective-C

//
// QXMineGiftWallCell.m
// QXLive
//
// Created by 启星 on 2025/11/5.
//
#import "QXMineGiftWallCell.h"
#import <CoreImage/CoreImage.h>
@implementation QXMineGiftWallCell
-(void)setIsLight:(BOOL)isLight{
_isLight = isLight;
self.bgImageView.image = [UIImage imageNamed:isLight?@"user_giftwall_light":@"user_giftwall_gray"];
// if (isLight) {
// self.userCountLabel.hidden = NO;
// }else{
// self.userCountLabel.hidden = YES;
// self.userImageView1.hidden = YES;
// self.userImageView2.hidden = YES;
// self.userImageView3.hidden = YES;
// }
}
- (UIImage *)convertImageToGrayWithCoreImage:(UIImage *)inputImage {
CIImage *ciImage = [[CIImage alloc] initWithImage:inputImage];
// 使用黑白滤镜
CIFilter *grayFilter = [CIFilter filterWithName:@"CIColorControls"];
[grayFilter setValue:ciImage forKey:kCIInputImageKey];
[grayFilter setValue:@(0.0) forKey:kCIInputSaturationKey]; // 饱和度设为0即为灰色
CIImage *outputImage = [grayFilter valueForKey:kCIOutputImageKey];
CIContext *context = [CIContext contextWithOptions:nil];
CGImageRef cgImage = [context createCGImage:outputImage fromRect:[outputImage extent]];
UIImage *grayImage = [UIImage imageWithCGImage:cgImage];
CGImageRelease(cgImage);
return grayImage;
}
-(void)setModel:(QXUserGiftWallModel *)model{
_model = model;
self.countLabel.text = [NSString stringWithFormat:@"共计%@个",model.total_count];
[self.giftImageView sd_setImageWithURL:[NSURL URLWithString:model.base_image] placeholderImage:nil completed:^(UIImage * _Nullable image, NSError * _Nullable error, SDImageCacheType cacheType, NSURL * _Nullable imageURL) {
if (!self.isLight) {
image = [self convertImageToGrayWithCoreImage:image];
}
self.giftImageView.image = image;
}];
self.nameLabel.text = model.gift_name;
[self.giftCoinBtn setTitle:[NSString stringWithFormat:@" %@",model.gift_price] forState:(UIControlStateNormal)];
self.userCountLabel.text = [NSString stringWithFormat:@"等%@人",model.top_users_count];
if (model.top_users.count > 0) {
self.countLabel.hidden = NO;
self.userCountLabel.hidden = NO;
QXUserHomeModel *md1;
QXUserHomeModel *md2;
QXUserHomeModel *md3;
if (model.top_users.count >= 3){
self.userImageView1.hidden = NO;
self.userImageView2.hidden = NO;
self.userImageView3.hidden = NO;
md1 = model.top_users[0];
md2 = model.top_users[1];
md3 = model.top_users[2];
[self.userImageView1 sd_setImageWithURL:[NSURL URLWithString:md1.avatar]];
[self.userImageView2 sd_setImageWithURL:[NSURL URLWithString:md2.avatar]];
[self.userImageView3 sd_setImageWithURL:[NSURL URLWithString:md3.avatar]];
return;
}else if (model.top_users.count == 2){
self.userImageView1.hidden = NO;
self.userImageView2.hidden = NO;
self.userImageView3.hidden = YES;
md1 = model.top_users[0];
md2 = model.top_users[1];
[self.userImageView1 sd_setImageWithURL:[NSURL URLWithString:md1.avatar]];
[self.userImageView2 sd_setImageWithURL:[NSURL URLWithString:md2.avatar]];
return;
}else{
self.userImageView1.hidden = NO;
self.userImageView2.hidden = YES;
self.userImageView3.hidden = YES;
md1 = model.top_users[0];
[self.userImageView1 sd_setImageWithURL:[NSURL URLWithString:md1.avatar]];
}
}else{
self.countLabel.hidden = YES;
self.userCountLabel.hidden = YES;
self.userImageView1.hidden = YES;
self.userImageView2.hidden = YES;
self.userImageView3.hidden = YES;
}
}
- (void)awakeFromNib {
[super awakeFromNib];
// Initialization code
}
@end