Files
midi_ios/QXLive/Mine(音域)/View/设置/QXBlackListCell.m
2025-09-24 09:14:50 +08:00

308 lines
13 KiB
Objective-C

//
// QXBlackListCell.m
// QXLive
//
// Created by 启星 on 2025/5/12.
//
#import "QXBlackListCell.h"
@interface QXBlackListCell()
@property (nonatomic,strong)NSMutableArray *iconViewArray;
@end
@implementation QXBlackListCell
+(instancetype)cellWithTableView:(UITableView *)tableView{
static NSString *cellId = @"QXBlackListCell";
QXBlackListCell *cell = [tableView dequeueReusableCellWithIdentifier:cellId];
if (!cell) {
cell = [[NSBundle mainBundle] loadNibNamed:cellId owner:nil options:nil].lastObject;
cell.backgroundColor = [UIColor clearColor];
}
return cell;
}
- (IBAction)removeAction:(UIButton*)sender {
switch (self.cellType) {
case QXBlackListCellTypeBlack:{
if (self.delegate && [self.delegate respondsToSelector:@selector(didRemoveSuccess:)]) {
[self.delegate didRemoveSuccess:self.userModel];
}
}
break;
case QXBlackListCellTypeFans:
case QXBlackListCellTypeFocus:{
if (self.delegate && [self.delegate respondsToSelector:@selector(didFocus:userModel:)]) {
[self.delegate didFocus:sender userModel:self.userModel];
}
}
break;
case QXBlackListCellTypeLogin:{
if (self.delegate && [self.delegate respondsToSelector:@selector(didClickLoginWithModel:)]) {
[self.delegate didClickLoginWithModel:self.loginModel];
}
}
break;
case QXBlackListCellTypeHugSeat:{
if (self.delegate && [self.delegate respondsToSelector:@selector(didHugSeatWithModel:isUpSeat:)]) {
[self.delegate didHugSeatWithModel:self.onlineUser isUpSeat:self.isUpSeat];
}
}
break;
default:
break;
}
}
-(void)setIsUpSeat:(BOOL)isUpSeat{
_isUpSeat = isUpSeat;
}
-(void)setLoginModel:(QXLoginModel *)loginModel{
_loginModel = loginModel;
[self.headerImageView sd_setImageWithURL:[NSURL URLWithString:loginModel.avatar]];
self.nameLabel.text = loginModel.nickname;
if (loginModel.sex.intValue == 1) {
self.sexImageView.image = [UIImage imageNamed:@"user_sex_boy"];
self.sexImageView.hidden = NO;
}else if(loginModel.sex.intValue == 2){
self.sexImageView.image = [UIImage imageNamed:@"user_sex_girl"];
self.sexImageView.hidden = NO;
}else{
self.sexImageView.hidden = YES;
}
}
-(void)setUserModel:(QXUserHomeModel *)userModel{
_userModel = userModel;
[self.headerImageView sd_setImageWithURL:[NSURL URLWithString:userModel.avatar]];
self.nameLabel.text = userModel.nickname;
if (userModel.sex.intValue == 1) {
self.sexImageView.image = [UIImage imageNamed:@"user_sex_boy"];
self.sexImageView.hidden = NO;
}else if(userModel.sex.intValue == 2){
self.sexImageView.image = [UIImage imageNamed:@"user_sex_girl"];
self.sexImageView.hidden = NO;
}else{
self.sexImageView.hidden = YES;
}
self.removeBtn.selected = userModel.is_follow==1?YES:NO;
if (userModel.icon.count > 0) {
self.iconBgView.hidden = NO;
for (int i = 0;i < self.userModel.icon.count;i++) {
if (i < 3) {
UIImageView *iconImageView = self.iconViewArray[i];
iconImageView.hidden = NO;
[iconImageView sd_setImageWithURL:[NSURL URLWithString:self.userModel.icon[i]]];
}
}
}else{
self.iconBgView.hidden = YES;
}
}
-(void)setOnlineUser:(QXRoomUserInfoModel *)onlineUser{
_onlineUser = onlineUser;
[self.headerImageView sd_setImageWithURL:[NSURL URLWithString:onlineUser.avatar]];
self.nameLabel.text = onlineUser.nickname;
if (onlineUser.sex.intValue == 1) {
self.sexImageView.image = [UIImage imageNamed:@"user_sex_boy"];
self.sexImageView.hidden = NO;
}else if(onlineUser.sex.intValue == 2){
self.sexImageView.image = [UIImage imageNamed:@"user_sex_girl"];
self.sexImageView.hidden = NO;
}else{
self.sexImageView.hidden = YES;
}
if (onlineUser.role.intValue == 1) {
self.roleLabel.text = QXText(@"房主");
}else if(onlineUser.role.intValue == 2) {
self.roleLabel.text = QXText(@"管理");
}else if(onlineUser.role.intValue == 3) {
self.roleLabel.text = QXText(@"主持");
}else{
self.roleLabel.text = QXText(@"观众");
}
if (onlineUser.pit_number.intValue > 0) {
[self.removeBtn setTitleColor:RGB16(0x666666) forState:(UIControlStateNormal)];
[self.removeBtn setBackgroundImage:nil forState:(UIControlStateNormal)];
self.removeBtn.titleLabel.font = [UIFont systemFontOfSize:14];
self.removeBtn.backgroundColor = [UIColor clearColor];
[self.removeBtn setTitle:[NSString stringWithFormat:@"%@号麦",onlineUser.pit_number] forState:(UIControlStateNormal)];
if (onlineUser.pit_number.intValue == 10) {
[self.removeBtn setTitle:[NSString stringWithFormat:@"%@麦",QXText(@"嘉宾")] forState:(UIControlStateNormal)];
}
if (onlineUser.pit_number.intValue == 9) {
[self.removeBtn setTitle:[NSString stringWithFormat:@"%@麦",QXText(@"主持")] forState:(UIControlStateNormal)];
}
}else{
if (self.cellType == QXBlackListCellTypeHugSeat) {
[self.removeBtn setTitleColor:QXConfig.themeColor forState:(UIControlStateNormal)];
[self.removeBtn setBackgroundImage:nil forState:(UIControlStateNormal)];
self.removeBtn.titleLabel.font = [UIFont systemFontOfSize:14];
self.removeBtn.backgroundColor = [UIColor clearColor];
[self.removeBtn setTitle:@"抱麦" forState:(UIControlStateNormal)];
}else{
[self.removeBtn setTitle:@"" forState:(UIControlStateNormal)];
}
}
if (onlineUser.icon.count > 0) {
self.iconBgView.hidden = NO;
for (int i = 0;i < self.onlineUser.icon.count;i++) {
if (i < 3) {
UIImageView *iconImageView = self.iconViewArray[i];
iconImageView.hidden = NO;
[iconImageView sd_setImageWithURL:[NSURL URLWithString:self.onlineUser.icon[i]]];
}
}
}else{
self.iconBgView.hidden = YES;
}
}
-(void)setRankModel:(QXRoomOnlineList *)rankModel{
_rankModel = rankModel;
[self.headerImageView sd_setImageWithURL:[NSURL URLWithString:rankModel.avatar]];
self.nameLabel.text = rankModel.nickname;
if (rankModel.sex.intValue == 1) {
self.sexImageView.image = [UIImage imageNamed:@"user_sex_boy"];
self.sexImageView.hidden = NO;
}else if(rankModel.sex.intValue == 2){
self.sexImageView.image = [UIImage imageNamed:@"user_sex_girl"];
self.sexImageView.hidden = NO;
}else{
self.sexImageView.hidden = YES;
}
if (rankModel.icon.count > 0) {
self.iconBgView.hidden = NO;
for (int i = 0;i < rankModel.icon.count;i++) {
if (i < 3) {
UIImageView *iconImageView = self.iconViewArray[i];
iconImageView.hidden = NO;
[iconImageView sd_setImageWithURL:[NSURL URLWithString:rankModel.icon[i]]];
}
}
}else{
self.iconBgView.hidden = YES;
}
[self.removeBtn setTitle:[NSString stringWithFormat:@" %@",rankModel.total?rankModel.total:rankModel.gift_prices] forState:(UIControlStateNormal)];
}
-(void)setCellType:(QXBlackListCellType)cellType{
_cellType = cellType;
switch (cellType) {
case QXBlackListCellTypeBlack:{
[self.removeBtn setTitle:QXText(@"移除") forState:(UIControlStateNormal)];
UIImage *norImage = [UIImage imageWithColor:RGB16(0x333333)];
[self.removeBtn setBackgroundImage:norImage forState:(UIControlStateNormal)];
}
break;
case QXBlackListCellTypeFans:{
[self.removeBtn setTitle:QXText(@"回关") forState:(UIControlStateNormal)];
[self.removeBtn setTitleColor:QXConfig.btnTextColor forState:(UIControlStateNormal)];
[self.removeBtn setTitle:QXText(@"已互关") forState:(UIControlStateSelected)];
UIImage *norImage = [UIImage imageWithColor:QXConfig.themeColor];
[self.removeBtn setBackgroundImage:norImage forState:(UIControlStateNormal)];
UIImage *selImage = [UIImage imageWithColor:RGB16(0xEFF2F8)];
[self.removeBtn setBackgroundImage:selImage forState:(UIControlStateSelected)];
}
break;
case QXBlackListCellTypeFocus:{
[self.removeBtn setTitle:QXText(@"关注") forState:(UIControlStateNormal)];
[self.removeBtn setTitleColor:QXConfig.btnTextColor forState:(UIControlStateNormal)];
[self.removeBtn setTitle:QXText(@"已关注") forState:(UIControlStateSelected)];
UIImage *norImage = [UIImage imageWithColor:QXConfig.themeColor];
[self.removeBtn setBackgroundImage:norImage forState:(UIControlStateNormal)];
UIImage *selImage = [UIImage imageWithColor:RGB16(0xEFF2F8)];
[self.removeBtn setBackgroundImage:selImage forState:(UIControlStateSelected)];
}
break;
case QXBlackListCellTypeLogin:{
[self.removeBtn setTitle:QXText(@"登录") forState:(UIControlStateNormal)];
UIImage *norImage = [UIImage imageWithColor:QXConfig.themeColor];
[self.removeBtn setBackgroundImage:norImage forState:(UIControlStateNormal)];
}
break;
case QXBlackListCellTypeOnline:{
[self.removeBtn setTitleColor:RGB16(0x666666) forState:(UIControlStateNormal)];
[self.removeBtn setBackgroundImage:nil forState:(UIControlStateNormal)];
self.removeBtn.titleLabel.font = [UIFont systemFontOfSize:14];
self.removeBtn.backgroundColor = [UIColor clearColor];
self.roleLabel.hidden = NO;
}
break;
case QXBlackListCellTypeHugSeat:{
[self.removeBtn setTitleColor:RGB16(0x666666) forState:(UIControlStateNormal)];
[self.removeBtn setBackgroundImage:nil forState:(UIControlStateNormal)];
self.removeBtn.titleLabel.font = [UIFont systemFontOfSize:14];
self.removeBtn.backgroundColor = [UIColor clearColor];
self.roleLabel.hidden = NO;
}
break;
case QXBlackListCellTypeRank:{
self.titleLabel.hidden = NO;
self.headerLeftConstraint.constant = 44;
self.nameLabel.textColor = RGB16(0xffffff);
[self.removeBtn setTitleColor:RGB16(0xffffff) forState:(UIControlStateNormal)];
[self.removeBtn setBackgroundImage:nil forState:(UIControlStateNormal)];
[self.removeBtn setImage:[UIImage imageNamed:@"room_rank_value_icon"] forState:(UIControlStateNormal)];
[self.removeBtn setTitle:@" 0" forState:(UIControlStateNormal)];
self.removeBtn.titleLabel.font = [UIFont systemFontOfSize:14];
self.removeBtn.backgroundColor = [UIColor clearColor];
}
break;
case QXBlackListCellTypeVisit:{
[self.removeBtn setTitle:QXText(@"关注") forState:(UIControlStateNormal)];
[self.removeBtn setTitleColor:QXConfig.btnTextColor forState:(UIControlStateNormal)];
[self.removeBtn setTitle:QXText(@"已关注") forState:(UIControlStateSelected)];
UIImage *norImage = [UIImage imageWithColor:QXConfig.themeColor];
[self.removeBtn setBackgroundImage:norImage forState:(UIControlStateNormal)];
UIImage *selImage = [UIImage imageWithColor:RGB16(0xEFF2F8)];
[self.removeBtn setBackgroundImage:selImage forState:(UIControlStateSelected)];
self.removeBtn.hidden = YES;
}
break;
default:
break;
}
}
- (void)awakeFromNib {
[super awakeFromNib];
// Initialization code
CGFloat iconWidth = UserIconWidth;
CGFloat iconHeight = UserIconHeight;
CGFloat margin = 6;
for (int i = 0; i < 3; i++) {
UIImageView *iconImageView = [[UIImageView alloc] init];
iconImageView.hidden = YES;
[self.iconBgView addSubview:iconImageView];
[iconImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(i*(iconWidth+margin));
make.width.mas_equalTo(iconWidth);
make.height.mas_equalTo(iconHeight);
make.centerY.equalTo(self.iconBgView);
}];
[self.iconViewArray addObject:iconImageView];
}
}
-(NSMutableArray *)iconViewArray{
if (!_iconViewArray) {
_iconViewArray = [NSMutableArray array];
}
return _iconViewArray;
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
@end