// // QXRoomSeatView.m // QXLive // // Created by 启星 on 2025/6/7. // #import "QXRoomSeatView.h" #import "QXRoomSeatTypeSongView.h" #import "QXRoomSeatTypeAuctionView.h" #import "QXAgoraEngine.h" #import "QXRoomOnlineUserListView.h" #import "QXRoomSeatTypeCabinView.h" #import "QXRoomSeatPKView.h" #import "QXRoomSeatTypeFrientView.h" #import "QXRoomUserCharmView.h" @interface QXRoomSeatView() @property (nonatomic,strong)QXRoomSeatTypeNormalView *normalSeatView; @property (nonatomic,strong)QXRoomSeatTypeSongView *songView; @property (nonatomic,strong)QXRoomSeatTypeAuctionView *auctionView; @property (nonatomic,strong) QXRoomOnlineUserListView *onlineListView; @property (nonatomic,strong)QXRoomSeatTypeCabinView *cabinView; @property (nonatomic,strong)QXRoomSeatPKView *roomPkView; @property (nonatomic,strong)QXRoomSeatTypeFrientView *roomFriendView; @property (nonatomic,strong)QXRoomUserCharmView *charmListView; @end @implementation QXRoomSeatView - (instancetype)initWithType:(QXRoomSeatViewType)type { self = [super init]; if (self) { _type = type; [self setType:type]; } return self; } //初始化普通视图 -(void)initNomarlView{ // if (_songView) { // [_songView removeFromSuperview]; // _songView = nil; // } // if (_songView) { // [_normalSeatView removeFromSuperview]; // _normalSeatView = nil; [[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 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) { }]; }]; return; } if (_auctionView) { // [_normalSeatView removeFromSuperview]; // _normalSeatView = nil; [[QXAgoraEngine sharedEngine] ktv_EndSing]; _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) { [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) { }]; }]; 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.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) { }]; }]; return; } 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 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) { }]; }]; return; } [self addSubview:self.normalSeatView]; [self.normalSeatView mas_makeConstraints:^(MASConstraintMaker *make) { make.left.right.top.bottom.equalTo(self); }]; } //初始化拍卖视图 -(void)initAuctionView{ 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 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) { }]; }]; return; } if (_songView) { // [_normalSeatView removeFromSuperview]; // _normalSeatView = nil; [[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 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) { }]; }]; 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.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) { }]; }]; return; } 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 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) { }]; }]; return; } [self addSubview:self.auctionView]; [self.auctionView mas_makeConstraints:^(MASConstraintMaker *make) { make.left.right.top.bottom.equalTo(self); }]; } //初始化点唱 -(void)initSingView{ 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 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 (_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) { [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) { }]; }]; return; } 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 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; } [self addSubview:self.songView]; [self.songView mas_makeConstraints:^(MASConstraintMaker *make) { make.left.right.top.bottom.equalTo(self); }]; } - (void)initRoomPKView{ 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 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) { }]; }]; return; } if (_songView) { // [_normalSeatView removeFromSuperview]; // _normalSeatView = nil; [[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 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) { }]; }]; 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 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 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) { }]; }]; 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) { [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) { }]; }]; 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 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) { }]; }]; return; } [self addSubview:self.roomFriendView]; [self.roomFriendView mas_makeConstraints:^(MASConstraintMaker *make) { make.left.right.top.bottom.equalTo(self); }]; } - (void)initCabinView{ self.cabinView = [[QXRoomSeatTypeCabinView alloc] init]; self.cabinView.delegate = self; [self addSubview:self.cabinView]; [self.cabinView mas_makeConstraints:^(MASConstraintMaker *make) { make.left.right.top.bottom.equalTo(self); }]; } -(void)setMyPitNumber:(NSInteger)myPitNumber{ _myPitNumber = myPitNumber; switch (self.type) { case QXRoomSeatViewTypeNormal: self.normalSeatView.myPitNumber = myPitNumber; break; case QXRoomSeatViewTypeSing: self.songView.myPitNumber = myPitNumber; break; case QXRoomSeatViewTypeAuction: self.auctionView.myPitNumber = myPitNumber; break; case QXRoomSeatViewTypePK: self.roomPkView.myPitNumber = myPitNumber; break; case QXRoomSeatViewTypeFriend: self.roomFriendView.myPitNumber = myPitNumber; break; default: break; } } -(void)setType:(QXRoomSeatViewType)type{ _type = type; switch (type) { case QXRoomSeatViewTypeNone:{ } break; case QXRoomSeatViewTypeNormal:{ [self initNomarlView]; } break; case QXRoomSeatViewTypeAuction:{ [self initAuctionView]; } break; case QXRoomSeatViewTypeSing:{ [self initSingView]; } break; case QXRoomSeatViewTypeCabin:{ [self initCabinView]; } break; case QXRoomSeatViewTypePK:{ [self initRoomPKView]; } break; case QXRoomSeatViewTypeFriend:{ [self initRoomFriendView]; } break; default: break; } } -(void)setLrcUrl:(NSString *)lrcUrl{ if (_songView) { _lrcUrl = lrcUrl; self.songView.lrcUrl = lrcUrl; } } -(void)setProgress:(NSUInteger)progress{ if (_songView) { _progress = progress; self.songView.progress = progress; } } -(void)setSpeakerPitch:(double)speakerPitch{ if (_songView) { _speakerPitch = speakerPitch; self.songView.speakerPitch = speakerPitch; } } -(void)setSongInfo:(QXSongListModel *)songInfo{ if (_songView) { _songInfo = songInfo; self.songView.songInfo = songInfo; } } -(void)setNextInfo:(QXSongListModel *)nextInfo{ if (_songView) { _nextInfo = nextInfo; self.songView.nextInfo = nextInfo; } } -(void)setRoomModel:(QXRoomModel *)roomModel{ _roomModel = roomModel; switch (self.type) { case QXRoomSeatViewTypeNormal: self.normalSeatView.roomModel = roomModel; break; case QXRoomSeatViewTypeSing: self.songView.roomModel = roomModel; break; case QXRoomSeatViewTypeAuction: self.auctionView.roomModel = roomModel; break; case QXRoomSeatViewTypeCabin: self.cabinView.roomModel = roomModel; break; case QXRoomSeatViewTypePK: self.roomPkView.roomModel = roomModel; break; case QXRoomSeatViewTypeFriend: self.roomFriendView.roomModel = roomModel; break; default: break; } } -(void)setPkRoomModel:(QXRoomModel *)pkRoomModel{ _pkRoomModel = pkRoomModel; if (_roomPkView) { self.roomPkView.pkRoomModel = pkRoomModel; } } -(void)previewUserInfoWithUserId:(NSString *)userId{ [self.onlineListView hide]; _onlineListView = nil; if (self.delegate && [self.delegate respondsToSelector:@selector(didClickUserHeaderWithPitModel:userModel:isPkRoom:pkRoomId:isNoTakeOff:)]) { QXRoomOwnerModel *md = [QXRoomOwnerModel new]; md.user_id = userId; [self.delegate didClickUserHeaderWithPitModel:nil userModel:md isPkRoom:NO pkRoomId:@"" isNoTakeOff:NO]; } } -(void)previewRoomUserCharmListWithUserId:(NSString *)userId{ self.charmListView.roomId = self.roomModel.room_info.room_id; self.charmListView.userId = userId; [self.charmListView showInView:self.viewController.view]; } -(void)didClickUserHeaderWithPitModel:(QXRoomPitModel *)pitModel userModel:(id)userModel isPkRoom:(BOOL)isPkRoom pkRoomId:(NSString *)pkRoomId isNoTakeOff:(BOOL)isNoTakeOff{ if (self.delegate && [self.delegate respondsToSelector:@selector(didClickUserHeaderWithPitModel:userModel:isPkRoom:pkRoomId:isNoTakeOff:)]) { [self.delegate didClickUserHeaderWithPitModel:pitModel userModel:userModel isPkRoom:isPkRoom pkRoomId:pkRoomId isNoTakeOff:isNoTakeOff]; } } -(void)auctionGiftAction:(QXRoomPitModel *)user auctionId:(NSString *)auctionId{ if (self.delegate && [self.delegate respondsToSelector:@selector(auctionGiftAction:auctionId:)]) { [self.delegate auctionGiftAction:user auctionId:auctionId]; } } -(void)sendGiftWithUser:(QXRoomPitModel *)user{ if (self.delegate && [self.delegate respondsToSelector:@selector(sendGiftWithUser:)]) { [self.delegate sendGiftWithUser:user]; } } /// 拍卖类型发生变化 -(void)auctionTypeDidChanged:(NSString *)type{ if (self.roomModel == nil) { return; } if (_auctionView) { [self.auctionView auctionTypeDidChanged:type]; return; } } -(void)cabinRoomHotValueDidChanged:(NSString *)hot_value{ if (_cabinView) { [self.cabinView cabinRoomHotValueDidChanged:hot_value]; } } -(void)clearCharm{ if (self.roomModel == nil) { return; } switch (self.type) { case QXRoomSeatViewTypeNormal: [self.normalSeatView clearCharm]; break; case QXRoomSeatViewTypeSing: [self.songView clearCharm]; break; case QXRoomSeatViewTypeAuction: [self.auctionView clearCharm]; break; case QXRoomSeatViewTypeCabin: break; case QXRoomSeatViewTypePK: [self.roomPkView clearCharm]; break; case QXRoomSeatViewTypeFriend: [self.roomFriendView clearCharm]; break; default: break; } } /// 清除个人魅力 -(void)roomClearUserCharmWithUserId:(NSString *)userId{ if (self.roomModel == nil) { return; } switch (self.type) { case QXRoomSeatViewTypeNormal: [self.normalSeatView roomClearUserCharmWithUserId:userId]; break; case QXRoomSeatViewTypeSing: [self.songView roomClearUserCharmWithUserId:userId]; break; case QXRoomSeatViewTypeAuction: [self.auctionView roomClearUserCharmWithUserId:userId]; break; case QXRoomSeatViewTypeCabin: break; case QXRoomSeatViewTypePK: [self.roomPkView roomClearUserCharmWithUserId:userId]; break; case QXRoomSeatViewTypeFriend: [self.roomFriendView roomClearUserCharmWithUserId:userId]; break; default: break; } } /// 房间内换麦 -(void)roomSeatExchangedWithFromPitNumber:(NSInteger)fromPitNumber toPitNumber:(NSInteger)toPitNumber{ if (self.roomModel == nil) { return; } switch (self.type) { case QXRoomSeatViewTypeNormal: [self.normalSeatView roomSeatExchangedWithFromPitNumber:fromPitNumber toPitNumber:toPitNumber]; break; case QXRoomSeatViewTypeSing: // [self.songView clearCharm]; break; case QXRoomSeatViewTypeAuction: break; case QXRoomSeatViewTypeCabin: break; case QXRoomSeatViewTypePK: [self.roomPkView roomSeatExchangedWithFromPitNumber:fromPitNumber toPitNumber:toPitNumber]; break; case QXRoomSeatViewTypeFriend: [self.roomFriendView roomSeatExchangedWithFromPitNumber:fromPitNumber toPitNumber:toPitNumber]; break; default: break; } } -(void)setSeatCharmWithUser:(QXUserHomeModel *)model{ if (self.roomModel == nil) { return; } switch (self.type) { case QXRoomSeatViewTypeNormal: [self.normalSeatView setSeatCharmWithUser:model]; break; case QXRoomSeatViewTypeSing: [self.songView setSeatCharmWithUser:model]; break; case QXRoomSeatViewTypeAuction: [self.auctionView setSeatCharmWithUser:model]; break; case QXRoomSeatViewTypeCabin: // self.cabinView.roomModel = roomModel; break; case QXRoomSeatViewTypePK: [self.roomPkView setSeatCharmWithUser:model]; break; case QXRoomSeatViewTypeFriend: [self.roomFriendView setSeatCharmWithUser:model]; break; default: break; } } -(void)setSeatCharmWithUsers:(NSArray *)users{ if (self.roomModel == nil) { return; } switch (self.type) { case QXRoomSeatViewTypeNormal: [self.normalSeatView setSeatCharmWithUsers:users]; break; case QXRoomSeatViewTypeSing: [self.songView setSeatCharmWithUsers:users]; break; case QXRoomSeatViewTypeAuction: [self.auctionView setSeatCharmWithUsers:users]; break; case QXRoomSeatViewTypeCabin: // self.cabinView.roomModel = roomModel; break; case QXRoomSeatViewTypePK: [self.roomPkView setSeatCharmWithUsers:users]; break; case QXRoomSeatViewTypeFriend: [self.roomFriendView setSeatCharmWithUsers:users]; break; default: break; } } -(void)setSeatIsLock:(NSString *)isLock pitNumber:(NSString *)pitNumber{ if (self.roomModel == nil) { return; } switch (self.type) { case QXRoomSeatViewTypeNormal: [self.normalSeatView setSeatIsLock:isLock pitNumber:pitNumber]; break; case QXRoomSeatViewTypeSing: // [self.songView didUpDownSeatWithUser:user isUpSeat:isUpSeat pit_number:pit_number]; break; case QXRoomSeatViewTypeAuction: // [self.auctionView didUpDownSeatWithUser:user isUpSeat:isUpSeat pit_number:pit_number]; break; case QXRoomSeatViewTypeCabin: // self.cabinView.roomModel = roomModel; break; case QXRoomSeatViewTypePK: [self.roomPkView setSeatIsLock:isLock pitNumber:pitNumber]; break; default: break; } } -(void)pkStartWithPkEndTimes:(NSString *)pk_end_times pk_id:(NSString*)pk_id{ if (self.roomModel == nil) { return; } if (_roomPkView) { [self.roomPkView pkStartWithPkEndTimes:pk_end_times pk_id:pk_id]; } } -(void)roomPKValueDidChangedWithRoomIdA:(NSString*)room_id_a create_value_a:(NSString*)create_value_a room_id_b:(NSString*)room_id_b receive_value_b:(NSString*)receive_value_b{ if (self.roomModel == nil) { return; } if (_roomPkView) { [self.roomPkView roomPKValueDidChangedWithRoomIdA:room_id_a create_value_a:create_value_a room_id_b:room_id_b receive_value_b:receive_value_b]; } } /// pk结果 -(void)pkResultWithIsVictory:(NSInteger)isVictory end_time:(NSString*)end_time victory_name:(NSString*)victory_name victory_cover:(NSString*)victory_cover defeated_name:(NSString*)defeated_name defeated_cover:(NSString*)defeated_cover{ if (self.roomModel == nil) { return; } if (_roomPkView) { [self.roomPkView pkResultWithIsVictory:isVictory end_time:end_time victory_name:victory_name victory_cover:victory_cover defeated_name:defeated_name defeated_cover:defeated_cover]; } } #pragma mark - 交友房 /// 交友房阶段发生变化 step 阶段 1等待 2心动 3牵手 friend_id 场次id -(void)friendPartDidChangedWithType:(NSString*)step friend_id:(NSString*)friend_id end_time:(NSString*)end_time relationModel:(QXRoomFriendRelationModel*)relationModel{ if (self.roomModel == nil) { return; } switch (self.type) { case QXRoomSeatViewTypeFriend:{ [self.roomFriendView friendPartDidChangedWithType:step friend_id:friend_id end_time:end_time relationModel:relationModel]; } break; default: break; } } /// 交友房时间发生延时 end_time 截止时间 -(void)friendTimeDelayWithTime:(NSString*)end_time{ if (self.roomModel == nil) { return; } switch (self.type) { case QXRoomSeatViewTypeFriend:{ [self.roomFriendView friendTimeDelayWithTime:end_time]; } break; default: break; } } -(void)friendSeatDidChanged:(NSArray *)pitArray{ if (self.roomModel == nil) { return; } switch (self.type) { case QXRoomSeatViewTypeFriend:{ [self.roomFriendView friendSeatDidChanged:pitArray]; } break; default: break; } } -(void)friendHeartNumberDidChanged:(NSArray *)heartArray{ if (self.roomModel == nil) { return; } switch (self.type) { case QXRoomSeatViewTypeFriend:{ [self.roomFriendView friendHeartNumberDidChanged:heartArray]; } break; default: break; } } /// 关系创建完成 -(void)friendRelationIsCreatedWithrelationModel:(QXRoomFriendRelationModel*)relationModel{ if (self.roomModel == nil) { return; } switch (self.type) { case QXRoomSeatViewTypeFriend:{ [self.roomFriendView friendRelationIsCreatedWithrelationModel:relationModel]; } break; default: break; } } /// 有人退出交友房私密小屋 -(void)friendCabinRoomIsQuit{ switch (self.type) { case QXRoomSeatViewTypeCabin:{ [self.cabinView friendCabinRoomIsQuit]; } break; default: break; } } /// 私密小屋时间发生延时 -(void)friendCabinRoomTimeDelayWithTime:(NSString*)end_time{ switch (self.type) { case QXRoomSeatViewTypeCabin:{ [self.cabinView friendCabinRoomTimeDelayWithTime:end_time]; } break; default: break; } } /// 助力 -(void)friendPowerSendGiftWithUser:(QXRoomPitModel *)user heartId:(NSString *)heartId{ if (self.roomModel == nil) { return; } if ([self.delegate respondsToSelector:@selector(friendPowerSendGiftWithUser:heartId:)]) { [self.delegate friendPowerSendGiftWithUser:user heartId:heartId]; } } -(QXRoomSeatTypeNormalView *)normalSeatView{ if (!_normalSeatView) { _normalSeatView = [[QXRoomSeatTypeNormalView alloc] init]; _normalSeatView.delegate = self; } return _normalSeatView; } -(QXRoomSeatTypeSongView *)songView{ if (!_songView) { _songView = [[QXRoomSeatTypeSongView alloc] init]; _songView.delegate = self; } return _songView; } -(UIView*)getCurrentSeatView{ if (_normalSeatView) { return _normalSeatView; } if (_songView) { return _songView; } if (_auctionView) { return _auctionView; } return nil; } -(void)didHugSeatWithPitNumber:(NSString *)pitNumber{ [self showOnlineListWithPitNumber:pitNumber]; } -(void)didUpDownSeatWithUser:(QXUserHomeModel *)user isUpSeat:(BOOL)isUpSeat pit_number:(NSInteger)pit_number{ if (self.roomModel == nil) { return; } switch (self.type) { case QXRoomSeatViewTypeNormal: [self.normalSeatView didUpDownSeatWithUser:user isUpSeat:isUpSeat pit_number:pit_number]; break; case QXRoomSeatViewTypeSing: [self.songView didUpDownSeatWithUser:user isUpSeat:isUpSeat pit_number:pit_number]; break; case QXRoomSeatViewTypeAuction: [self.auctionView didUpDownSeatWithUser:user isUpSeat:isUpSeat pit_number:pit_number]; break; case QXRoomSeatViewTypeCabin: // self.cabinView.roomModel = roomModel; break; case QXRoomSeatViewTypePK: [self.roomPkView didUpDownSeatWithUser:user isUpSeat:isUpSeat pit_number:pit_number]; break; case QXRoomSeatViewTypeFriend: [self.roomFriendView didUpDownSeatWithUser:user isUpSeat:isUpSeat pit_number:pit_number]; break; default: break; } } -(void)didAuctiontUpDownSeatWithUser:(QXUserHomeModel *)user isUpSeat:(BOOL)isUpSeat{ if (_auctionView) { [self.auctionView didAuctiontUpDownSeatWithUser:user isUpSeat:isUpSeat]; } } -(void)auctionStartOrEndIsStart:(BOOL)isStart user:(QXRoomAuctionUser *)user getUser:(QXRoomAuctionUser *)getUser{ if (self.roomModel == nil) { return; } if (_auctionView) { [self.auctionView auctionStartOrEndIsStart:isStart user:user getUser:getUser]; } } -(void)auctionListDidChanged:(NSArray *)list{ if (self.roomModel == nil) { return; } if (_auctionView) { [self.auctionView auctionListDidChanged:list]; } } -(void)auctionDelayTimeWithEndTime:(NSString *)endTime{ if (self.roomModel == nil) { return; } if (_auctionView) { [self.auctionView auctionDelayTimeWithEndTime:endTime]; } } -(void)songRoomCharmRankListDidChanged:(NSArray *)list{ if (_songView) { [self.songView songRoomCharmRankListDidChanged:list]; } } -(void)showOnlineListWithPitNumber:(NSString*)pitNumber{ self.onlineListView.isHugSeat = YES; self.onlineListView.pitNumber = pitNumber; self.onlineListView.roomId = self.roomModel.room_info.room_id; [self.onlineListView showInView:self.viewController.view]; } -(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]; break; case QXRoomSeatViewTypeSing: [self.songView roomUserInfoDidChanged:user]; break; case QXRoomSeatViewTypeAuction: [self.auctionView roomUserInfoDidChanged:user]; break; case QXRoomSeatViewTypeCabin: // self.cabinView.roomModel = roomModel; break; case QXRoomSeatViewTypePK: [self.roomPkView roomUserInfoDidChanged:user]; break; case QXRoomSeatViewTypeFriend: [self.roomFriendView roomUserInfoDidChanged:user]; break; default: break; } } -(void)destroyViews{ if (_normalSeatView) { [self.normalSeatView destroyViews]; _normalSeatView = nil; } if (_songView) { [self.songView destroyViews]; _songView = nil; } if (_auctionView) { [self.auctionView destroyViews]; } if (_roomPkView) { [self.roomPkView destroyViews]; _roomPkView = nil; } if (_roomFriendView) { [self.roomFriendView destroyViews]; _roomFriendView = nil; } if (_cabinView) { [self.cabinView destroyViews]; _cabinView = nil; } } -(QXRoomOnlineUserListView *)onlineListView{ if (!_onlineListView) { _onlineListView = [[QXRoomOnlineUserListView alloc] initWithFrame:[UIScreen mainScreen].bounds]; _onlineListView.delegate = self; } return _onlineListView; } -(QXRoomSeatTypeAuctionView *)auctionView{ if (!_auctionView) { _auctionView = [[QXRoomSeatTypeAuctionView alloc] init]; _auctionView.delegate = self; } return _auctionView; } -(QXRoomSeatPKView *)roomPkView{ if (!_roomPkView) { _roomPkView = [[QXRoomSeatPKView alloc] init]; _roomPkView.delegate = self; } return _roomPkView; } -(QXRoomSeatTypeFrientView *)roomFriendView{ if (!_roomFriendView) { _roomFriendView = [[QXRoomSeatTypeFrientView alloc] init]; _roomFriendView.delegate = self; } return _roomFriendView; } -(QXRoomUserCharmView *)charmListView{ if (!_charmListView) { _charmListView = [[QXRoomUserCharmView alloc] initWithFrame:[UIScreen mainScreen].bounds]; _charmListView.delegate = self; } return _charmListView; } @end