完成房间 PK 面板基本流程
This commit is contained in:
eggmanQQQ
2024-06-16 16:18:30 +08:00
parent 49d17e1c6f
commit 3803718cb1
15 changed files with 1083 additions and 196 deletions

View File

@@ -56,6 +56,8 @@ UIKIT_EXTERN NSString *kShowFirstRechargeView;
/// ///
@property(nonatomic, strong) UIButton *gameMenuButton; @property(nonatomic, strong) UIButton *gameMenuButton;
///
@property(nonatomic, strong) UIButton *pkMenuButton;
/// ///
@property (nonatomic,strong) UIImageView *joinDatingView; @property (nonatomic,strong) UIImageView *joinDatingView;
@@ -98,6 +100,7 @@ UIKIT_EXTERN NSString *kShowFirstRechargeView;
[self.stackView addArrangedSubview:emptyView]; [self.stackView addArrangedSubview:emptyView];
[self.stackView addArrangedSubview:self.redPacketView]; [self.stackView addArrangedSubview:self.redPacketView];
[self.stackView addArrangedSubview:self.joinDatingView]; [self.stackView addArrangedSubview:self.joinDatingView];
[self.stackView addArrangedSubview:self.pkMenuButton];
[self.stackView addArrangedSubview:self.gameMenuButton]; [self.stackView addArrangedSubview:self.gameMenuButton];
} }
@@ -115,6 +118,11 @@ UIKIT_EXTERN NSString *kShowFirstRechargeView;
make.width.height.mas_equalTo(kGetScaleWidth(58)); make.width.height.mas_equalTo(kGetScaleWidth(58));
}]; }];
[self.pkMenuButton mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.mas_equalTo(0);
make.size.mas_equalTo(CGSizeMake(76, 76));
}];
[self.gameMenuButton mas_makeConstraints:^(MASConstraintMaker *make) { [self.gameMenuButton mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.mas_equalTo(0); make.leading.mas_equalTo(0);
make.size.mas_equalTo(CGSizeMake(76, 76)); make.size.mas_equalTo(CGSizeMake(76, 76));
@@ -175,8 +183,6 @@ UIKIT_EXTERN NSString *kShowFirstRechargeView;
self.isLoadActivity = YES; self.isLoadActivity = YES;
self.pi_cycleScrollView.hidden = NO; self.pi_cycleScrollView.hidden = NO;
if (self.hostDelegate.getRoomInfo.type == RoomType_MiniGame) { if (self.hostDelegate.getRoomInfo.type == RoomType_MiniGame) {
[self configLittleGameActivity]; [self configLittleGameActivity];
} else { } else {
@@ -222,9 +228,18 @@ UIKIT_EXTERN NSString *kShowFirstRechargeView;
RoomInfoModel * roomInfo = self.hostDelegate.getRoomInfo; RoomInfoModel * roomInfo = self.hostDelegate.getRoomInfo;
if (roomInfo.type == RoomType_Anchor || roomInfo.roomModeType == RoomModeType_Open_Blind) { if (roomInfo.type == RoomType_Anchor || roomInfo.roomModeType == RoomModeType_Open_Blind) {
self.gameMenuButton.hidden = YES; self.gameMenuButton.hidden = YES;
self.pkMenuButton.hidden = YES;
} else { } else {
self.gameMenuButton.hidden = NO; self.gameMenuButton.hidden = NO;
self.pkMenuButton.hidden = NO;
} }
if (roomInfo.roomModeType != RoomModeType_Open_PK_Mode) {
[self.pkMenuButton removeFromSuperview];
} else {
[self.stackView addArrangedSubview:self.pkMenuButton];
}
self.redPacketView.type = roomInfo.type; self.redPacketView.type = roomInfo.type;
if (roomInfo.type == RoomType_MiniGame) { if (roomInfo.type == RoomType_MiniGame) {
self.redPacketView.hidden = YES; self.redPacketView.hidden = YES;
@@ -536,6 +551,10 @@ UIKIT_EXTERN NSString *kShowFirstRechargeView;
[self.hostDelegate.getCurrentNav presentViewController:vc animated:YES completion:nil]; [self.hostDelegate.getCurrentNav presentViewController:vc animated:YES completion:nil];
} }
- (void)didTapPKMenuButton {
[self.hostDelegate showPKPanel];
}
#pragma mark- PIRoomEnterRedPacketViewDelegate #pragma mark- PIRoomEnterRedPacketViewDelegate
-(void)openRedPacketWithModel:(XPRedPacketModel *)redModel{ -(void)openRedPacketWithModel:(XPRedPacketModel *)redModel{
if(self.openRedPacketHandle){ if(self.openRedPacketHandle){
@@ -654,5 +673,16 @@ UIKIT_EXTERN NSString *kShowFirstRechargeView;
return _gameMenuButton; return _gameMenuButton;
} }
- (UIButton *)pkMenuButton {
if (!_pkMenuButton) {
UIButton *b = [UIButton buttonWithType:UIButtonTypeCustom];
[b setImage:[UIImage imageNamed:@"room_pk_panel_mini_icon"] forState:UIControlStateNormal];
[b addTarget:self action:@selector(didTapPKMenuButton) forControlEvents:UIControlEventTouchUpInside];
b.hidden = YES;
_pkMenuButton = b;
}
return _pkMenuButton;
}
@end @end

View File

@@ -20,7 +20,6 @@ NS_ASSUME_NONNULL_BEGIN
- (Music *)getCurrentMusic; - (Music *)getCurrentMusic;
///是否正在播放 ///是否正在播放
- (BOOL)isPlaying; - (BOOL)isPlaying;
///获取房间PK队伍的 ///获取房间PK队伍的
- (NSArray *)getRoomPKGroupTeamList; - (NSArray *)getRoomPKGroupTeamList;
///房间内PK是否正在进行 ///房间内PK是否正在进行
@@ -28,6 +27,8 @@ NS_ASSUME_NONNULL_BEGIN
///更新在线人数 ///更新在线人数
-(void)updateOnlineCount:(NSString *)count countList:(NSArray *)countList isUpdateCount:(BOOL)isUpdateCount; -(void)updateOnlineCount:(NSString *)count countList:(NSArray *)countList isUpdateCount:(BOOL)isUpdateCount;
- (void)showPKPanelView;
@end @end
NS_ASSUME_NONNULL_END NS_ASSUME_NONNULL_END

View File

@@ -147,7 +147,7 @@
/// ///
@property (nonatomic,strong) XPRoomBackMusicPlayerView *musicPlayView; @property (nonatomic,strong) XPRoomBackMusicPlayerView *musicPlayView;
///PKview ///PKview
@property (nonatomic,strong) XPRoomPKProgressView *roompkPanelView; @property (nonatomic,strong) XPRoomPKProgressView *roomPKProgressView;
///pk ///pk
@property (nonatomic,strong) RoomPKDetailInfoModel *pkDetailInfo; @property (nonatomic,strong) RoomPKDetailInfoModel *pkDetailInfo;
/// ///
@@ -160,7 +160,7 @@
@property (nonatomic,weak) XPWishGiftViewController* wishGiftVC ; @property (nonatomic,weak) XPWishGiftViewController* wishGiftVC ;
///线 ///线
@property(nonatomic,strong) MSRoomOnLineView *onlineView; @property(nonatomic,strong) MSRoomOnLineView *onlineView;
// PK
@property(nonatomic, strong) XPRoomPKPanelView *pkPanelView; @property(nonatomic, strong) XPRoomPKPanelView *pkPanelView;
@end @end
@@ -242,20 +242,21 @@
- (NSArray *)getRoomPKGroupTeamList { - (NSArray *)getRoomPKGroupTeamList {
NSArray * redArray = @[]; NSArray * redArray = @[];
if (self.roompkPanelView.redChooseArray > 0) { if (self.pkPanelView.redChooseArray > 0) {
redArray = self.roompkPanelView.redChooseArray; redArray = self.pkPanelView.redChooseArray;
} }
NSArray * blueArray = @[]; NSArray * blueArray = @[];
if (self.roompkPanelView.blueChooseArray > 0) { if (self.pkPanelView.blueChooseArray > 0) {
blueArray = self.roompkPanelView.blueChooseArray; blueArray = self.pkPanelView.blueChooseArray;
} }
return @[redArray, blueArray]; return @[redArray, blueArray];
} }
///PK ///PK
- (BOOL)isRoomPKPlaying { - (BOOL)isRoomPKPlaying {
return [self.roompkPanelView isRoomPKPlaying]; return [self.pkPanelView isRoomPKPlaying];
// return [self.roompkPanelView isRoomPKPlaying];
} }
#pragma mark - Private Method #pragma mark - Private Method
@@ -441,15 +442,20 @@
} }
#pragma mark - PK #pragma mark - PK
// MARL: ----- // MARK: -----
- (void)showPKPanelView {
[self showPKPanel_];
}
- (void)showPKPanel_ { - (void)showPKPanel_ {
if (NO == [TTPopup hasShowPopup]) { // if (NO == [TTPopup hasShowPopup]) {
[TTPopup popupView:self.pkPanelView style:TTPopupStyleAlert]; // [TTPopup popupView:self.pkPanelView style:TTPopupStyleAlert];
} // }
[self addSubview:self.pkPanelView];
// [self.delegate.getCurrentNav present]
} }
- (void)updateIsRoomManagerState { - (void)updateIsRoomManagerState {
self.pkPanelView.isManager = self.roompkPanelView.isManager; self.pkPanelView.isManager = self.roomPKProgressView.isManager;
} }
- (void)removePKPanel_ { - (void)removePKPanel_ {
@@ -458,16 +464,17 @@
self.pkPanelView = nil; self.pkPanelView = nil;
} }
} }
// MARL: ----- // MARK: -----
- (void)configRoomPKPanelView:(BOOL)isEnter { - (void)configRoomPKPanelView:(BOOL)isEnter {
RoomInfoModel * roomInfo = self.delegate.getRoomInfo; RoomInfoModel * roomInfo = self.delegate.getRoomInfo;
if (roomInfo.roomModeType == RoomModeType_Open_PK_Mode) { if (roomInfo.roomModeType == RoomModeType_Open_PK_Mode) {
[self showPKPanel_];
self.roompkPanelView.roomInfo = roomInfo; self.roomPKProgressView.roomInfo = roomInfo;
self.pkPanelView.roomInfo = roomInfo; self.pkPanelView.roomInfo = roomInfo;
if (!self.roompkPanelView.superview) { if (!self.roomPKProgressView.superview) {
[self addSubview:self.roompkPanelView]; [self addSubview:self.roomPKProgressView];
[self.roompkPanelView mas_makeConstraints:^(MASConstraintMaker *make) { [self showPKPanel_];
[self.roomPKProgressView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.mas_equalTo(self).offset(15); make.leading.mas_equalTo(self).offset(15);
make.top.mas_equalTo(self).offset(35 + (58 + 5 + 6 + 12) + 38 + (55 + 10 + 12 + 5+16) * 2 + 15 * 2 + kNavigationHeight + 5); make.top.mas_equalTo(self).offset(35 + (58 + 5 + 6 + 12) + 38 + (55 + 10 + 12 + 5+16) * 2 + 15 * 2 + kNavigationHeight + 5);
}]; }];
@@ -481,12 +488,12 @@
if (error == nil) { if (error == nil) {
NIMChatroomMember * member = members.firstObject; NIMChatroomMember * member = members.firstObject;
if (member.type == NIMChatroomMemberTypeCreator || member.type == NIMChatroomMemberTypeManager) { if (member.type == NIMChatroomMemberTypeCreator || member.type == NIMChatroomMemberTypeManager) {
self.roompkPanelView.isManager = YES; self.roomPKProgressView.isManager = YES;
}else { }else {
self.roompkPanelView.isManager = NO; self.roomPKProgressView.isManager = NO;
} }
if (isEnter) { if (isEnter) {
[self.roompkPanelView enterRoomGetRoomPKDetailInfo]; [self.roomPKProgressView enterRoomGetRoomPKDetailInfo];
[self.pkPanelView enterRoomGetRoomPKDetailInfo]; [self.pkPanelView enterRoomGetRoomPKDetailInfo];
} }
@@ -494,9 +501,10 @@
} }
}]; }];
} else { } else {
if (self.roompkPanelView.superview) { if (self.roomPKProgressView.superview) {
[self.roompkPanelView removeFromSuperview]; [self.roomPKProgressView removeFromSuperview];
} }
[self removePKPanel_];
} }
} }
@@ -705,14 +713,17 @@
[self showAskForUpMic:attachment.data]; [self showAskForUpMic:attachment.data];
} else if(attachment.first == CustomMessageType_Gift && (attachment.second == Custom_Message_Sub_Gift_Send || attachment.second == Custom_Message_Sub_Gift_LuckySend || attachment.second == Custom_Message_Sub_Gift_ChannelNotify)) { } else if(attachment.first == CustomMessageType_Gift && (attachment.second == Custom_Message_Sub_Gift_Send || attachment.second == Custom_Message_Sub_Gift_LuckySend || attachment.second == Custom_Message_Sub_Gift_ChannelNotify)) {
if (roomInfo.roomModeType == RoomModeType_Open_PK_Mode) { if (roomInfo.roomModeType == RoomModeType_Open_PK_Mode) {
[self.roompkPanelView roomPKReceiveGift:attachment]; [self.roomPKProgressView roomPKReceiveGift:attachment];
[self.pkPanelView roomPKReceiveGift:attachment];
} }
}else if(attachment.first == CustomMessageType_AllMicroSend && (attachment.second == Custom_Message_Sub_AllMicroSend || attachment.second == Custom_Message_Sub_AllBatchSend || attachment.second == Custom_Message_Sub_AllMicroLuckySend || attachment.second == Custom_Message_Sub_AllBatchMicroLuckySend)) { }else if(attachment.first == CustomMessageType_AllMicroSend && (attachment.second == Custom_Message_Sub_AllMicroSend || attachment.second == Custom_Message_Sub_AllBatchSend || attachment.second == Custom_Message_Sub_AllMicroLuckySend || attachment.second == Custom_Message_Sub_AllBatchMicroLuckySend)) {
if (roomInfo.roomModeType == RoomModeType_Open_PK_Mode) { if (roomInfo.roomModeType == RoomModeType_Open_PK_Mode) {
[self.roompkPanelView roomPKReceiveGift:attachment]; [self.roomPKProgressView roomPKReceiveGift:attachment];
[self.pkPanelView roomPKReceiveGift:attachment];
} }
} else if(attachment.first == CustomMessageType_Room_PK) { } else if(attachment.first == CustomMessageType_Room_PK) {
[self.roompkPanelView handleRoomPKCustomMessage:attachment]; [self.roomPKProgressView handleRoomPKCustomMessage:attachment];
[self.pkPanelView handleRoomPKCustomMessage:attachment];
} else if (attachment.first == CustomMessageType_Across_Room_PK) { } else if (attachment.first == CustomMessageType_Across_Room_PK) {
/// ///
BOOL meIsSuperAdmin = NO; BOOL meIsSuperAdmin = NO;
@@ -996,7 +1007,7 @@
for (NIMChatroomNotificationMember * member in content.targets) { for (NIMChatroomNotificationMember * member in content.targets) {
if (member.userId.intValue == [AccountInfoStorage instance].getUid.integerValue) { if (member.userId.intValue == [AccountInfoStorage instance].getUid.integerValue) {
self.editButton.hidden = NO; self.editButton.hidden = NO;
self.roompkPanelView.isManager = YES; self.roomPKProgressView.isManager = YES;
break; break;
} }
} }
@@ -1007,7 +1018,7 @@
for (NIMChatroomNotificationMember * member in content.targets) { for (NIMChatroomNotificationMember * member in content.targets) {
if (member.userId.intValue == [AccountInfoStorage instance].getUid.integerValue) { if (member.userId.intValue == [AccountInfoStorage instance].getUid.integerValue) {
self.editButton.hidden = YES; self.editButton.hidden = YES;
self.roompkPanelView.isManager = NO; self.roomPKProgressView.isManager = NO;
break; break;
} }
} }
@@ -1024,7 +1035,7 @@
if (self.delegate.getRoomInfo.type == RoomType_MiniGame) { if (self.delegate.getRoomInfo.type == RoomType_MiniGame) {
[self.littleGameMiniView needRefreshPosition:queue]; [self.littleGameMiniView needRefreshPosition:queue];
} else if(self.delegate.getRoomInfo.roomModeType == RoomModeType_Open_PK_Mode) { } else if(self.delegate.getRoomInfo.roomModeType == RoomModeType_Open_PK_Mode) {
self.roompkPanelView.micQueue = queue; self.roomPKProgressView.micQueue = queue;
self.pkPanelView.micQueue = queue; self.pkPanelView.micQueue = queue;
}else { }else {
MicroQueueModel * currentUserModel; MicroQueueModel * currentUserModel;
@@ -1924,16 +1935,16 @@
- (XPRoomPKPanelView *)pkPanelView { - (XPRoomPKPanelView *)pkPanelView {
if (!_pkPanelView) { if (!_pkPanelView) {
_pkPanelView = [[XPRoomPKPanelView alloc] initWithFrame:CGRectMake(0, 0, 309, 379)]; _pkPanelView = [[XPRoomPKPanelView alloc] init];
} }
return _pkPanelView; return _pkPanelView;
} }
- (XPRoomPKProgressView *)roompkPanelView { - (XPRoomPKProgressView *)roomPKProgressView {
if (!_roompkPanelView) { if (!_roomPKProgressView) {
_roompkPanelView = [[XPRoomPKProgressView alloc] init]; _roomPKProgressView = [[XPRoomPKProgressView alloc] init];
} }
return _roompkPanelView; return _roomPKProgressView;
} }
- (XPAcrossRoomPKCountDownView *)acrossPKCountView { - (XPAcrossRoomPKCountDownView *)acrossPKCountView {

View File

@@ -31,6 +31,7 @@ NS_ASSUME_NONNULL_BEGIN
- (BOOL)isManagerOrOwner; - (BOOL)isManagerOrOwner;
- (void)exitRoom; - (void)exitRoom;
- (void)miniRoom; - (void)miniRoom;
- (void)showPKPanel;
- (UINavigationController *)getCurrentNav; - (UINavigationController *)getCurrentNav;
-(UIView *)getSuperView; -(UIView *)getSuperView;
- (NSArray *)getRoomSuperAdminList; - (NSArray *)getRoomSuperAdminList;

View File

@@ -8,5 +8,24 @@
#import "RoomPKChooseUserModel.h" #import "RoomPKChooseUserModel.h"
@implementation RoomPKChooseUserModel @implementation RoomPKChooseUserModel
- (BOOL)isEqual:(id)object {
if (self == object) {
return YES;
}
if (![object isKindOfClass:[RoomPKChooseUserModel class]]) {
return NO;
}
RoomPKChooseUserModel *other = (RoomPKChooseUserModel *)object;
return [self.uid isEqualToString:other.uid] &&
[self.nick isEqualToString:other.nick] &&
[self.avatar isEqualToString:self.avatar] &&
self.groupType == other.groupType &&
self.isSelect == other.isSelect &&
self.isEnableChoose == other.isEnableChoose;
}
- (NSUInteger)hash {
return self.nick.hash ^ self.uid.integerValue;
}
@end @end

View File

@@ -6,6 +6,7 @@
// //
#import <UIKit/UIKit.h> #import <UIKit/UIKit.h>
@class RoomPKChooseUserModel;
NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_BEGIN
typedef NS_ENUM(NSInteger,XPRoomPKPaneAvatarType) { typedef NS_ENUM(NSInteger,XPRoomPKPaneAvatarType) {
@@ -19,9 +20,18 @@ typedef NS_ENUM(NSInteger,XPRoomPKPaneAvatarType) {
// XPRoomPKPaneAvatarType_Leader_Blue_Default, // XPRoomPKPaneAvatarType_Leader_Blue_Default,
}; };
@protocol XPRoomPKPanelUserViewDelegate <NSObject>
///选择红队还是蓝队的添加人
- (void)didTapAvatar:(RoomPKChooseUserModel *)userModel didClickAddButton:(GroupType)gType;
@end
@interface XPRoomPKPaneAvatarView : UIView @interface XPRoomPKPaneAvatarView : UIView
@property (nonatomic,assign) XPRoomPKPaneAvatarType type; @property (nonatomic, assign) GroupType gType;
@property (nonatomic, assign) XPRoomPKPaneAvatarType type;
@property (nonatomic, weak) id<XPRoomPKPanelUserViewDelegate> delegate;
@property (nonatomic, strong) RoomPKChooseUserModel *userModel;
@property (nonatomic, copy) void (^didTapAvatar)(XPRoomPKPaneAvatarType type); @property (nonatomic, copy) void (^didTapAvatar)(XPRoomPKPaneAvatarType type);
@end @end

View File

@@ -7,6 +7,8 @@
#import "XPRoomPKPaneAvatarView.h" #import "XPRoomPKPaneAvatarView.h"
#import "RoomPKChooseUserModel.h"
@interface XPRoomPKPaneAvatarView() @interface XPRoomPKPaneAvatarView()
@property (nonatomic, strong) UIImageView *avatarBackgroundImageView; @property (nonatomic, strong) UIImageView *avatarBackgroundImageView;
@@ -20,6 +22,7 @@
if (self = [super initWithFrame:frame]) { if (self = [super initWithFrame:frame]) {
self.clipsToBounds = NO; self.clipsToBounds = NO;
[self setupUI]; [self setupUI];
[self setupGesture];
} }
return self; return self;
} }
@@ -48,6 +51,11 @@
if (_didTapAvatar) { if (_didTapAvatar) {
_didTapAvatar(self.type); _didTapAvatar(self.type);
} }
if (self.delegate) {
[self.delegate didTapAvatar:self.userModel
didClickAddButton:self.gType];
}
} }
- (void)setType:(XPRoomPKPaneAvatarType)type { - (void)setType:(XPRoomPKPaneAvatarType)type {
@@ -57,25 +65,39 @@
self.avatarBackgroundImageView.image = [UIImage imageNamed:@"room_pk_avatar_bg_red"]; self.avatarBackgroundImageView.image = [UIImage imageNamed:@"room_pk_avatar_bg_red"];
self.avatarImageView.hidden = YES; self.avatarImageView.hidden = YES;
self.avatarImageView.layer.cornerRadius = 15; self.avatarImageView.layer.cornerRadius = 15;
self.gType = GroupType_Red;
break; break;
case XPRoomPKPaneAvatarType_Blue: case XPRoomPKPaneAvatarType_Blue:
self.avatarBackgroundImageView.image = [UIImage imageNamed:@"room_pk_avatar_bg_blue"]; self.avatarBackgroundImageView.image = [UIImage imageNamed:@"room_pk_avatar_bg_blue"];
self.avatarImageView.hidden = YES; self.avatarImageView.hidden = YES;
self.avatarImageView.layer.cornerRadius = 15; self.avatarImageView.layer.cornerRadius = 15;
self.gType = GroupType_Blue;
break; break;
case XPRoomPKPaneAvatarType_Leader_Red: case XPRoomPKPaneAvatarType_Leader_Red:
self.avatarBackgroundImageView.image = [UIImage imageNamed:@"room_pk_avatar_bg_red"]; self.avatarBackgroundImageView.image = [UIImage imageNamed:@"room_pk_avatar_bg_red"];
self.avatarImageView.layer.cornerRadius = 31; self.avatarImageView.layer.cornerRadius = 31;
self.gType = GroupType_Red;
break; break;
case XPRoomPKPaneAvatarType_Leader_Blue: case XPRoomPKPaneAvatarType_Leader_Blue:
self.avatarBackgroundImageView.image = [UIImage imageNamed:@"room_pk_avatar_bg_blue"]; self.avatarBackgroundImageView.image = [UIImage imageNamed:@"room_pk_avatar_bg_blue"];
self.avatarImageView.layer.cornerRadius = 31; self.avatarImageView.layer.cornerRadius = 31;
self.gType = GroupType_Blue;
break; break;
default: default:
break; break;
} }
} }
- (void)setUserModel:(RoomPKChooseUserModel *)userModel
{
_userModel = userModel;
if (_userModel) {
self.avatarImageView.imageUrl = userModel.avatar;
}
self.avatarImageView.hidden = _userModel == nil;
}
#pragma mark - #pragma mark -
- (UIImageView *)avatarBackgroundImageView { - (UIImageView *)avatarBackgroundImageView {
if (!_avatarBackgroundImageView) { if (!_avatarBackgroundImageView) {

View File

@@ -136,21 +136,50 @@
if (model.uid.length > 0) { if (model.uid.length > 0) {
model.isSelect = !model.isSelect; model.isSelect = !model.isSelect;
__block RoomPKChooseUserModel * selectModel; __block RoomPKChooseUserModel * selectModel;
[self.chooseArray enumerateObjectsUsingBlock:^(RoomPKChooseUserModel * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { [self.chooseArray enumerateObjectsUsingBlock:^(RoomPKChooseUserModel * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
if (obj.uid == model.uid) { if (obj.uid == model.uid) {
selectModel = obj; selectModel = obj;
*stop = YES; *stop = YES;
} }
}]; }];
if (selectModel && !model.isSelect) { if (selectModel && !model.isSelect) {
selectModel.groupType = GroupType_default; selectModel.groupType = GroupType_default;
} }
if (model.isSelect && selectModel == nil) { if (model.isSelect && selectModel == nil) {
[self.chooseArray addObject:model]; [self.chooseArray addObject:model];
} }
// @kWeakify(self);
// dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
// @kStrongify(self);
// [self.chooseArray enumerateObjectsUsingBlock:^(RoomPKChooseUserModel * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
// if (obj.uid == model.uid) {
// selectModel = obj;
// *stop = YES;
// }
// }];
// if (selectModel) {
// selectModel.groupType = model.isSelect ? model.groupType : GroupType_default;
// selectModel.isSelect = model.isSelect;
// }
// if (model.isSelect) {
// if (![self.chooseArray containsObject:model]) {
// [self.chooseArray addObject:model];
// }
// } else {
// if ([self.chooseArray containsObject:model]) {
// [self.chooseArray removeObject:model];
// } else {
// [self.chooseArray removeObject:selectModel];
// }
// }
// dispatch_async(dispatch_get_main_queue(), ^{
// [self.collectionView reloadData];
// });
// });
} }
[self.collectionView reloadData]; [self.collectionView reloadData];
} }
#pragma mark - Event Response #pragma mark - Event Response

View File

@@ -24,6 +24,13 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic,strong, readonly) NSArray<RoomPKChooseUserModel *> *blueChooseArray; @property (nonatomic,strong, readonly) NSArray<RoomPKChooseUserModel *> *blueChooseArray;
- (void)enterRoomGetRoomPKDetailInfo; - (void)enterRoomGetRoomPKDetailInfo;
///处理pK的状态
- (void)handleRoomPKCustomMessage:(AttachmentModel *)attachment;
- (BOOL)isRoomPKPlaying;
///收到礼物
- (void)roomPKReceiveGift:(AttachmentModel *)attachment;
@end @end

File diff suppressed because it is too large Load Diff

View File

@@ -34,7 +34,6 @@
#import "XPRoomPKPanelUserView.h" #import "XPRoomPKPanelUserView.h"
#import "XPRoomPKSelectUserView.h" #import "XPRoomPKSelectUserView.h"
#import "XPRoomPKPlayingView.h" #import "XPRoomPKPlayingView.h"
#import "XPRoomPKPlayingView.h"
#import "XPRoomPKResultView.h" #import "XPRoomPKResultView.h"
#import "XPArrangeMicViewController.h" #import "XPArrangeMicViewController.h"
@@ -139,9 +138,9 @@
} }
} }
if (pkInfo.pkStatus == RoomPKStatusType_End) { if (pkInfo.pkStatus == RoomPKStatusType_End) {
XPRoomPKResultView * result = [[XPRoomPKResultView alloc] init]; // XPRoomPKResultView * result = [[XPRoomPKResultView alloc] init];
result.roomPKResultInfoModel = pkInfo; // result.roomPKResultInfoModel = pkInfo;
[TTPopup popupView:result style:TTPopupStyleAlert]; // [TTPopup popupView:result style:TTPopupStyleAlert];
} }
[self handleRoomPKInfoChangeState]; [self handleRoomPKInfoChangeState];
} else if(attachment.second == Custom_Message_Sub_Room_PK_Mode_Close) { } else if(attachment.second == Custom_Message_Sub_Room_PK_Mode_Close) {
@@ -728,8 +727,6 @@
if (redScale == 1) { if (redScale == 1) {
redScale = 0.99; redScale = 0.99;
} }
[self.redProgressView mas_updateConstraints:^(MASConstraintMaker *make) { [self.redProgressView mas_updateConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(85 * 2 * redScale); make.width.mas_equalTo(85 * 2 * redScale);
}]; }];
@@ -760,7 +757,7 @@
[TTPopup popupView:self.roomPKPlayingView style:TTPopupStyleAlert]; [TTPopup popupView:self.roomPKPlayingView style:TTPopupStyleAlert];
return; return;
} }
// TODO:
if (self.isManager) { if (self.isManager) {
XPRoomPKSelectUserView * chooseUserView = [[XPRoomPKSelectUserView alloc] init]; XPRoomPKSelectUserView * chooseUserView = [[XPRoomPKSelectUserView alloc] init];
chooseUserView.delegate = self; chooseUserView.delegate = self;

View File

@@ -26,8 +26,7 @@
@interface XPRoomPKResultView () @interface XPRoomPKResultView ()
/// ///
@property (nonatomic,strong) UIImageView *topImageView; @property (nonatomic,strong) UIImageView *topImageView;
///
@property (nonatomic,strong) UIImageView *bottomImageView;
/// ///
@property (nonatomic,strong) UIImageView *contentImageView; @property (nonatomic,strong) UIImageView *contentImageView;
/// ///
@@ -81,7 +80,6 @@
- (void)initSubViews { - (void)initSubViews {
[self addSubview:self.contentImageView]; [self addSubview:self.contentImageView];
[self addSubview:self.topImageView]; [self addSubview:self.topImageView];
[self addSubview:self.bottomImageView];
[self.contentImageView addSubview:self.stackView]; [self.contentImageView addSubview:self.stackView];
[self.contentImageView addSubview:self.resultButton]; [self.contentImageView addSubview:self.resultButton];
@@ -104,9 +102,10 @@
} }
- (void)initSubViewConstraints { - (void)initSubViewConstraints {
// frame
[self mas_makeConstraints:^(MASConstraintMaker *make) { [self mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(KScreenWidth); make.width.mas_equalTo(KScreenWidth);
make.bottom.mas_equalTo(self.bottomImageView.mas_bottom); make.bottom.mas_equalTo(-100);
}]; }];
[self.topImageView mas_makeConstraints:^(MASConstraintMaker *make) { [self.topImageView mas_makeConstraints:^(MASConstraintMaker *make) {
@@ -121,13 +120,6 @@
make.height.mas_equalTo(170); // make.height.mas_equalTo(170); //
}]; }];
[self.bottomImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.contentImageView.mas_bottom).offset(-6);
make.centerX.mas_equalTo(self);
make.width.mas_equalTo(375);
make.height.mas_equalTo(16);
}];
[self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.contentImageView).offset(48); make.top.mas_equalTo(self.contentImageView).offset(48);
make.leading.mas_equalTo(self.contentImageView).offset(20); make.leading.mas_equalTo(self.contentImageView).offset(20);
@@ -301,15 +293,12 @@
if (self.roomPKResultInfoModel.result == RoomPKResultType_Draw) { // win if (self.roomPKResultInfoModel.result == RoomPKResultType_Draw) { // win
// //
self.bottomImageView.image = [UIImage imageNamed:@"room_pk_result_bottom_loser_bg"];
self.topImageView.image = [UIImage getLanguageImage:@"room_pk_result_top_draw_bg"]; self.topImageView.image = [UIImage getLanguageImage:@"room_pk_result_top_draw_bg"];
} else if(self.roomPKResultInfoModel.result == RoomPKResultType_Blue) { // loser } else if(self.roomPKResultInfoModel.result == RoomPKResultType_Blue) { // loser
// win // win
self.topImageView.image = [UIImage getLanguageImage:@"room_pk_result_top_win_bg"]; self.topImageView.image = [UIImage getLanguageImage:@"room_pk_result_top_win_bg"];
self.bottomImageView.image = [UIImage imageNamed:@"room_pk_result_bottom_win_bg"];
} else { } else {
self.topImageView.image = [UIImage getLanguageImage:@"room_pk_result_top_loser_bg"]; self.topImageView.image = [UIImage getLanguageImage:@"room_pk_result_top_loser_bg"];
self.bottomImageView.image = [UIImage imageNamed:@"room_pk_result_bottom_loser_bg"];
} }
[self.resultButton setTitle:YMLocalizedString(@"XPRoomPKResultView0") forState:UIControlStateNormal]; [self.resultButton setTitle:YMLocalizedString(@"XPRoomPKResultView0") forState:UIControlStateNormal];
@@ -345,14 +334,11 @@
if (self.roomPKResultInfoModel.result == RoomPKResultType_Red) { // win if (self.roomPKResultInfoModel.result == RoomPKResultType_Red) { // win
self.topImageView.image = [UIImage getLanguageImage:@"room_pk_result_top_win_bg"]; self.topImageView.image = [UIImage getLanguageImage:@"room_pk_result_top_win_bg"];
self.bottomImageView.image = [UIImage imageNamed:@"room_pk_result_bottom_win_bg"];
} else if (self.roomPKResultInfoModel.result == RoomPKResultType_Blue) { // loser } else if (self.roomPKResultInfoModel.result == RoomPKResultType_Blue) { // loser
self.topImageView.image = [UIImage getLanguageImage:@"room_pk_result_top_loser_bg"]; self.topImageView.image = [UIImage getLanguageImage:@"room_pk_result_top_loser_bg"];
self.bottomImageView.image = [UIImage imageNamed:@"room_pk_result_bottom_loser_bg"];
self.failDesLabel.hidden = NO; self.failDesLabel.hidden = NO;
} else { // } else { //
self.topImageView.image = [UIImage getLanguageImage:@"room_pk_result_top_draw_bg"]; self.topImageView.image = [UIImage getLanguageImage:@"room_pk_result_top_draw_bg"];
self.bottomImageView.image = [UIImage imageNamed:@"room_pk_result_bottom_loser_bg"];
} }
[self.resultButton setTitle:YMLocalizedString(@"XPRoomPKResultView3") forState:UIControlStateNormal]; [self.resultButton setTitle:YMLocalizedString(@"XPRoomPKResultView3") forState:UIControlStateNormal];
[self.checkButton setTitle:YMLocalizedString(@"XPRoomPKResultView4") forState:UIControlStateNormal]; [self.checkButton setTitle:YMLocalizedString(@"XPRoomPKResultView4") forState:UIControlStateNormal];
@@ -389,15 +375,12 @@
if (self.isChecOther) { // if (self.isChecOther) { //
if (self.roomPKResultInfoModel.result == RoomPKResultType_Draw) { // win if (self.roomPKResultInfoModel.result == RoomPKResultType_Draw) { // win
// //
self.bottomImageView.image = [UIImage imageNamed:@"room_pk_result_bottom_loser_bg"];
self.topImageView.image = [UIImage getLanguageImage:@"room_pk_result_top_draw_bg"]; self.topImageView.image = [UIImage getLanguageImage:@"room_pk_result_top_draw_bg"];
} else if(self.roomPKResultInfoModel.result == RoomPKResultType_Blue) { // loser } else if(self.roomPKResultInfoModel.result == RoomPKResultType_Blue) { // loser
// win // win
self.topImageView.image = [UIImage getLanguageImage:@"room_pk_result_top_loser_bg"]; self.topImageView.image = [UIImage getLanguageImage:@"room_pk_result_top_loser_bg"];
self.bottomImageView.image = [UIImage imageNamed:@"room_pk_result_bottom_loser_bg"];
} else { } else {
self.topImageView.image = [UIImage getLanguageImage:@"room_pk_result_top_win_bg"]; self.topImageView.image = [UIImage getLanguageImage:@"room_pk_result_top_win_bg"];
self.bottomImageView.image = [UIImage imageNamed:@"room_pk_result_bottom_win_bg"];
} }
[self.resultButton setTitle:YMLocalizedString(@"XPRoomPKResultView6") forState:UIControlStateNormal]; [self.resultButton setTitle:YMLocalizedString(@"XPRoomPKResultView6") forState:UIControlStateNormal];
@@ -432,13 +415,10 @@
if (self.roomPKResultInfoModel.result == RoomPKResultType_Blue) { // win if (self.roomPKResultInfoModel.result == RoomPKResultType_Blue) { // win
self.topImageView.image = [UIImage getLanguageImage:@"room_pk_result_top_win_bg"]; self.topImageView.image = [UIImage getLanguageImage:@"room_pk_result_top_win_bg"];
self.bottomImageView.image = [UIImage imageNamed:@"room_pk_result_bottom_win_bg"];
} else if (self.roomPKResultInfoModel.result == RoomPKResultType_Red) { // loser } else if (self.roomPKResultInfoModel.result == RoomPKResultType_Red) { // loser
self.failDesLabel.hidden = NO; self.failDesLabel.hidden = NO;
self.topImageView.image = [UIImage getLanguageImage:@"room_pk_result_top_loser_bg"]; self.topImageView.image = [UIImage getLanguageImage:@"room_pk_result_top_loser_bg"];
self.bottomImageView.image = [UIImage imageNamed:@"room_pk_result_bottom_loser_bg"];
} else { // } else { //
self.bottomImageView.image = [UIImage imageNamed:@"room_pk_result_bottom_loser_bg"];
self.topImageView.image = [UIImage getLanguageImage:@"room_pk_result_top_draw_bg"]; self.topImageView.image = [UIImage getLanguageImage:@"room_pk_result_top_draw_bg"];
} }
[self.resultButton setTitle:YMLocalizedString(@"XPRoomPKResultView9") forState:UIControlStateNormal]; [self.resultButton setTitle:YMLocalizedString(@"XPRoomPKResultView9") forState:UIControlStateNormal];
@@ -476,7 +456,7 @@
// , , // , ,
if (self.isChecOther) { // if (self.isChecOther) { //
self.topImageView.image = [UIImage getLanguageImage:@"room_pk_result_top_loser_bg"]; self.topImageView.image = [UIImage getLanguageImage:@"room_pk_result_top_loser_bg"];
self.bottomImageView.image = [UIImage imageNamed:@"room_pk_result_bottom_loser_bg"]; self.contentImageView.image = [UIImage imageNamed:@"room_pk_panel_bg_draw"];
if (self.roomPKResultInfoModel.result == RoomPKResultType_Blue) { if (self.roomPKResultInfoModel.result == RoomPKResultType_Blue) {
[self.resultButton setTitle:YMLocalizedString(@"XPRoomPKResultView6") forState:UIControlStateNormal]; [self.resultButton setTitle:YMLocalizedString(@"XPRoomPKResultView6") forState:UIControlStateNormal];
[self.resultButton setTitleColor:kRedTeamColor forState:UIControlStateNormal]; [self.resultButton setTitleColor:kRedTeamColor forState:UIControlStateNormal];
@@ -521,15 +501,15 @@
[self loadTeamMemberUserAvatar:bluePKTeam.teamMembers mvpUserId:bluePKTeam.mvp]; [self loadTeamMemberUserAvatar:bluePKTeam.teamMembers mvpUserId:bluePKTeam.mvp];
[self.contentImageView mas_updateConstraints:^(MASConstraintMaker *make) { [self.contentImageView mas_updateConstraints:^(MASConstraintMaker *make) {
make.height.mas_equalTo(bgHeight); // make.height.mas_equalTo(304); //
}]; }];
return; // return; //
} }
// //
if (self.roomPKResultInfoModel.result == RoomPKResultType_Blue) { // win if (self.roomPKResultInfoModel.result == RoomPKResultType_Blue) { // win
self.topImageView.image = [UIImage getLanguageImage:@"room_pk_result_top_win_bg"]; self.contentImageView.image = [UIImage imageNamed:@"room_pk_panel_bg_win"];
self.bottomImageView.image = [UIImage imageNamed:@"room_pk_result_bottom_win_bg"]; self.topImageView.image = [UIImage getLanguageImage:@"room_pk_panel_result_win"];
[self.resultButton setTitle:YMLocalizedString(@"XPRoomPKResultView18") forState:UIControlStateNormal]; [self.resultButton setTitle:YMLocalizedString(@"XPRoomPKResultView18") forState:UIControlStateNormal];
[self.resultButton setTitleColor:kBlueTeamColor forState:UIControlStateNormal]; [self.resultButton setTitleColor:kBlueTeamColor forState:UIControlStateNormal];
[self.checkButton setTitle:YMLocalizedString(@"XPRoomPKResultView10") forState:UIControlStateNormal]; [self.checkButton setTitle:YMLocalizedString(@"XPRoomPKResultView10") forState:UIControlStateNormal];
@@ -547,8 +527,8 @@
self.guardScoreLable.content = [NSString stringWithFormat:@"%lld", bluePKTeam.protecScore]; self.guardScoreLable.content = [NSString stringWithFormat:@"%lld", bluePKTeam.protecScore];
[self loadTeamMemberUserAvatar:bluePKTeam.teamMembers mvpUserId:bluePKTeam.mvp]; [self loadTeamMemberUserAvatar:bluePKTeam.teamMembers mvpUserId:bluePKTeam.mvp];
} else if (self.roomPKResultInfoModel.result == RoomPKResultType_Red) { // loser } else if (self.roomPKResultInfoModel.result == RoomPKResultType_Red) { // loser
self.topImageView.image = [UIImage getLanguageImage:@"room_pk_result_top_win_bg"]; self.contentImageView.image = [UIImage imageNamed:@"room_pk_panel_bg_draw"];
self.bottomImageView.image = [UIImage imageNamed:@"room_pk_result_bottom_win_bg"]; self.topImageView.image = [UIImage getLanguageImage:@"room_pk_panel_result_fail"];
[self.resultButton setTitle:YMLocalizedString(@"XPRoomPKResultView21") forState:UIControlStateNormal]; [self.resultButton setTitle:YMLocalizedString(@"XPRoomPKResultView21") forState:UIControlStateNormal];
[self.resultButton setTitleColor:kRedTeamColor forState:UIControlStateNormal]; [self.resultButton setTitleColor:kRedTeamColor forState:UIControlStateNormal];
[self.checkButton setTitle:YMLocalizedString(@"XPRoomPKResultView13") forState:UIControlStateNormal]; [self.checkButton setTitle:YMLocalizedString(@"XPRoomPKResultView13") forState:UIControlStateNormal];
@@ -566,8 +546,8 @@
self.guardScoreLable.content = [NSString stringWithFormat:@"%lld", redPKTeam.protecScore]; self.guardScoreLable.content = [NSString stringWithFormat:@"%lld", redPKTeam.protecScore];
[self loadTeamMemberUserAvatar:redPKTeam.teamMembers mvpUserId:redPKTeam.mvp]; [self loadTeamMemberUserAvatar:redPKTeam.teamMembers mvpUserId:redPKTeam.mvp];
} else { // } else { //
self.bottomImageView.image = [UIImage imageNamed:@"room_pk_result_bottom_loser_bg"]; self.contentImageView.image = [UIImage imageNamed:@"room_pk_panel_bg_draw"];
self.topImageView.image = [UIImage getLanguageImage:@"room_pk_result_top_draw_bg"]; self.topImageView.image = [UIImage getLanguageImage:@"room_pk_panel_result_draw"];
[self.resultButton setTitle:YMLocalizedString(@"XPRoomPKResultView24") forState:UIControlStateNormal]; [self.resultButton setTitle:YMLocalizedString(@"XPRoomPKResultView24") forState:UIControlStateNormal];
[self.resultButton setTitleColor:kRedTeamColor forState:UIControlStateNormal]; [self.resultButton setTitleColor:kRedTeamColor forState:UIControlStateNormal];
self.checkButton.hidden = YES; self.checkButton.hidden = YES;
@@ -578,14 +558,14 @@
[self loadTeamMemberUserAvatar:redPKTeam.teamMembers mvpUserId:redPKTeam.mvp]; [self loadTeamMemberUserAvatar:redPKTeam.teamMembers mvpUserId:redPKTeam.mvp];
} }
CGFloat bgHeight = 200; CGFloat bgHeight = 259;
if (self.roomPKResultInfoModel.result == RoomPKResultType_Draw || self.roomPKResultInfoModel.voteMode == RoomPKVoteModeType_NumberPerson) { if (self.roomPKResultInfoModel.result == RoomPKResultType_Draw || self.roomPKResultInfoModel.voteMode == RoomPKVoteModeType_NumberPerson) {
self.guardScoreLable.hidden = YES; self.guardScoreLable.hidden = YES;
self.guardPersonLable.hidden = YES; self.guardPersonLable.hidden = YES;
} else { } else {
self.guardScoreLable.hidden = NO; self.guardScoreLable.hidden = NO;
self.guardPersonLable.hidden = NO; self.guardPersonLable.hidden = NO;
bgHeight = 264; bgHeight = 304;
} }
[self.contentImageView mas_updateConstraints:^(MASConstraintMaker *make) { [self.contentImageView mas_updateConstraints:^(MASConstraintMaker *make) {
make.height.mas_equalTo(bgHeight); // make.height.mas_equalTo(bgHeight); //
@@ -604,19 +584,11 @@
if (!_contentImageView) { if (!_contentImageView) {
_contentImageView = [[UIImageView alloc] init]; _contentImageView = [[UIImageView alloc] init];
_contentImageView.userInteractionEnabled = YES; _contentImageView.userInteractionEnabled = YES;
_contentImageView.image = [UIImage imageNamed:@"room_pk_result_content_bg"]; _contentImageView.image = [UIImage imageNamed:@"room_pk_panel_bg_draw"];
} }
return _contentImageView; return _contentImageView;
} }
- (UIImageView *)bottomImageView {
if (!_bottomImageView) {
_bottomImageView = [[UIImageView alloc] init];
_bottomImageView.userInteractionEnabled = YES;
}
return _bottomImageView;
}
- (UIStackView *)stackView { - (UIStackView *)stackView {
if (!_stackView) { if (!_stackView) {
_stackView = [[UIStackView alloc] init]; _stackView = [[UIStackView alloc] init];

View File

@@ -2142,6 +2142,10 @@ NSString * const kHadQuitOtherRoomKey = @"kHadQuitOtherRoomKey";//是否退出
} }
} }
- (void)showPKPanel {
[self.functionView showPKPanelView];
}
- (UINavigationController *)getCurrentNav { - (UINavigationController *)getCurrentNav {
return self.navigationController; return self.navigationController;
} }

View File

@@ -150,6 +150,10 @@ NS_ASSUME_NONNULL_BEGIN
@property(nonatomic,assign) BOOL isRechargeUser; @property(nonatomic,assign) BOOL isRechargeUser;
///pk时不能禁麦 ///pk时不能禁麦
@property(nonatomic,assign) BOOL isNoProhibitMic; @property(nonatomic,assign) BOOL isNoProhibitMic;
- (BOOL)isUserValid;
- (NSString *)userIDString;
@end @end
NS_ASSUME_NONNULL_END NS_ASSUME_NONNULL_END

View File

@@ -31,4 +31,29 @@
}; };
} }
- (BOOL)isUserValid {
return self.uid > 0;
}
- (NSString *)userIDString {
return [NSString stringWithFormat:@"%ld", (long)self.uid];
}
- (BOOL)isEqual:(id)object {
if (self == object) {
return YES;
}
if (![object isKindOfClass:[UserInfoModel class]]) {
return NO;
}
UserInfoModel *other = (UserInfoModel *)object;
return self.uid == other.uid &&
[self.nick isEqualToString:other.nick] &&
[self.avatar isEqualToString:self.avatar];
}
- (NSUInteger)hash {
return self.nick.hash ^ self.uid;
}
@end @end