This commit is contained in:
启星
2025-11-21 16:17:05 +08:00
parent 7ac937ddbf
commit 8913ea6f48
283 changed files with 8474 additions and 800 deletions

View File

@@ -42,15 +42,25 @@ NS_ASSUME_NONNULL_BEGIN
/// 是否展示离线状态 需求暂定二卡八不展示离线状态
@property (nonatomic,assign)BOOL noOffLine;
//@property (nonatomic,strong)QXRoomOwnerModel *userModel ;
@property (nonatomic,assign)NSString *tagViewBgColor;
@property (nonatomic,assign)CGFloat nameToHeaderSpace;
@property (nonatomic,assign)CGFloat charmToNameSpace;
@property (nonatomic,assign)CGFloat nameFontSize;
/// name是否超出显示
@property (nonatomic,assign)BOOL nameBeyound;
-(void)updateUserCharm:(NSString*)charm;
- (void)startAudioAnimation ;
/// 暂停麦位动画
- (void)stopAudioAnimation ;
/// 隐藏魅力
-(void)hideCharm;
/// 隐藏名称
-(void)hideName;
-(void)destroyViews;

View File

@@ -282,16 +282,21 @@
-(void)setTagString:(NSString *)tagString{
_tagString = tagString;
self.tagLabel.hidden = NO;
self.numberLabel.hidden = YES;
self.tagLabel.text = tagString;
[self.tagLabel sizeToFit];
[self.tagLabel mas_remakeConstraints:^(MASConstraintMaker *make) {
make.centerX.equalTo(self.noUserImageView);
make.top.equalTo(self.noUserImageView.mas_bottom).offset(-8);
make.height.mas_equalTo(ScaleWidth(13));
make.width.mas_equalTo(self.tagLabel.width+16);
}];
if ([tagString isExist]) {
self.tagLabel.hidden = NO;
self.numberLabel.hidden = YES;
self.tagLabel.text = tagString;
[self.tagLabel sizeToFit];
[self.tagLabel mas_remakeConstraints:^(MASConstraintMaker *make) {
make.centerX.equalTo(self.noUserImageView);
make.top.equalTo(self.noUserImageView.mas_bottom).offset(-8);
make.height.mas_equalTo(ScaleWidth(13));
make.width.mas_equalTo(self.tagLabel.width+16);
}];
}else{
self.tagLabel.hidden = YES;
}
}
-(void)setType:(QXRoomSeatContentViewType)type{
_type = type;
@@ -448,12 +453,56 @@
self.lockImageView.hidden = YES;
}
}
-(void)hideName{
self.numberLabel.hidden = YES;
self.nameLabel.hidden = YES;
}
-(void)setIsAutionSeat:(BOOL)isAutionSeat{
_isAutionSeat = isAutionSeat;
self.noUserImageView.image = [UIImage imageNamed:@"room_seat_auction_icon"];
self.charmBgView.hidden = YES;
}
-(void)setTagViewBgColor:(NSString *)tagViewBgColor{
_tagViewBgColor = tagViewBgColor;
self.tagLabel.backgroundColor = [UIColor colorWithHexString:tagViewBgColor];
}
-(void)setNameToHeaderSpace:(CGFloat)nameToHeaderSpace{
_nameToHeaderSpace = nameToHeaderSpace;
[self.nameLabel mas_updateConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.noUserImageView.mas_bottom).offset(nameToHeaderSpace);
}];
}
-(void)setCharmToNameSpace:(CGFloat)charmToNameSpace{
_charmToNameSpace = charmToNameSpace;
[self.charmBgView mas_updateConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.nameLabel.mas_bottom).offset(charmToNameSpace);
}];
}
-(void)setNameFontSize:(CGFloat)nameFontSize{
self.nameLabel.font = [UIFont systemFontOfSize:nameFontSize];
}
-(void)setNameBeyound:(BOOL)nameBeyound{
_nameBeyound = nameBeyound;
if (nameBeyound) {
[self.nameLabel mas_remakeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.noUserImageView.mas_bottom).offset(self.nameToHeaderSpace);
make.centerX.equalTo(self.noUserImageView);
make.height.mas_equalTo(18);
}];
}else{
[self.nameLabel mas_remakeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.noUserImageView.mas_bottom).offset(5);
make.height.mas_equalTo(18);
make.left.right.equalTo(self);
}];
}
}
-(void)setNumberString:(NSString *)numberString{
self.numberLabel.text = numberString;
}

View File

@@ -0,0 +1,65 @@
//
// QXRoomSeatTypeSingerView.h
// QXLive
//
// Created by 启星 on 2025/11/12.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface QXRoomSeatTypeSingerView : UIView
@property (nonatomic,weak)id<QXRoomSeatDelegate>delegate;
@property (nonatomic,assign)NSInteger myPitNumber;
@property (nonatomic,strong)QXRoomSeatContentView* mySeatView;
@property (nonatomic,strong)QXRoomModel *roomModel;
/// 上下麦
-(void)didUpDownSeatWithUser:(QXUserHomeModel *)user isUpSeat:(BOOL)isUpSeat pit_number:(NSInteger)pit_number isPK:(BOOL)isPK;
/// 清除魅力
-(void)clearCharm;
/// 清除个人魅力
-(void)roomClearUserCharmWithUserId:(NSString *)userId;
/// 设置魅力
-(void)setSeatCharmWithUser:(QXUserHomeModel *)model;
/// 设置多人魅力
-(void)setSeatCharmWithUsers:(NSArray<QXUserHomeModel*>*)users;
/// 设置麦位锁麦状态
-(void)setSeatIsLock:(NSString*)isLock pitNumber:(NSString*)pitNumber;
/// 房间内用户信息发生变化
-(void)roomUserInfoDidChanged:(QXUserHomeModel *)user;
/// 房间内换麦
-(void)roomSeatExchangedWithFromPitNumber:(NSInteger)fromPitNumber toPitNumber:(NSInteger)toPitNumber userInfo:(QXUserHomeModel*)userInfo isPK:(BOOL)isPK;
/// 点唱房当前歌曲信息发生变化
-(void)singerSongCurrentSongInfoDidChanged:(QXUserSongListModel*)model;
/// 点唱房下一首歌信息发生变化
-(void)singerSongNextSongInfoDidChanged:(QXUserSongListModel*)model;
/// 已点歌曲数量发生变化
-(void)singerSongCountDidChanged:(NSString*)count;
-(void)stopHWDMP4;
-(void)playHWDMP4;
-(void)destroyViews;
@end
@interface QXRoomSeatTypeSingerCompereView : UIView
@property (nonatomic,strong)UIImageView *bgImageView;
@property (nonatomic,strong)UIButton *contentViewNoBodyBtn;
@property (nonatomic,strong)QXRoomSeatContentView *contentView;
@property (nonatomic,strong)UIImageView *iconImageView;
@property (nonatomic,strong)UIImageView *nextHeaderImageView;
@property (nonatomic,strong)UILabel *nextTitleLabel;
@property (nonatomic,strong)UILabel *nextNameLabel;
@property (nonatomic,strong)QXRoomPitModel *model;
/// 是否为主持
@property (nonatomic,assign)BOOL isCompere;
@property (nonatomic,copy)void(^upSeatBlock)(void);
-(void)destroyViews;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,757 @@
//
// QXRoomSeatTypeSingerView.m
// QXLive
//
// Created by on 2025/11/12.
//
#import "QXRoomSeatTypeSingerView.h"
#import "QXRoomSeatContentView.h"
#import "QXRoomSeatSettingView.h"
#import "QXMineNetwork.h"
#import "QXSingerSongListView.h"
@interface QXRoomSeatTypeSingerView()<QXRoomSeatDelegate>
@property (nonatomic,strong)QXRoomSeatSettingView *settingView;
@property (nonatomic,strong)QXRoomSeatTypeSingerCompereView *compereView;
@property (nonatomic,strong)QXRoomSeatTypeSingerCompereView *nextView;
@property (nonatomic,strong)UIView *singerContentView;
@property (nonatomic,strong)UIImageView *singerBgImageView;
@property (nonatomic,strong)QXRoomSeatContentView *bossView;
@property (nonatomic,strong)QXRoomSeatContentView *singerView;
@property (nonatomic,strong)UIButton *nextBtn;
@property (nonatomic,strong)UIButton *songBtn;
@property (nonatomic,strong)UIImageView *songInfoBgImageView;
@property (nonatomic,strong)UILabel *songInfoLabel;
@property (nonatomic,strong)NSMutableArray* seatArray;
@property (nonatomic,strong)QXSingerSongListView *songListView;
@end
@implementation QXRoomSeatTypeSingerView
- (instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[self initSubviews];
}
return self;
}
-(void)initSubviews{
self.singerContentView = [[UIView alloc] init];
[self addSubview:self.singerContentView];
[self.singerContentView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self);
make.width.mas_equalTo(ScaleWidth(253));
make.height.mas_equalTo(ScaleWidth(164)+20);
make.centerX.equalTo(self);
}];
self.compereView = [[QXRoomSeatTypeSingerCompereView alloc] initWithFrame:CGRectMake(0, 28, 98, 78)];
self.compereView.contentView.delegate = self;
self.compereView.contentView.number = 9;
self.compereView.isCompere = YES;
MJWeakSelf
self.compereView.upSeatBlock = ^{
[weakSelf upseatCompere];
};
[self addSubview:self.compereView];
self.nextView = [[QXRoomSeatTypeSingerCompereView alloc] initWithFrame:CGRectMake(SCREEN_WIDTH-98, 28, 98, 78)];
self.nextView.isCompere = NO;
self.nextView.hidden = YES;
[self.nextView addTapBlock:^(id _Nonnull obj) {
if (weakSelf.delegate && [weakSelf.delegate respondsToSelector:@selector(didClickUserHeaderWithPitModel:userModel:isPkRoom:pkRoomId:isNoTakeOff:)]) {
[weakSelf.delegate didClickUserHeaderWithPitModel:weakSelf.nextView.model userModel:nil isPkRoom:NO pkRoomId:@"" isNoTakeOff:NO];
}
}];
[self addSubview:self.nextView];
self.singerBgImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"room_type_singer_singer_bg"]];
[self.singerContentView addSubview:self.singerBgImageView];
[self.singerBgImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(10);
make.left.right.equalTo(self.singerContentView);
make.bottom.mas_equalTo(-10);
}];
self.bossView = [[QXRoomSeatContentView alloc] init];
self.bossView.tagString = @"老板";
self.bossView.delegate = self;
self.bossView.number = 10;
self.bossView.tagViewBgColor = @"#04040473";
[self.bossView hideCharm];
[self.bossView hideName];
[self.singerContentView addSubview:self.bossView];
[self.bossView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.singerContentView);
make.width.mas_equalTo(46);
make.height.mas_equalTo(46-10+30);
make.right.mas_equalTo(-ScaleWidth(52));
}];
self.singerView = [[QXRoomSeatContentView alloc] init];
[self.singerView hideCharm];
[self.singerView hideName];
self.singerView.noUserImageView.image = [UIImage imageNamed:@"room_seat_singer"];
self.singerView.delegate = self;
[self.singerContentView addSubview:self.singerView];
[self.singerView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(ScaleWidth(63));
make.height.mas_equalTo(ScaleWidth(63));
make.centerX.centerY.equalTo(self.singerContentView);
}];
self.nextBtn = [[UIButton alloc] init];
[self.nextBtn setBackgroundImage:[UIImage imageNamed:@"room_type_singer_next_btn"] forState:(UIControlStateNormal)];
self.nextBtn.hidden = YES;
[self.singerContentView addSubview:self.nextBtn];
[self.nextBtn addTarget:self action:@selector(nextAction) forControlEvents:(UIControlEventTouchUpInside)];
[self.nextBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.singerContentView);
make.bottom.mas_equalTo(-15);
make.width.mas_equalTo(ScaleWidth(80));
make.height.mas_equalTo(ScaleWidth(38));
}];
self.songBtn = [[UIButton alloc] init];
[self.songBtn setBackgroundImage:[UIImage imageNamed:@"room_type_singer_song_btn"] forState:(UIControlStateNormal)];
[self.singerContentView addSubview:self.songBtn];
[self.songBtn addTarget:self action:@selector(songAction) forControlEvents:(UIControlEventTouchUpInside)];
[self.songBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(self.singerContentView);
make.bottom.mas_equalTo(-15);
make.width.mas_equalTo(ScaleWidth(80));
make.height.mas_equalTo(ScaleWidth(38));
}];
self.songInfoBgImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"singer_song_name_bg"]];
[self.singerContentView addSubview:self.songInfoBgImageView];
[self.songInfoBgImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.equalTo(self.singerContentView);
make.bottom.equalTo(self.singerContentView);
make.height.mas_equalTo(24);
make.width.mas_equalTo(180);
}];
self.songInfoLabel = [[UILabel alloc] init];
self.songInfoLabel.font = [UIFont boldSystemFontOfSize:14];
self.songInfoLabel.textColor = RGB16(0xFFE100);
self.songInfoLabel.text = @"暂无歌曲";
self.songInfoLabel.textAlignment = NSTextAlignmentCenter;
[self.singerContentView addSubview:self.songInfoLabel];
[self.songInfoLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.equalTo(self.singerContentView);
make.bottom.equalTo(self.singerContentView);
make.height.mas_equalTo(24);
}];
NSInteger lineItemCount = 4;
CGFloat leftMargin = 20;
CGFloat topSpace = 0;
CGFloat seatWidth = ScaleWidth(60);
CGFloat seatHeight = ScaleWidth(60-10)+51;
CGFloat itemSpace = (SCREEN_WIDTH-leftMargin*2-seatWidth*lineItemCount)/(lineItemCount-1);
for (int i = 0 ; i < 8 ; i++) {
QXRoomSeatContentView *contentView = [[QXRoomSeatContentView alloc] init];
contentView.number = i+1;
contentView.noOffLine = NO;
contentView.noUserImageView.image = [UIImage imageNamed:@"room_seat_singer"];
contentView.delegate = self;
[self addSubview:contentView];
[contentView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.singerContentView.mas_bottom).offset(1+(seatHeight+topSpace)*(i/4));
make.left.equalTo(self).offset(leftMargin+(seatWidth+itemSpace)*(i%4));
make.size.mas_equalTo(CGSizeMake(seatWidth, seatHeight));
}];
[self.seatArray addObject:contentView];
}
[self.seatArray addObject:self.compereView.contentView];
// [self.seatArray addObject:self.bossView];
}
-(void)nextAction{
[QXMineNetwork requsetSongNextActionWithId:self.roomModel.singer_info.song_info.id successBlock:^(NSDictionary * _Nonnull dict) {
showToast(@"切歌成功");
} failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) {
showToast(msg);
}];
}
-(void)songAction{
NSMutableArray *arr= [NSMutableArray array];
for (QXRoomSeatContentView*seatView in self.seatArray) {
if (seatView.pitModel.user_id.longLongValue > 0) {
if (![seatView.pitModel.user_id isEqualToString:QXGlobal.shareGlobal.loginModel.user_id]) {
[arr addObject:seatView.pitModel];
}
}
}
self.songListView.roomId = self.roomModel.room_info.room_id;
[self.songListView showInView:self.viewController.view pitArray:arr isCompere:self.myPitNumber==9];
}
-(void)configNextBtn{
if (self.myPitNumber == 9 || [self.roomModel.singer_info.song_info.singer_user_id isEqualToString:QXGlobal.shareGlobal.loginModel.user_id]) {
self.nextBtn.hidden = NO;
}else{
self.nextBtn.hidden = YES;
}
}
-(void)configSingerSeat{
for (QXRoomSeatContentView*seatView in self.seatArray) {
if ([seatView.pitModel.user_id isEqualToString:self.roomModel.singer_info.song_info.singer_user_id]) {
seatView.tagString = @"演唱者";
}else{
seatView.tagString = @"";
}
}
}
-(void)setRoomModel:(QXRoomModel *)roomModel{
_roomModel = roomModel;
for (int i = 0 ; i < roomModel.room_info.pit_list.count;i++) {
QXRoomPitModel *pitModel = roomModel.room_info.pit_list[i];
if (i > self.seatArray.count -1) {
break;
}
QXRoomSeatContentView *contentView = self.seatArray[i];
contentView.pitModel = pitModel;
if ([pitModel.pit_number isEqualToString:@"9"]) {
if (pitModel.user_id.longLongValue > 0) {
self.compereView.contentView.hidden = NO;
self.compereView.contentViewNoBodyBtn.hidden = YES;
}else{
self.compereView.contentView.hidden = YES;
self.compereView.contentViewNoBodyBtn.hidden = NO;
}
}
}
[self singerSongCurrentSongInfoDidChanged:roomModel.singer_info.song_info];
[self singerSongNextSongInfoDidChanged:roomModel.singer_info.next_song_info];
self.myPitNumber = roomModel.user_info.pit_number.integerValue;
[self configNextBtn];
}
-(void)upseatCompere{
[QXMineNetwork roomUpSeatWithRoomId:self.roomModel.room_info.room_id pit_number:@"9" isUpSeat:YES successBlock:^(NSDictionary * _Nonnull dict) {
} failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) {
showToast(msg);
}];
}
-(void)didClickUserHeaderWithPitModel:(QXRoomPitModel *)pitModel seatView:(QXRoomSeatContentView *)seatView{
NSString *pit_number = [NSString stringWithFormat:@"%ld",seatView.number] ;
QXLOG(@"点击了%ld麦位",seatView.number);
if (seatView.pitModel.user_id.longLongValue > 0) {
if (self.delegate && [self.delegate respondsToSelector:@selector(didClickUserHeaderWithPitModel:userModel:isPkRoom:pkRoomId:isNoTakeOff:)]) {
[self.delegate didClickUserHeaderWithPitModel:seatView.pitModel userModel:nil isPkRoom:NO pkRoomId:@"" isNoTakeOff:NO];
}
}else{
if (seatView.number == 9) {
/// 9
[self upseatCompere];
return;
}else if (seatView.number == 10) {
// if (self.myPitNumber == 9 || self.roomModel.user_info.is_room_owner.intValue == 1 || self.roomModel.user_info.is_management.intValue == 1) {
// if (self.delegate && [self.delegate respondsToSelector:@selector(didHugSeatWithPitNumber:)]) {
// [self.delegate didHugSeatWithPitNumber:@"10"];
// }
// }else{
// showToast(@"请等待主持抱麦");
// }
showToast(@"暂无老板");
return;
}else{
if (self.myPitNumber == 9) {
MJWeakSelf
/// 9
QXRoomPitModel *pitModel = seatView.pitModel;
self.settingView.roomId = self.roomModel.room_info.room_id;
self.settingView.pitModel = pitModel;
self.settingView.setSuccessBlock = ^(QXRoomPitModel * _Nonnull pitModel) {
seatView.pitModel = pitModel;
// if (self.isPKMyRoom || self.isPKOtherRoom) {
// [seatView hideCharm];
// }
};
self.settingView.clickHugBlock = ^(QXRoomPitModel * _Nonnull pitModel) {
// [weakSelf showOnlineListWithPitNumber:pitModel.pit_number];
if (weakSelf.delegate && [weakSelf.delegate respondsToSelector:@selector(didHugSeatWithPitNumber:)]) {
[weakSelf.delegate didHugSeatWithPitNumber:pitModel.pit_number];
}
};
[self.settingView showInView:self.viewController.view];
}else{
if (self.roomModel.room_info.room_up_pit_type.intValue == 2) {
///
[QXMineNetwork roomUpSeatWithRoomId:self.roomModel.room_info.room_id pit_number:pit_number isUpSeat:YES successBlock:^(NSDictionary * _Nonnull dict) {
} failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) {
showToast(msg);
}];
}else{
//
if (self.myPitNumber == 9 || self.roomModel.user_info.is_room_owner.intValue == 1 || self.roomModel.user_info.is_management.intValue == 1 || self.roomModel.user_info.is_host.intValue == 1) {
MJWeakSelf
/// 9
QXRoomPitModel *pitModel = seatView.pitModel;
self.settingView.roomId = self.roomModel.room_info.room_id;
self.settingView.pitModel = pitModel;
self.settingView.setSuccessBlock = ^(QXRoomPitModel * _Nonnull pitModel) {
seatView.pitModel = pitModel;
// if (self.isPKMyRoom || self.isPKOtherRoom) {
// [seatView hideCharm];
// }
};
self.settingView.clickHugBlock = ^(QXRoomPitModel * _Nonnull pitModel) {
// [weakSelf showOnlineListWithPitNumber:pitModel.pit_number];
if (weakSelf.delegate && [weakSelf.delegate respondsToSelector:@selector(didHugSeatWithPitNumber:)]) {
[weakSelf.delegate didHugSeatWithPitNumber:pitModel.pit_number];
}
};
[self.settingView showInView:self.viewController.view];
}
}
}
}
}
}
-(void)previewRoomUserCharmListWithUserId:(NSString *)userId{
if (self.delegate && [self.delegate respondsToSelector:@selector(previewRoomUserCharmListWithUserId:)]) {
[self.delegate previewRoomUserCharmListWithUserId:userId];
}
}
-(void)clearCharm{
for (QXRoomSeatContentView *seatView in self.seatArray) {
QXRoomPitModel *model = seatView.pitModel;
model.charm = @"0";
// seatView.pitModel = model;
[seatView updateUserCharm:model.charm];
// if (self.isPKMyRoom || self.isPKOtherRoom) {
// [seatView hideCharm];
// }
}
}
-(void)roomClearUserCharmWithUserId:(NSString *)userId{
for (QXRoomSeatContentView *seatView in self.seatArray) {
QXRoomPitModel *model = seatView.pitModel;
if ([model.user_id isEqualToString:userId]) {
model.charm = @"0";
// seatView.pitModel = model;
[seatView updateUserCharm:model.charm];
break;
}
// if (self.isPKMyRoom || self.isPKOtherRoom) {
// [seatView hideCharm];
// }
}
}
-(void)setSeatCharmWithUser:(QXUserHomeModel *)model{
for (QXRoomSeatContentView *seatView in self.seatArray) {
QXRoomPitModel *md = seatView.pitModel;
if ([model.user_id isEqualToString:md.user_id]) {
// md.charm = model.charm;
// seatView.pitModel = md;
[seatView updateUserCharm:model.charm];
// if (self.isPKMyRoom || self.isPKOtherRoom) {
// [seatView hideCharm];
// }
break;
}
}
}
-(void)setSeatCharmWithUsers:(NSArray<QXUserHomeModel *> *)users{
for (QXUserHomeModel*model in users) {
[self setSeatCharmWithUser:model];
}
}
-(void)roomSeatExchangedWithFromPitNumber:(NSInteger)fromPitNumber toPitNumber:(NSInteger)toPitNumber userInfo:(QXUserHomeModel*)userInfo isPK:(BOOL)isPK{
if (fromPitNumber == 0 || toPitNumber == 0) {
return;
}
QXRoomSeatContentView *fromSeatView = self.seatArray[fromPitNumber-1];
QXRoomSeatContentView *toSeatView = self.seatArray[toPitNumber-1];
QXRoomPitModel *fromPitModel = fromSeatView.pitModel;
QXRoomPitModel *totModel = toSeatView.pitModel;
if (toPitNumber == 9) {
self.compereView.contentView.hidden = NO;
self.compereView.contentViewNoBodyBtn.hidden = YES;
}else{
self.compereView.contentView.hidden = YES;
self.compereView.contentViewNoBodyBtn.hidden = NO;
}
NSString* tmpPitNum = [NSString stringWithFormat:@"%@",fromPitModel.pit_number];
fromPitModel.pit_number = totModel.pit_number;
totModel.pit_number = tmpPitNum;
NSMutableArray*arr = [NSMutableArray arrayWithArray:self.roomModel.room_info.pit_list];
if (toPitNumber <= arr.count) {
[arr exchangeObjectAtIndex:fromPitNumber-1 withObjectAtIndex:toPitNumber-1];
}
self.roomModel.room_info.pit_list = arr;
toSeatView.pitModel = fromPitModel;
fromSeatView.pitModel = totModel;
if ([userInfo.user_id isEqualToString:QXGlobal.shareGlobal.loginModel.user_id]) {
self.myPitNumber = toPitNumber;
}
[self configNextBtn];
[self configSingerSeat];
// ///
// for (UIView *view in self.seatArray) {
// ///
// if ([view isKindOfClass:[QXRoomSeatContentView class]]) {
// QXRoomSeatContentView *seatView = (QXRoomSeatContentView*)view;
// /// idid
// if ([userInfo.user_id isEqualToString:seatView.pitModel.user_id]) {
// ///
// if (seatView.pitModel.pit_number.intValue != toPitNumber) {
// ///
// QXRoomPitModel *model = seatView.pitModel;
// model.user_id = @"0";
// model.avatar = @"";
// model.dress = @"";
// model.sex = @"";
// model.nickname = @"";
// model.user_code = @"";
// model.charm = @"";
// seatView.pitModel = model;
// }
// }
// }
// }
}
-(void)setSeatIsLock:(NSString *)isLock pitNumber:(NSString *)pitNumber{
NSInteger pit_number = pitNumber.integerValue;
QXRoomSeatContentView *contentView = self.seatArray[pit_number-1];
contentView.is_lock = isLock;
}
-(void)roomUserInfoDidChanged:(QXUserHomeModel *)user{
for (QXRoomSeatContentView *seatView in self.seatArray) {
QXRoomPitModel *md = seatView.pitModel;
if ([user.user_id isEqualToString:md.user_id]) {
md.dress = user.dress;
md.nickname = user.nickname;
md.sex = user.sex;
md.avatar = user.avatar;
md.nobility_image = user.nobility_image;
md.nickname_color = user.nickname_color;
md.mic_cycle = user.mic_cycle;
seatView.pitModel = md;
break;
}
}
}
///
-(void)singerSongCurrentSongInfoDidChanged:(QXUserSongListModel*)model{
self.roomModel.singer_info.song_info = model;
QXRoomPitModel *bossPitModel = self.bossView.pitModel;
if (bossPitModel==nil) {
bossPitModel = [[QXRoomPitModel alloc] init];
}
QXRoomPitModel *singerPitModel = self.singerView.pitModel;
if (singerPitModel==nil) {
singerPitModel = [[QXRoomPitModel alloc] init];
}
if (model) {
bossPitModel.nickname = model.boss_nickname;
bossPitModel.avatar = model.boss_avatar;
bossPitModel.mic_cycle = model.boss_mic_cycle;
bossPitModel.user_id = model.boss_user_id;
bossPitModel.dress = model.boss_dress;
singerPitModel.nickname = model.singer_nickname;
singerPitModel.avatar = model.singer_avatar;
singerPitModel.mic_cycle = model.singer_mic_cycle;
singerPitModel.user_id = model.singer_user_id;
singerPitModel.dress = model.singer_dress;
self.songInfoLabel.text = [NSString stringWithFormat:@"演唱歌曲:%@",model.song_name];
}else{
bossPitModel.nickname = @"";
bossPitModel.mic_cycle = @"";
bossPitModel.user_id = @"0";
bossPitModel.avatar = @"";
bossPitModel.dress = @"";
singerPitModel.nickname = @"";
singerPitModel.mic_cycle = @"";
singerPitModel.user_id = @"0";
singerPitModel.avatar = @"";
singerPitModel.dress = @"";
self.songInfoLabel.text = [NSString stringWithFormat:@"暂无歌曲"];
}
self.bossView.pitModel = bossPitModel;
self.singerView.pitModel = singerPitModel;
[self.bossView hideCharm];
[self.bossView hideName];
[self.singerView hideCharm];
[self.singerView hideName];
[self configNextBtn];
[self configSingerSeat];
}
///
-(void)singerSongNextSongInfoDidChanged:(QXUserSongListModel*)model{
self.roomModel.singer_info.next_song_info = model;
QXRoomPitModel *pitModel = self.nextView.model;
if (pitModel==nil) {
pitModel = [[QXRoomPitModel alloc] init];
}
if (model) {
pitModel.nickname = model.singer_nickname;
pitModel.avatar = model.singer_avatar;
pitModel.mic_cycle = model.singer_mic_cycle;
pitModel.user_id = model.singer_user_id;
pitModel.dress = model.singer_dress;
self.nextView.hidden = NO;
}else{
pitModel.nickname = @"";
pitModel.mic_cycle = @"";
pitModel.user_id = @"0";
pitModel.avatar = @"";
pitModel.dress = @"";
self.nextView.hidden = YES;
}
self.nextView.model = pitModel;
}
///
-(void)singerSongCountDidChanged:(NSString*)count{
[self.songListView updateAlreadyCountWithCount:count];
}
-(void)stopHWDMP4{
for (QXRoomSeatContentView *seatView in self.seatArray) {
[seatView stopHWDMP4];
}
}
-(void)playHWDMP4{
for (QXRoomSeatContentView *seatView in self.seatArray) {
[seatView playHWDMP4];
}
}
///
-(void)didUpDownSeatWithUser:(QXUserHomeModel *)user isUpSeat:(BOOL)isUpSeat pit_number:(NSInteger)pit_number isPK:(BOOL)isPK{
if (pit_number > 10) {
return;
}
if (pit_number == 9) {
if (isUpSeat) {
self.compereView.contentView.hidden = NO;
self.compereView.contentViewNoBodyBtn.hidden = YES;
}else{
self.compereView.contentView.hidden = YES;
self.compereView.contentViewNoBodyBtn.hidden = NO;
}
}
QXRoomSeatContentView *contentView = self.seatArray[pit_number-1];
QXRoomPitModel *model = contentView.pitModel;
if (isUpSeat) {
model.user_id = user.user_id;
model.avatar = user.avatar;
model.dress = user.dress;
model.sex = user.sex;
model.nickname = user.nickname;
model.user_code = user.user_code;
model.charm = user.charm;
model.nobility_image = user.nobility_image;
model.nickname_color = user.nickname_color;
model.mic_cycle = user.mic_cycle;
}else{
model.user_id = @"0";
model.avatar = @"";
model.dress = @"";
model.sex = @"";
model.nickname = @"";
model.user_code = @"";
model.charm = @"";
model.nobility_image = @"";
model.nickname_color = @"";
model.mic_cycle = @"";
if (contentView.isSeatSpeaking) {
[contentView stopAudioAnimation];
}
}
if ([user.user_id isEqualToString:[QXGlobal shareGlobal].loginModel.user_id]) {
if (isUpSeat) {
self.myPitNumber = pit_number;
}else{
self.myPitNumber = -1;
}
}
contentView.pitModel = model;
[self configNextBtn];
[self configSingerSeat];
}
-(QXRoomSeatSettingView *)settingView{
if (!_settingView) {
_settingView = [[QXRoomSeatSettingView alloc] init];
}
return _settingView;
}
-(QXSingerSongListView *)songListView{
if (!_songListView) {
_songListView = [[QXSingerSongListView alloc] init];
}
return _songListView;
}
-(void)destroyViews{
[self.compereView destroyViews];
[self.nextView destroyViews];
for (QXRoomSeatContentView *contentView in self.seatArray) {
[contentView destroyViews];
}
}
-(NSMutableArray *)seatArray{
if (!_seatArray) {
_seatArray = [NSMutableArray array];
}
return _seatArray;
}
@end
@implementation QXRoomSeatTypeSingerCompereView
- (instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[self initSubviews];
}
return self;
}
-(void)setIsCompere:(BOOL)isCompere{
_isCompere = isCompere;
self.bgImageView.image = [UIImage imageNamed:isCompere?@"room_type_singer_compere_bg":@"room_type_singer_next_bg"];
self.iconImageView.image = [UIImage imageNamed:isCompere?@"room_type_singer_compere_icon":@"room_type_singer_next_icon"];
// self.contentView.hidden = !isCompere;
self.contentViewNoBodyBtn.hidden = !isCompere;
self.nextHeaderImageView.hidden = isCompere;
self.nextNameLabel.hidden = isCompere;
self.nextTitleLabel.hidden = isCompere;
if (isCompere) {
[self.iconImageView mas_remakeConstraints:^(MASConstraintMaker *make) {
make.right.mas_equalTo(-11);
make.width.mas_equalTo(30);
make.height.mas_equalTo(16);
make.top.equalTo(self);
}];
}else{
[self.iconImageView mas_remakeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(11);
make.width.mas_equalTo(30);
make.height.mas_equalTo(16);
make.top.equalTo(self);
}];
}
}
-(void)setModel:(QXRoomPitModel *)model{
_model = model;
if (self.isCompere) {
self.contentView.pitModel = model;
}else{
[self.nextHeaderImageView sd_setImageWithURL:[NSURL URLWithString:model.avatar]];
self.nextNameLabel.text = model.nickname;
}
}
-(void)upseatAction{
if (self.upSeatBlock) {
self.upSeatBlock();
}
}
-(void)initSubviews{
self.iconImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"room_type_singer_compere_icon"]];
[self addSubview:self.iconImageView];
[self.iconImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.mas_equalTo(-11);
make.width.mas_equalTo(30);
make.height.mas_equalTo(16);
make.top.equalTo(self);
}];
self.bgImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"room_type_singer_compere_bg"]];
[self addSubview:self.bgImageView];
[self.bgImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.bottom.equalTo(self);
make.top.equalTo(self.iconImageView).offset(8);
}];
self.contentViewNoBodyBtn = [[UIButton alloc] init];
[self.contentViewNoBodyBtn setBackgroundImage:[UIImage imageNamed:@"room_seat_icon"] forState:(UIControlStateNormal)];
[self.contentViewNoBodyBtn addTarget:self action:@selector(upseatAction) forControlEvents:(UIControlEventTouchUpInside)];
[self addSubview:self.contentViewNoBodyBtn];
[self.contentViewNoBodyBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(36);
make.height.mas_equalTo(36);
make.centerX.centerY.equalTo(self.bgImageView);
}];
self.contentView = [[QXRoomSeatContentView alloc] init];
self.contentView.nameToHeaderSpace = -5;
self.contentView.charmToNameSpace = 0;
self.contentView.nameBeyound = YES;
self.contentView.hidden = YES;
self.contentView.nameFontSize = 12;
[self addSubview:self.contentView];
[self.contentView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.bgImageView);
make.width.mas_equalTo(46);
make.height.mas_equalTo(46-10+51);
make.centerX.equalTo(self.bgImageView);
}];
self.nextTitleLabel = [[UILabel alloc] init];
self.nextTitleLabel.textColor = RGB16A(0xFFFFFF,0.65);
self.nextTitleLabel.text = @"下一位\n准备";
self.nextTitleLabel.numberOfLines = 2;
self.nextTitleLabel.font = [UIFont systemFontOfSize:11];
[self addSubview:self.nextTitleLabel];
[self.nextTitleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(10);
make.centerY.equalTo(self.bgImageView);
}];
self.nextHeaderImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"room_seat_singer"]];
[self.nextHeaderImageView addRoundedCornersWithRadius:16];
self.nextHeaderImageView.contentMode = UIViewContentModeScaleToFill;
[self addSubview:self.nextHeaderImageView];
[self.nextHeaderImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.mas_equalTo(-15);
make.width.height.mas_equalTo(32);
make.top.equalTo (self.bgImageView).offset(10);
}];
self.nextNameLabel = [[UILabel alloc] init];
self.nextNameLabel.textColor = RGB16(0xEFEAFF);
self.nextNameLabel.font = [UIFont systemFontOfSize:12];
self.nextNameLabel.text = @"暂无";
[self addSubview:self.nextNameLabel];
[self.nextNameLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.nextHeaderImageView.mas_bottom).offset(2);
make.centerX.equalTo(self.nextHeaderImageView);
}];
[self bringSubviewToFront:self.iconImageView];
}
-(void)destroyViews{
[self.contentView destroyViews];
}
@end

View File

@@ -10,6 +10,7 @@
#import "QXRoomModel.h"
#import "QXRoomSeatDelegate.h"
#import "QXRoomFriendRelationModel.h"
#import "QXUserSongListModel.h"
NS_ASSUME_NONNULL_BEGIN
typedef NS_ENUM(NSInteger) {
@@ -26,6 +27,8 @@ typedef NS_ENUM(NSInteger) {
QXRoomSeatViewTypePK,
/// 交友房
QXRoomSeatViewTypeFriend,
/// 点唱
QXRoomSeatViewTypeSinger,
}QXRoomSeatViewType;
@@ -116,6 +119,15 @@ typedef NS_ENUM(NSInteger) {
-(void)friendCabinRoomIsQuit;
/// 私密小屋时间发生延时
-(void)friendCabinRoomTimeDelayWithTime:(NSString*)end_time;
/// 点唱房当前歌曲信息发生变化
-(void)singerSongCurrentSongInfoDidChanged:(QXUserSongListModel*)model;
/// 点唱房下一首歌信息发生变化
-(void)singerSongNextSongInfoDidChanged:(QXUserSongListModel*)model;
/// 已点歌曲数量发生变化
-(void)singerSongCountDidChanged:(NSString*)count;
@end
NS_ASSUME_NONNULL_END

View File

@@ -14,22 +14,27 @@
#import "QXRoomSeatPKView.h"
#import "QXRoomSeatTypeFrientView.h"
#import "QXRoomUserCharmView.h"
#import "QXRoomSeatTypeSingerView.h"
@interface QXRoomSeatView()<QXRoomSeatDelegate>
///
@property (nonatomic,strong)QXRoomSeatTypeNormalView *normalSeatView;
/// K
@property (nonatomic,strong)QXRoomSeatTypeSongView *songView;
///
@property (nonatomic,strong)QXRoomSeatTypeAuctionView *auctionView;
/// 线
@property (nonatomic,strong) QXRoomOnlineUserListView *onlineListView;
///
@property (nonatomic,strong)QXRoomSeatTypeCabinView *cabinView;
/// PK
@property (nonatomic,strong)QXRoomSeatPKView *roomPkView;
///
@property (nonatomic,strong)QXRoomSeatTypeFrientView *roomFriendView;
///
@property (nonatomic,strong)QXRoomSeatTypeSingerView *singerView;
@property (nonatomic,strong)QXRoomUserCharmView *charmListView;
@end
@@ -48,14 +53,25 @@
//
-(void)initNomarlView{
// if (_songView) {
// [_songView removeFromSuperview];
// _songView = nil;
// }
//
if (_singerView) {
_singerView.transform = CGAffineTransformIdentity;
//
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self->_singerView.transform = CGAffineTransformMakeScale(0.01, 0.01);
} completion:^(BOOL finished) {
[self->_singerView destroyViews];
[self->_singerView removeFromSuperview];
self->_singerView = nil;
[self showNormalView];
}];
return;
}
if (_songView) {
// [_normalSeatView removeFromSuperview];
// _normalSeatView = nil;
[[QXAgoraEngine sharedEngine] ktv_EndSing];
_songView.transform = CGAffineTransformIdentity;
//
@@ -70,22 +86,7 @@
[self->_songView destroyViews];
[self->_songView removeFromSuperview];
self->_songView = nil;
[self addSubview:self.normalSeatView];
[self.normalSeatView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
self.normalSeatView.transform = CGAffineTransformMakeScale(0.01, 0.01);
//
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self.normalSeatView.transform = CGAffineTransformIdentity;
} completion:^(BOOL finished) {
}];
[self showNormalView];
}];
return;
}
@@ -109,22 +110,7 @@
[self->_auctionView destroyViews];
[self->_auctionView removeFromSuperview];
self->_auctionView = nil;
[self addSubview:self.normalSeatView];
[self.normalSeatView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
self.normalSeatView.transform = CGAffineTransformMakeScale(0.01, 0.01);
//
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self.normalSeatView.transform = CGAffineTransformIdentity;
} completion:^(BOOL finished) {
}];
[self showNormalView];
}];
return;
}
@@ -142,22 +128,7 @@
[self->_roomPkView destroyViews];
[self->_roomPkView removeFromSuperview];
self->_roomPkView = nil;
[self addSubview:self.normalSeatView];
[self.normalSeatView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
self.normalSeatView.transform = CGAffineTransformMakeScale(0.01, 0.01);
//
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self.normalSeatView.transform = CGAffineTransformIdentity;
} completion:^(BOOL finished) {
}];
[self showNormalView];
}];
return;
}
@@ -175,22 +146,7 @@
[self->_roomFriendView destroyViews];
[self->_roomFriendView removeFromSuperview];
self->_roomFriendView = nil;
[self addSubview:self.normalSeatView];
[self.normalSeatView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
self.normalSeatView.transform = CGAffineTransformMakeScale(0.01, 0.01);
//
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self.normalSeatView.transform = CGAffineTransformIdentity;
} completion:^(BOOL finished) {
}];
[self showNormalView];
}];
return;
}
@@ -199,9 +155,44 @@
make.left.right.top.bottom.equalTo(self);
}];
}
-(void)showNormalView{
[self addSubview:self.normalSeatView];
[self.normalSeatView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
self.normalSeatView.transform = CGAffineTransformMakeScale(0.01, 0.01);
//
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self.normalSeatView.transform = CGAffineTransformIdentity;
} completion:^(BOOL finished) {
}];
}
//
-(void)initAuctionView{
if (_singerView) {
_singerView.transform = CGAffineTransformIdentity;
//
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self->_singerView.transform = CGAffineTransformMakeScale(0.01, 0.01);
} completion:^(BOOL finished) {
[self->_singerView destroyViews];
[self->_singerView removeFromSuperview];
self->_singerView = nil;
[self showAuctionView];
}];
return;
}
if (_normalSeatView) {
// [_normalSeatView removeFromSuperview];
// _normalSeatView = nil;
@@ -218,22 +209,7 @@
[self->_normalSeatView destroyViews];
[self->_normalSeatView removeFromSuperview];
self->_normalSeatView = nil;
[self addSubview:self.auctionView];
[self.auctionView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
self.auctionView.transform = CGAffineTransformMakeScale(0.01, 0.01);
//
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self.auctionView.transform = CGAffineTransformIdentity;
} completion:^(BOOL finished) {
}];
[self showAuctionView];
}];
return;
}
@@ -254,22 +230,7 @@
[self->_songView destroyViews];
[self->_songView removeFromSuperview];
self->_songView = nil;
[self addSubview:self.auctionView];
[self.auctionView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
self.auctionView.transform = CGAffineTransformMakeScale(0.01, 0.01);
//
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self.auctionView.transform = CGAffineTransformIdentity;
} completion:^(BOOL finished) {
}];
[self showAuctionView];
}];
return;
}
@@ -287,22 +248,7 @@
[self->_roomPkView destroyViews];
[self->_roomPkView removeFromSuperview];
self->_roomPkView = nil;
[self addSubview:self.auctionView];
[self.auctionView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
self.auctionView.transform = CGAffineTransformMakeScale(0.01, 0.01);
//
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self.auctionView.transform = CGAffineTransformIdentity;
} completion:^(BOOL finished) {
}];
[self showAuctionView];
}];
return;
}
@@ -321,21 +267,7 @@
[self->_roomFriendView removeFromSuperview];
self->_roomFriendView = nil;
[self addSubview:self.auctionView];
[self.auctionView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
self.auctionView.transform = CGAffineTransformMakeScale(0.01, 0.01);
//
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self.auctionView.transform = CGAffineTransformIdentity;
} completion:^(BOOL finished) {
}];
[self showAuctionView];
}];
return;
}
@@ -344,9 +276,45 @@
make.left.right.top.bottom.equalTo(self);
}];
}
-(void)showAuctionView{
[self addSubview:self.auctionView];
[self.auctionView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
self.auctionView.transform = CGAffineTransformMakeScale(0.01, 0.01);
//
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self.auctionView.transform = CGAffineTransformIdentity;
} completion:^(BOOL finished) {
}];
}
//
//ktv
-(void)initSingView{
if (_singerView) {
_singerView.transform = CGAffineTransformIdentity;
//
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self->_singerView.transform = CGAffineTransformMakeScale(0.01, 0.01);
} completion:^(BOOL finished) {
[self->_singerView destroyViews];
[self->_singerView removeFromSuperview];
self->_singerView = nil;
[self showSongView];
}];
return;
}
if (_normalSeatView) {
// [_normalSeatView removeFromSuperview];
// _normalSeatView = nil;
@@ -363,22 +331,7 @@
[self->_normalSeatView destroyViews];
[self->_normalSeatView removeFromSuperview];
self->_normalSeatView = nil;
[self addSubview:self.songView];
[self.songView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
self.songView.transform = CGAffineTransformMakeScale(0.01, 0.01);
//
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self.songView.transform = CGAffineTransformIdentity;
} completion:^(BOOL finished) {
}];
[self showSongView];
}];
return;
}
@@ -399,55 +352,7 @@
[self->_auctionView destroyViews];
[self->_auctionView removeFromSuperview];
self->_auctionView = nil;
[self addSubview:self.songView];
[self.songView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
self.songView.transform = CGAffineTransformMakeScale(0.01, 0.01);
//
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self.songView.transform = CGAffineTransformIdentity;
} completion:^(BOOL finished) {
}];
}];
return;
}
if (_roomPkView) {
_roomPkView.transform = CGAffineTransformIdentity;
//
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self->_roomPkView.transform = CGAffineTransformMakeScale(0.01, 0.01);
} completion:^(BOOL finished) {
[self->_roomPkView destroyViews];
[self->_roomPkView removeFromSuperview];
self->_roomPkView = nil;
[self addSubview:self.songView];
[self.songView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
self.songView.transform = CGAffineTransformMakeScale(0.01, 0.01);
//
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self.songView.transform = CGAffineTransformIdentity;
} completion:^(BOOL finished) {
}];
[self showSongView];
}];
return;
}
@@ -465,22 +370,7 @@
[self->_roomFriendView destroyViews];
[self->_roomFriendView removeFromSuperview];
self->_roomFriendView = nil;
[self addSubview:self.songView];
[self.songView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
self.songView.transform = CGAffineTransformMakeScale(0.01, 0.01);
//
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self.songView.transform = CGAffineTransformIdentity;
} completion:^(BOOL finished) {
}];
[self showSongView];
}];
return;
}
@@ -489,6 +379,24 @@
make.left.right.top.bottom.equalTo(self);
}];
}
-(void)showSongView{
[self addSubview:self.songView];
[self.songView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
self.songView.transform = CGAffineTransformMakeScale(0.01, 0.01);
//
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self.songView.transform = CGAffineTransformIdentity;
} completion:^(BOOL finished) {
}];
}
- (void)initRoomPKView{
if (_normalSeatView) {
@@ -526,11 +434,14 @@
}];
return;
}
if (_songView) {
// [_normalSeatView removeFromSuperview];
// _normalSeatView = nil;
[[QXAgoraEngine sharedEngine] ktv_EndSing];
_songView.transform = CGAffineTransformIdentity;
[self addSubview:self.roomPkView];
[self.roomPkView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
}
-(void)initRoomFriendView{
if (_singerView) {
_singerView.transform = CGAffineTransformIdentity;
//
[UIView animateWithDuration:0.5
delay:0
@@ -538,39 +449,17 @@
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self->_songView.transform = CGAffineTransformMakeScale(0.01, 0.01);
self->_singerView.transform = CGAffineTransformMakeScale(0.01, 0.01);
} completion:^(BOOL finished) {
[self->_songView destroyViews];
[self->_songView removeFromSuperview];
self->_songView = nil;
[self addSubview:self.roomPkView];
[self.roomPkView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
self.roomPkView.transform = CGAffineTransformMakeScale(0.01, 0.01);
//
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self.roomPkView.transform = CGAffineTransformIdentity;
} completion:^(BOOL finished) {
}];
[self->_singerView destroyViews];
[self->_singerView removeFromSuperview];
self->_singerView = nil;
[self showRoomFriendView];
}];
return;
}
[self addSubview:self.roomPkView];
[self.roomPkView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
}
-(void)initRoomFriendView{
if (_normalSeatView) {
// [_normalSeatView removeFromSuperview];
// _normalSeatView = nil;
_normalSeatView.transform = CGAffineTransformIdentity;
//
[UIView animateWithDuration:0.5
@@ -584,22 +473,7 @@
[self->_normalSeatView destroyViews];
[self->_normalSeatView removeFromSuperview];
self->_normalSeatView = nil;
[self addSubview:self.roomFriendView];
[self.roomFriendView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
self.roomFriendView.transform = CGAffineTransformMakeScale(0.01, 0.01);
//
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self.roomFriendView.transform = CGAffineTransformIdentity;
} completion:^(BOOL finished) {
}];
[self showRoomFriendView];
}];
return;
}
@@ -620,22 +494,7 @@
[self->_auctionView destroyViews];
[self->_auctionView removeFromSuperview];
self->_auctionView = nil;
[self addSubview:self.roomFriendView];
[self.roomFriendView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
self.roomFriendView.transform = CGAffineTransformMakeScale(0.01, 0.01);
//
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self.roomFriendView.transform = CGAffineTransformIdentity;
} completion:^(BOOL finished) {
}];
[self showRoomFriendView];
}];
return;
}
@@ -654,22 +513,7 @@
[self->_songView destroyViews];
[self->_songView removeFromSuperview];
self->_songView = nil;
[self addSubview:self.roomFriendView];
[self.roomFriendView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
self.roomFriendView.transform = CGAffineTransformMakeScale(0.01, 0.01);
//
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self.roomFriendView.transform = CGAffineTransformIdentity;
} completion:^(BOOL finished) {
}];
[self showRoomFriendView];
}];
return;
}
@@ -678,6 +522,127 @@
make.left.right.top.bottom.equalTo(self);
}];
}
-(void)showRoomFriendView{
[self addSubview:self.roomFriendView];
[self.roomFriendView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
self.roomFriendView.transform = CGAffineTransformMakeScale(0.01, 0.01);
//
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self.roomFriendView.transform = CGAffineTransformIdentity;
} completion:^(BOOL finished) {
}];
}
-(void)initSignerView{
if (_roomFriendView) {
_roomFriendView.transform = CGAffineTransformIdentity;
//
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self->_roomFriendView.transform = CGAffineTransformMakeScale(0.01, 0.01);
} completion:^(BOOL finished) {
[self->_roomFriendView destroyViews];
[self->_roomFriendView removeFromSuperview];
self->_roomFriendView = nil;
[self showSinggerView];
}];
return;
}
if (_normalSeatView) {
// [_normalSeatView removeFromSuperview];
// _normalSeatView = nil;
_normalSeatView.transform = CGAffineTransformIdentity;
//
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self->_normalSeatView.transform = CGAffineTransformMakeScale(0.01, 0.01);
} completion:^(BOOL finished) {
[self->_normalSeatView destroyViews];
[self->_normalSeatView removeFromSuperview];
self->_normalSeatView = nil;
[self showSinggerView];
}];
return;
}
if (_auctionView) {
_auctionView.transform = CGAffineTransformIdentity;
//
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self->_auctionView.transform = CGAffineTransformMakeScale(0.01, 0.01);
} completion:^(BOOL finished) {
if (self->_auctionView.auctionInfoView != nil) {
[self->_auctionView.auctionInfoView hide];
}
[self->_auctionView destroyViews];
[self->_auctionView removeFromSuperview];
self->_auctionView = nil;
[self showSinggerView];
}];
return;
}
if (_songView) {
[[QXAgoraEngine sharedEngine] ktv_EndSing];
_songView.transform = CGAffineTransformIdentity;
//
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self->_songView.transform = CGAffineTransformMakeScale(0.01, 0.01);
} completion:^(BOOL finished) {
[self->_songView destroyViews];
[self->_songView removeFromSuperview];
self->_songView = nil;
[self showSinggerView];
}];
return;
}
[self addSubview:self.singerView];
[self.singerView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
}
-(void)showSinggerView{
[self addSubview:self.singerView];
[self.singerView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
self.singerView.transform = CGAffineTransformMakeScale(0.01, 0.01);
//
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self.singerView.transform = CGAffineTransformIdentity;
} completion:^(BOOL finished) {
}];
}
- (void)initCabinView{
self.cabinView = [[QXRoomSeatTypeCabinView alloc] init];
@@ -708,6 +673,9 @@
case QXRoomSeatViewTypeFriend:
self.roomFriendView.myPitNumber = myPitNumber;
break;
case QXRoomSeatViewTypeSinger:
self.singerView.myPitNumber = myPitNumber;
break;
default:
break;
}
@@ -747,6 +715,10 @@
[self initRoomFriendView];
}
break;
case QXRoomSeatViewTypeSinger:{
[self initSignerView];
}
break;
default:
break;
}
@@ -807,6 +779,9 @@
case QXRoomSeatViewTypeFriend:
self.roomFriendView.roomModel = roomModel;
break;
case QXRoomSeatViewTypeSinger:
self.singerView.roomModel = roomModel;
break;
default:
break;
}
@@ -886,6 +861,9 @@
case QXRoomSeatViewTypeFriend:
[self.roomFriendView clearCharm];
break;
case QXRoomSeatViewTypeSinger:
[self.singerView clearCharm];
break;
default:
break;
}
@@ -913,6 +891,9 @@
case QXRoomSeatViewTypeFriend:
[self.roomFriendView roomClearUserCharmWithUserId:userId];
break;
case QXRoomSeatViewTypeSinger:
[self.singerView roomClearUserCharmWithUserId:userId];
break;
default:
break;
}
@@ -939,6 +920,9 @@
case QXRoomSeatViewTypeFriend:
[self.roomFriendView roomSeatExchangedWithFromPitNumber:fromPitNumber toPitNumber:toPitNumber userInfo:userInfo isPK:isPK];
break;
case QXRoomSeatViewTypeSinger:
[self.singerView roomSeatExchangedWithFromPitNumber:fromPitNumber toPitNumber:toPitNumber userInfo:userInfo isPK:isPK];
break;
default:
break;
}
@@ -966,6 +950,9 @@
case QXRoomSeatViewTypeFriend:
[self.roomFriendView setSeatCharmWithUser:model];
break;
case QXRoomSeatViewTypeSinger:
[self.singerView setSeatCharmWithUser:model];
break;
default:
break;
}
@@ -994,6 +981,9 @@
case QXRoomSeatViewTypeFriend:
[self.roomFriendView setSeatCharmWithUsers:users];
break;
case QXRoomSeatViewTypeSinger:
[self.singerView setSeatCharmWithUsers:users];
break;
default:
break;
}
@@ -1019,6 +1009,9 @@
case QXRoomSeatViewTypePK:
[self.roomPkView setSeatIsLock:isLock pitNumber:pitNumber];
break;
case QXRoomSeatViewTypeSinger:
[self.singerView setSeatIsLock:isLock pitNumber:pitNumber];
break;
default:
break;
}
@@ -1212,6 +1205,9 @@
case QXRoomSeatViewTypeFriend:
[self.roomFriendView didUpDownSeatWithUser:user isUpSeat:isUpSeat pit_number:pit_number isPK:isPK];
break;
case QXRoomSeatViewTypeSinger:
[self.singerView didUpDownSeatWithUser:user isUpSeat:isUpSeat pit_number:pit_number isPK:isPK];
break;
default:
break;
}
@@ -1260,24 +1256,26 @@
self.onlineListView.roomId = self.roomModel.room_info.room_id;
[self.onlineListView showInView:self.viewController.view];
}
///
-(void)singerSongCurrentSongInfoDidChanged:(QXUserSongListModel*)model{
if (_singerView) {
[self.singerView singerSongCurrentSongInfoDidChanged:model];
}
}
///
-(void)singerSongNextSongInfoDidChanged:(QXUserSongListModel*)model{
if (_singerView) {
[self.singerView singerSongNextSongInfoDidChanged:model];
}
}
///
-(void)singerSongCountDidChanged:(NSString*)count{
if (_singerView) {
[self.singerView singerSongCountDidChanged:count];
}
}
-(void)roomUserInfoDidChanged:(QXUserHomeModel *)user{
// if (_normalSeatView) {
// [self.normalSeatView roomUserInfoDidChanged:user];
// return;
// }
// if (_songView) {
// [self.songView roomUserInfoDidChanged:user];
// return;
// }
// if (_auctionView) {
// [self.auctionView roomUserInfoDidChanged:user];
// return;
// }
// if (_roomPkView) {
// [self.roomPkView roomUserInfoDidChanged:user];
// return;
// }
switch (self.type) {
case QXRoomSeatViewTypeNormal:
[self.normalSeatView roomUserInfoDidChanged:user];
@@ -1297,6 +1295,9 @@
case QXRoomSeatViewTypeFriend:
[self.roomFriendView roomUserInfoDidChanged:user];
break;
case QXRoomSeatViewTypeSinger:
[self.singerView roomUserInfoDidChanged:user];
break;
default:
break;
}
@@ -1321,6 +1322,9 @@
case QXRoomSeatViewTypeFriend:
[self.roomFriendView stopHWDMP4];
break;
case QXRoomSeatViewTypeSinger:
[self.singerView stopHWDMP4];
break;
default:
break;
}
@@ -1345,6 +1349,9 @@
case QXRoomSeatViewTypeFriend:
[self.roomFriendView playHWDMP4];
break;
case QXRoomSeatViewTypeSinger:
[self.singerView playHWDMP4];
break;
default:
break;
}
@@ -1373,6 +1380,10 @@
[self.cabinView destroyViews];
_cabinView = nil;
}
if (_singerView) {
[self.singerView destroyViews];
_singerView = nil;
}
}
-(QXRoomOnlineUserListView *)onlineListView{
@@ -1382,7 +1393,13 @@
}
return _onlineListView;
}
-(QXRoomSeatTypeSingerView *)singerView{
if (!_singerView) {
_singerView = [[QXRoomSeatTypeSingerView alloc] init];
_singerView.delegate = self;
}
return _singerView;
}
-(QXRoomSeatTypeAuctionView *)auctionView{
if (!_auctionView) {
_auctionView = [[QXRoomSeatTypeAuctionView alloc] init];