提交
This commit is contained in:
@@ -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;
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
65
QXLive/Room(房间)/View/麦位视图/QXRoomSeatTypeSingerView.h
Normal file
65
QXLive/Room(房间)/View/麦位视图/QXRoomSeatTypeSingerView.h
Normal 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
|
||||
757
QXLive/Room(房间)/View/麦位视图/QXRoomSeatTypeSingerView.m
Normal file
757
QXLive/Room(房间)/View/麦位视图/QXRoomSeatTypeSingerView.m
Normal 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;
|
||||
// /// 如果换麦的用户id等于视图上当前绑定的用户id
|
||||
// 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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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];
|
||||
|
||||
Reference in New Issue
Block a user