个播PK入口状态调整,异常结束弹窗逻辑处理
This commit is contained in:
@@ -115,6 +115,7 @@
|
|||||||
9B060B5827BCAEE20001B767 /* AnchorGiftValueView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B060B5727BCAEE20001B767 /* AnchorGiftValueView.m */; };
|
9B060B5827BCAEE20001B767 /* AnchorGiftValueView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B060B5727BCAEE20001B767 /* AnchorGiftValueView.m */; };
|
||||||
9B0997A127F19D8A00EB8F14 /* README.md in Resources */ = {isa = PBXBuildFile; fileRef = 9B0997A027F19D8900EB8F14 /* README.md */; };
|
9B0997A127F19D8A00EB8F14 /* README.md in Resources */ = {isa = PBXBuildFile; fileRef = 9B0997A027F19D8900EB8F14 /* README.md */; };
|
||||||
9B0997A327F19DE500EB8F14 /* QGHWDShaders.metal in Sources */ = {isa = PBXBuildFile; fileRef = 9B0997A227F19DE500EB8F14 /* QGHWDShaders.metal */; };
|
9B0997A327F19DE500EB8F14 /* QGHWDShaders.metal in Sources */ = {isa = PBXBuildFile; fileRef = 9B0997A227F19DE500EB8F14 /* QGHWDShaders.metal */; };
|
||||||
|
9B0AABDE280D4CD20025269D /* anchorPK_vs.svga in Resources */ = {isa = PBXBuildFile; fileRef = 9B0AABDD280D4CD20025269D /* anchorPK_vs.svga */; };
|
||||||
9B0E1C5926E77022005D4442 /* BaseNavigationController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B0E1C5826E77022005D4442 /* BaseNavigationController.m */; };
|
9B0E1C5926E77022005D4442 /* BaseNavigationController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B0E1C5826E77022005D4442 /* BaseNavigationController.m */; };
|
||||||
9B16A34827E17D9B00E13A98 /* XPRoomTrumpetViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B16A34727E17D9B00E13A98 /* XPRoomTrumpetViewController.m */; };
|
9B16A34827E17D9B00E13A98 /* XPRoomTrumpetViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B16A34727E17D9B00E13A98 /* XPRoomTrumpetViewController.m */; };
|
||||||
9B16A34B27E1915A00E13A98 /* XPTrumpetPresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B16A34A27E1915A00E13A98 /* XPTrumpetPresenter.m */; };
|
9B16A34B27E1915A00E13A98 /* XPTrumpetPresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B16A34A27E1915A00E13A98 /* XPTrumpetPresenter.m */; };
|
||||||
@@ -845,6 +846,7 @@
|
|||||||
9B060B5727BCAEE20001B767 /* AnchorGiftValueView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AnchorGiftValueView.m; sourceTree = "<group>"; };
|
9B060B5727BCAEE20001B767 /* AnchorGiftValueView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AnchorGiftValueView.m; sourceTree = "<group>"; };
|
||||||
9B0997A027F19D8900EB8F14 /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
|
9B0997A027F19D8900EB8F14 /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
|
||||||
9B0997A227F19DE500EB8F14 /* QGHWDShaders.metal */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.metal; name = QGHWDShaders.metal; path = Pods/QGVAPlayer/iOS/QGVAPlayer/QGVAPlayer/Shaders/QGHWDShaders.metal; sourceTree = SOURCE_ROOT; };
|
9B0997A227F19DE500EB8F14 /* QGHWDShaders.metal */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.metal; name = QGHWDShaders.metal; path = Pods/QGVAPlayer/iOS/QGVAPlayer/QGVAPlayer/Shaders/QGHWDShaders.metal; sourceTree = SOURCE_ROOT; };
|
||||||
|
9B0AABDD280D4CD20025269D /* anchorPK_vs.svga */ = {isa = PBXFileReference; lastKnownFileType = file; path = anchorPK_vs.svga; sourceTree = "<group>"; };
|
||||||
9B0E1C5726E77022005D4442 /* BaseNavigationController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BaseNavigationController.h; sourceTree = "<group>"; };
|
9B0E1C5726E77022005D4442 /* BaseNavigationController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BaseNavigationController.h; sourceTree = "<group>"; };
|
||||||
9B0E1C5826E77022005D4442 /* BaseNavigationController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BaseNavigationController.m; sourceTree = "<group>"; };
|
9B0E1C5826E77022005D4442 /* BaseNavigationController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BaseNavigationController.m; sourceTree = "<group>"; };
|
||||||
9B16A34627E17D9B00E13A98 /* XPRoomTrumpetViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomTrumpetViewController.h; sourceTree = "<group>"; };
|
9B16A34627E17D9B00E13A98 /* XPRoomTrumpetViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomTrumpetViewController.h; sourceTree = "<group>"; };
|
||||||
@@ -4441,6 +4443,7 @@
|
|||||||
E8A1E45C276220B100B294CA /* Sources */ = {
|
E8A1E45C276220B100B294CA /* Sources */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
9B0AABDD280D4CD20025269D /* anchorPK_vs.svga */,
|
||||||
E88863C2278E7BCC004BCFAB /* crossRoomPk_progress.svga */,
|
E88863C2278E7BCC004BCFAB /* crossRoomPk_progress.svga */,
|
||||||
9B85F34F2806A34B006EDF51 /* anchorPK_progress.svga */,
|
9B85F34F2806A34B006EDF51 /* anchorPK_progress.svga */,
|
||||||
E8937ABF276C3ECF00B2C7E1 /* enterroom */,
|
E8937ABF276C3ECF00B2C7E1 /* enterroom */,
|
||||||
@@ -5324,6 +5327,7 @@
|
|||||||
186A52E726FC559700D67B2C /* yw_1222_0769.jpg in Resources */,
|
186A52E726FC559700D67B2C /* yw_1222_0769.jpg in Resources */,
|
||||||
E8937ACB276C3EDE00B2C7E1 /* svga_member_in_lv60.svga in Resources */,
|
E8937ACB276C3EDE00B2C7E1 /* svga_member_in_lv60.svga in Resources */,
|
||||||
186A52E326FC559200D67B2C /* RPSDK.bundle in Resources */,
|
186A52E326FC559200D67B2C /* RPSDK.bundle in Resources */,
|
||||||
|
9B0AABDE280D4CD20025269D /* anchorPK_vs.svga in Resources */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
|
@@ -7,6 +7,7 @@
|
|||||||
|
|
||||||
#import "NSObject+MJExtension.h"
|
#import "NSObject+MJExtension.h"
|
||||||
#import "XPEnum.h"
|
#import "XPEnum.h"
|
||||||
|
#import "AcrossRoomPKPanelModel.h"
|
||||||
|
|
||||||
NS_ASSUME_NONNULL_BEGIN
|
NS_ASSUME_NONNULL_BEGIN
|
||||||
typedef NS_ENUM(NSInteger, RoomType) {
|
typedef NS_ENUM(NSInteger, RoomType) {
|
||||||
@@ -60,6 +61,8 @@ typedef NS_ENUM(NSInteger, RoomDatingStateChangeType) {
|
|||||||
@property(nonatomic, copy) NSString *openBoxIcon;
|
@property(nonatomic, copy) NSString *openBoxIcon;
|
||||||
@end
|
@end
|
||||||
|
|
||||||
|
@class AcrossRoomPKPanelModel;
|
||||||
|
|
||||||
@interface RoomInfoModel : NSObject
|
@interface RoomInfoModel : NSObject
|
||||||
@property (nonatomic , copy) NSString * nick;
|
@property (nonatomic , copy) NSString * nick;
|
||||||
@property (nonatomic , assign) NSInteger uid;
|
@property (nonatomic , assign) NSInteger uid;
|
||||||
@@ -128,6 +131,10 @@ typedef NS_ENUM(NSInteger, RoomDatingStateChangeType) {
|
|||||||
@property (nonatomic, copy) NSString *mgName;
|
@property (nonatomic, copy) NSString *mgName;
|
||||||
///pk场次id(本地字段)
|
///pk场次id(本地字段)
|
||||||
@property (nonatomic, assign) NSInteger roundId;
|
@property (nonatomic, assign) NSInteger roundId;
|
||||||
|
//PK进行状态(1:pk中 2:惩罚中)
|
||||||
|
@property (nonatomic, assign) AcrossRoomPkStateType pkState;
|
||||||
|
///个播PK赢方uid
|
||||||
|
@property (nonatomic, copy) NSString *winUid;
|
||||||
///PK中的对方UID(本地字段)
|
///PK中的对方UID(本地字段)
|
||||||
@property (nonatomic, copy) NSString *pkUid;
|
@property (nonatomic, copy) NSString *pkUid;
|
||||||
///PK中的对方房间roomId(本地字段)
|
///PK中的对方房间roomId(本地字段)
|
||||||
|
@@ -17,6 +17,7 @@ typedef NS_ENUM(NSUInteger, AcrossRoomPkType) {
|
|||||||
typedef NS_ENUM(NSUInteger, AcrossRoomPkStateType) {
|
typedef NS_ENUM(NSUInteger, AcrossRoomPkStateType) {
|
||||||
AcrossRoomPkStateTypePking = 1,//PK中
|
AcrossRoomPkStateTypePking = 1,//PK中
|
||||||
AcrossRoomPkStateTypePenalty, //惩罚阶段
|
AcrossRoomPkStateTypePenalty, //惩罚阶段
|
||||||
|
AcrossRoomPkStateTypePenaltyEnd,//惩罚结束
|
||||||
};
|
};
|
||||||
|
|
||||||
@class AcrossRoomPkRankModel;
|
@class AcrossRoomPkRankModel;
|
||||||
|
@@ -18,6 +18,8 @@ NS_ASSUME_NONNULL_BEGIN
|
|||||||
- (void)xPAnchorPKPanelView:(XPAnchorPkPanelView *)view onlookRoom:(NSString *)roomUid;
|
- (void)xPAnchorPKPanelView:(XPAnchorPkPanelView *)view onlookRoom:(NSString *)roomUid;
|
||||||
///关注房主成功
|
///关注房主成功
|
||||||
- (void)xPAnchorPKPanelViewAttentionSuccess;
|
- (void)xPAnchorPKPanelViewAttentionSuccess;
|
||||||
|
///惩罚时间倒计时结束
|
||||||
|
- (void)xPAnchorPKPanelViewPenaltyCountDownEnd;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
|
@@ -129,14 +129,14 @@
|
|||||||
[self.progressView addSubview:self.progressContentView];
|
[self.progressView addSubview:self.progressContentView];
|
||||||
[self.progressContentView addSubview:self.redCountImageView];
|
[self.progressContentView addSubview:self.redCountImageView];
|
||||||
[self.progressContentView addSubview:self.blueCountImageView];
|
[self.progressContentView addSubview:self.blueCountImageView];
|
||||||
|
[self.progressContentView addSubview:self.redStarImageView];
|
||||||
|
[self.progressContentView addSubview:self.blueStarImageView];
|
||||||
[self.progressContentView addSubview:self.svgDisplayView];
|
[self.progressContentView addSubview:self.svgDisplayView];
|
||||||
///贡献榜
|
///贡献榜
|
||||||
[self.backImageView addSubview:self.redContributeStackView];
|
[self.backImageView addSubview:self.redContributeStackView];
|
||||||
[self.backImageView addSubview:self.blueContributeStackView];
|
[self.backImageView addSubview:self.blueContributeStackView];
|
||||||
[self.progressContentView addSubview:self.redCountLabel];
|
[self.progressContentView addSubview:self.redCountLabel];
|
||||||
[self.progressContentView addSubview:self.blueCountLabel];
|
[self.progressContentView addSubview:self.blueCountLabel];
|
||||||
[self.backImageView addSubview:self.redStarImageView];
|
|
||||||
[self.backImageView addSubview:self.blueStarImageView];
|
|
||||||
|
|
||||||
[self addSubview:self.redResultImageView];
|
[self addSubview:self.redResultImageView];
|
||||||
[self addSubview:self.otherAvatarImageView];
|
[self addSubview:self.otherAvatarImageView];
|
||||||
@@ -198,7 +198,7 @@
|
|||||||
|
|
||||||
[self.redStarImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
[self.redStarImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
make.top.mas_equalTo(self.backImageView).mas_offset(15);
|
make.top.mas_equalTo(self.backImageView).mas_offset(15);
|
||||||
make.left.mas_equalTo(-30);
|
make.left.mas_equalTo(self.backImageView.mas_left).mas_offset(-30);
|
||||||
make.width.height.mas_equalTo(26);
|
make.width.height.mas_equalTo(26);
|
||||||
}];
|
}];
|
||||||
[self.blueStarImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
[self.blueStarImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
@@ -317,6 +317,9 @@
|
|||||||
self.timeLabel.text = @"结果计算中";
|
self.timeLabel.text = @"结果计算中";
|
||||||
} else {
|
} else {
|
||||||
self.timeLabel.text = @"00:00";
|
self.timeLabel.text = @"00:00";
|
||||||
|
if (self.delegate && [self.delegate respondsToSelector:@selector(xPAnchorPKPanelViewPenaltyCountDownEnd)]) {
|
||||||
|
[self.delegate xPAnchorPKPanelViewPenaltyCountDownEnd];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
@@ -476,9 +479,14 @@
|
|||||||
if (_pkPanelInfo.aPercent > 1) {
|
if (_pkPanelInfo.aPercent > 1) {
|
||||||
_pkPanelInfo.aPercent = 1;
|
_pkPanelInfo.aPercent = 1;
|
||||||
}
|
}
|
||||||
CGFloat width = 305;
|
CGFloat width = 305 * _pkPanelInfo.aPercent;
|
||||||
|
if (width <= 6.5) {
|
||||||
|
width = 6.5;
|
||||||
|
} else if (width >= 305 - 5.5) {
|
||||||
|
width = 305 - 5.5;
|
||||||
|
}
|
||||||
[self.blueCountImageView mas_updateConstraints:^(MASConstraintMaker *make) {
|
[self.blueCountImageView mas_updateConstraints:^(MASConstraintMaker *make) {
|
||||||
make.width.mas_equalTo(width * _pkPanelInfo.aPercent);
|
make.width.mas_equalTo(width);
|
||||||
}];
|
}];
|
||||||
self.otherAvatarImageView.imageUrl = pkPanelInfo.aAvatar;
|
self.otherAvatarImageView.imageUrl = pkPanelInfo.aAvatar;
|
||||||
self.otherNickLabel.text = pkPanelInfo.aTitle;
|
self.otherNickLabel.text = pkPanelInfo.aTitle;
|
||||||
|
@@ -179,8 +179,6 @@
|
|||||||
[self receiveBroadcastGift:attachment];
|
[self receiveBroadcastGift:attachment];
|
||||||
} else if (attachment.first == CustomMessageType_Noble_VIP && attachment.second == Custom_Message_Sub_Room_Noble_LevelUp_Suspend) {///贵族升级全服飘屏
|
} else if (attachment.first == CustomMessageType_Noble_VIP && attachment.second == Custom_Message_Sub_Room_Noble_LevelUp_Suspend) {///贵族升级全服飘屏
|
||||||
[self receiveNobleLevelUp:attachment];
|
[self receiveNobleLevelUp:attachment];
|
||||||
} else if (attachment.first == CustomMessageType_Anchor_Hour_Rank && attachment.second == Custom_Message_Sub_Anchor_Hour_Rank) {///个播小时榜
|
|
||||||
[self receiveAnchorHourRank:attachment];
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -221,6 +219,8 @@
|
|||||||
[self receiveGift:receiveInfo];
|
[self receiveGift:receiveInfo];
|
||||||
} else if (attachment.first == CustomMessageType_Across_Room_PK && attachment.second == Custom_Message_Sub_AnchorPK_Result) {//个播PK横幅
|
} else if (attachment.first == CustomMessageType_Across_Room_PK && attachment.second == Custom_Message_Sub_AnchorPK_Result) {//个播PK横幅
|
||||||
[self acrossRoomPKBannerAnimation:attachment];
|
[self acrossRoomPKBannerAnimation:attachment];
|
||||||
|
} else if (attachment.first == CustomMessageType_Anchor_Hour_Rank && attachment.second == Custom_Message_Sub_Anchor_Hour_Rank) {///个播小时榜
|
||||||
|
[self receiveAnchorHourRank:attachment];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -329,9 +329,7 @@
|
|||||||
[Api getAcrossRoomPKDetail:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
|
[Api getAcrossRoomPKDetail:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
|
||||||
if (code == 200) {
|
if (code == 200) {
|
||||||
AcrossRoomPKPanelModel * acrossPKPanelInfo = [AcrossRoomPKPanelModel modelWithJSON:data.data];
|
AcrossRoomPKPanelModel * acrossPKPanelInfo = [AcrossRoomPKPanelModel modelWithJSON:data.data];
|
||||||
self.delegate.getRoomInfo.roundId = acrossPKPanelInfo.roundId;
|
[self updateAnchorPkInfo:acrossPKPanelInfo];
|
||||||
self.delegate.getRoomInfo.pkUid = acrossPKPanelInfo.aUid;
|
|
||||||
self.delegate.getRoomInfo.pkRoomId = acrossPKPanelInfo.aRoomId;
|
|
||||||
if (acrossPKPanelInfo.pkType == AcrossRoomPkTypeAnchor) {
|
if (acrossPKPanelInfo.pkType == AcrossRoomPkTypeAnchor) {
|
||||||
if (acrossPKPanelInfo.aUid.integerValue > 0) {
|
if (acrossPKPanelInfo.aUid.integerValue > 0) {
|
||||||
if (!self.anchorPKPanelView.superview) {
|
if (!self.anchorPKPanelView.superview) {
|
||||||
@@ -547,7 +545,7 @@
|
|||||||
});
|
});
|
||||||
AcrossRoomPKPanelModel * acrossPKPanelInfo = [AcrossRoomPKPanelModel modelWithJSON:attachment.data];
|
AcrossRoomPKPanelModel * acrossPKPanelInfo = [AcrossRoomPKPanelModel modelWithJSON:attachment.data];
|
||||||
[[RtcManager instance] connectOtherRoom:acrossPKPanelInfo.aRoomId userId:acrossPKPanelInfo.aUid];
|
[[RtcManager instance] connectOtherRoom:acrossPKPanelInfo.aRoomId userId:acrossPKPanelInfo.aUid];
|
||||||
self.delegate.getRoomInfo.roundId = acrossPKPanelInfo.roundId;
|
[self updateAnchorPkInfo:acrossPKPanelInfo];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}];
|
}];
|
||||||
@@ -589,7 +587,7 @@
|
|||||||
}
|
}
|
||||||
AcrossRoomPKPanelModel * acrossPKPanelInfo = [AcrossRoomPKPanelModel modelWithJSON:attachment.data];
|
AcrossRoomPKPanelModel * acrossPKPanelInfo = [AcrossRoomPKPanelModel modelWithJSON:attachment.data];
|
||||||
self.anchorPKPanelView.pkPanelInfo = acrossPKPanelInfo;
|
self.anchorPKPanelView.pkPanelInfo = acrossPKPanelInfo;
|
||||||
self.delegate.getRoomInfo.roundId = acrossPKPanelInfo.roundId;
|
[self updateAnchorPkInfo:acrossPKPanelInfo];
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case Custom_Message_Sub_AnchorPK_End://个播PK结束,进入惩罚阶段
|
case Custom_Message_Sub_AnchorPK_End://个播PK结束,进入惩罚阶段
|
||||||
@@ -603,9 +601,16 @@
|
|||||||
}
|
}
|
||||||
AcrossRoomPKPanelModel * acrossPKPanelInfo = [AcrossRoomPKPanelModel modelWithJSON:attachment.data];
|
AcrossRoomPKPanelModel * acrossPKPanelInfo = [AcrossRoomPKPanelModel modelWithJSON:attachment.data];
|
||||||
self.anchorPKPanelView.pkPanelInfo = acrossPKPanelInfo;
|
self.anchorPKPanelView.pkPanelInfo = acrossPKPanelInfo;
|
||||||
XPAnchorPKResultView *view = [[XPAnchorPKResultView alloc] initWithFrame:CGRectMake(0, 0, 300, 472)];
|
[self updateAnchorPkInfo:acrossPKPanelInfo];
|
||||||
view.data = acrossPKPanelInfo;
|
if (acrossPKPanelInfo.isForce) {
|
||||||
[TTPopup popupView:view style:TTPopupStyleAlert];
|
XPAnchorPKFinishView *view = [[XPAnchorPKFinishView alloc] init];
|
||||||
|
view.data = acrossPKPanelInfo;
|
||||||
|
[TTPopup popupView:view style:TTPopupStyleAlert];
|
||||||
|
} else {
|
||||||
|
XPAnchorPKResultView *view = [[XPAnchorPKResultView alloc] initWithFrame:CGRectMake(0, 0, 300, 472)];
|
||||||
|
view.data = acrossPKPanelInfo;
|
||||||
|
[TTPopup popupView:view style:TTPopupStyleAlert];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case Custom_Message_Sub_AnchorPK_Finish://个播PK完成
|
case Custom_Message_Sub_AnchorPK_Finish://个播PK完成
|
||||||
@@ -613,11 +618,8 @@
|
|||||||
[self.anchorPKPanelView resetAcrossPKViewData];
|
[self.anchorPKPanelView resetAcrossPKViewData];
|
||||||
[self.anchorPKPanelView removeFromSuperview];
|
[self.anchorPKPanelView removeFromSuperview];
|
||||||
self.anchorPKPanelView = nil;
|
self.anchorPKPanelView = nil;
|
||||||
|
[self resetAnchorPkInfo];
|
||||||
[[RtcManager instance] disconnectOtherRoom];
|
[[RtcManager instance] disconnectOtherRoom];
|
||||||
AcrossRoomPKPanelModel * acrossPKPanelInfo = [AcrossRoomPKPanelModel modelWithJSON:attachment.data];
|
|
||||||
XPAnchorPKFinishView *view = [[XPAnchorPKFinishView alloc] init];
|
|
||||||
view.data = acrossPKPanelInfo;
|
|
||||||
[TTPopup popupView:view style:TTPopupStyleAlert];
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@@ -766,6 +768,10 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (void)xPAnchorPKPanelViewPenaltyCountDownEnd {
|
||||||
|
self.delegate.getRoomInfo.pkState = AcrossRoomPkStateTypePenaltyEnd;
|
||||||
|
}
|
||||||
|
|
||||||
#pragma mark - Event Response
|
#pragma mark - Event Response
|
||||||
- (void)contributionButtonAction:(UIButton *)sender {
|
- (void)contributionButtonAction:(UIButton *)sender {
|
||||||
NSString * roomUid = [NSString stringWithFormat:@"%ld", self.delegate.getRoomInfo.uid];
|
NSString * roomUid = [NSString stringWithFormat:@"%ld", self.delegate.getRoomInfo.uid];
|
||||||
@@ -1037,6 +1043,22 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (void)updateAnchorPkInfo:(AcrossRoomPKPanelModel *)acrossPKPanelInfo {
|
||||||
|
self.delegate.getRoomInfo.roundId = acrossPKPanelInfo.roundId;
|
||||||
|
self.delegate.getRoomInfo.pkUid = acrossPKPanelInfo.aUid;
|
||||||
|
self.delegate.getRoomInfo.pkRoomId = acrossPKPanelInfo.aRoomId;
|
||||||
|
self.delegate.getRoomInfo.pkState = acrossPKPanelInfo.pkState;
|
||||||
|
self.delegate.getRoomInfo.winUid = acrossPKPanelInfo.winUid;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)resetAnchorPkInfo {
|
||||||
|
self.delegate.getRoomInfo.roundId = nil;
|
||||||
|
self.delegate.getRoomInfo.pkUid = nil;
|
||||||
|
self.delegate.getRoomInfo.pkRoomId = nil;
|
||||||
|
self.delegate.getRoomInfo.pkState = nil;
|
||||||
|
self.delegate.getRoomInfo.winUid = nil;
|
||||||
|
}
|
||||||
|
|
||||||
#pragma mark - XPRoomLittleGameListViewDelegate
|
#pragma mark - XPRoomLittleGameListViewDelegate
|
||||||
- (void)xPRoomLittleGameListView:(XPLittleGameRoomListView *)view didSelectItem:(LittleGameInfoModel *)itemInfo {
|
- (void)xPRoomLittleGameListView:(XPLittleGameRoomListView *)view didSelectItem:(LittleGameInfoModel *)itemInfo {
|
||||||
RoomInfoModel * roomInfo = self.delegate.getRoomInfo;
|
RoomInfoModel * roomInfo = self.delegate.getRoomInfo;
|
||||||
|
@@ -52,6 +52,17 @@
|
|||||||
anchorRoomPK.imageName = roomInfo.roomModeType == RoomModeType_Open_AcrossRoomPK_mode ? @"room_more_menu_anchorPK_close" : @"room_more_menu_anchorPK_open";
|
anchorRoomPK.imageName = roomInfo.roomModeType == RoomModeType_Open_AcrossRoomPK_mode ? @"room_more_menu_anchorPK_close" : @"room_more_menu_anchorPK_open";
|
||||||
anchorRoomPK.type = roomInfo.roomModeType == RoomModeType_Open_AcrossRoomPK_mode ? RoomMoreMenuType_Room_Anchor_PK_Close : RoomMoreMenuType_Room_Anchor_PK_Open;
|
anchorRoomPK.type = roomInfo.roomModeType == RoomModeType_Open_AcrossRoomPK_mode ? RoomMoreMenuType_Room_Anchor_PK_Close : RoomMoreMenuType_Room_Anchor_PK_Open;
|
||||||
anchorRoomPK.titleColor = roomInfo.isCloseScreen ? nil : [ThemeColor roomMoreMenuTextColor];
|
anchorRoomPK.titleColor = roomInfo.isCloseScreen ? nil : [ThemeColor roomMoreMenuTextColor];
|
||||||
|
if (roomInfo.pkState == AcrossRoomPkStateTypePenalty) {
|
||||||
|
if ([roomInfo.winUid isEqualToString:[AccountInfoStorage instance].getUid]) {
|
||||||
|
anchorRoomPK.title = @"结束PK";
|
||||||
|
} else if ([roomInfo.winUid isEqualToString:roomInfo.pkUid]) {
|
||||||
|
anchorRoomPK.title = @"主播PK中";
|
||||||
|
} else {
|
||||||
|
anchorRoomPK.title = @"结束PK";
|
||||||
|
}
|
||||||
|
} else if (roomInfo.pkState == AcrossRoomPkStateTypePenaltyEnd) {
|
||||||
|
anchorRoomPK.title = @"结束PK";
|
||||||
|
}
|
||||||
|
|
||||||
XPRoomMoreItemModel * messageScreen = [[XPRoomMoreItemModel alloc] init];
|
XPRoomMoreItemModel * messageScreen = [[XPRoomMoreItemModel alloc] init];
|
||||||
messageScreen.title = roomInfo.isCloseScreen ? @"开启公屏" : @"关闭公屏";
|
messageScreen.title = roomInfo.isCloseScreen ? @"开启公屏" : @"关闭公屏";
|
||||||
|
@@ -12,6 +12,7 @@
|
|||||||
#import "XPMacro.h"
|
#import "XPMacro.h"
|
||||||
#import "TTPopup.h"
|
#import "TTPopup.h"
|
||||||
#import "XPConstant.h"
|
#import "XPConstant.h"
|
||||||
|
#import "AccountInfoStorage.h"
|
||||||
///Model
|
///Model
|
||||||
#import "XPRoomMoreItemModel.h"
|
#import "XPRoomMoreItemModel.h"
|
||||||
#import "RoomInfoModel.h"
|
#import "RoomInfoModel.h"
|
||||||
@@ -312,9 +313,24 @@ UIKIT_EXTERN NSString * const kRoomGiftEffectUpdateNotificationKey;
|
|||||||
break;
|
break;
|
||||||
case RoomMoreMenuType_Room_Anchor_PK_Close:
|
case RoomMoreMenuType_Room_Anchor_PK_Close:
|
||||||
{
|
{
|
||||||
if (self.roomInfo.roundId) {
|
if (self.roomInfo.pkState == AcrossRoomPkStateTypePenalty) {
|
||||||
[self.presenter requestFinishAnchorPK:[NSString stringWithFormat:@"%ld", self.roomInfo.roundId]];
|
if ([self.roomInfo.winUid isEqualToString:[AccountInfoStorage instance].getUid]) {//赢
|
||||||
|
if (self.roomInfo.roundId) {
|
||||||
|
[self.presenter requestFinishAnchorPK:[NSString stringWithFormat:@"%ld", self.roomInfo.roundId]];
|
||||||
|
}
|
||||||
|
} else if ([self.roomInfo.winUid isEqualToString:self.roomInfo.pkUid]) {//输
|
||||||
|
|
||||||
|
} else {//平局
|
||||||
|
if (self.roomInfo.roundId) {
|
||||||
|
[self.presenter requestFinishAnchorPK:[NSString stringWithFormat:@"%ld", self.roomInfo.roundId]];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (self.roomInfo.roundId) {
|
||||||
|
[self.presenter requestFinishAnchorPK:[NSString stringWithFormat:@"%ld", self.roomInfo.roundId]];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@@ -9,6 +9,7 @@
|
|||||||
///Third
|
///Third
|
||||||
#import <Masonry/Masonry.h>
|
#import <Masonry/Masonry.h>
|
||||||
#import <NIMSDK/NIMSDK.h>
|
#import <NIMSDK/NIMSDK.h>
|
||||||
|
#import <SVGA.h>
|
||||||
///Tool
|
///Tool
|
||||||
#import "AccountInfoStorage.h"
|
#import "AccountInfoStorage.h"
|
||||||
#import "XPMacro.h"
|
#import "XPMacro.h"
|
||||||
@@ -52,20 +53,23 @@
|
|||||||
|
|
||||||
@interface AnchorPKStageView()<RtcDelegate>
|
@interface AnchorPKStageView()<RtcDelegate>
|
||||||
|
|
||||||
///vs图片
|
|
||||||
@property (nonatomic, strong) UIImageView *vsImageView;
|
|
||||||
///规则按钮
|
///规则按钮
|
||||||
@property (nonatomic, strong) UIButton *ruleButton;
|
@property (nonatomic, strong) UIButton *ruleButton;
|
||||||
|
|
||||||
|
///动画管理类
|
||||||
|
@property (strong, nonatomic) SVGAParser *parser;
|
||||||
|
///中间进度的动画
|
||||||
|
@property (nonatomic, strong) SVGAImageView *svgDisplayView;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@implementation AnchorPKStageView
|
@implementation AnchorPKStageView
|
||||||
|
|
||||||
- (instancetype)initWithDelegate:(id<RoomHostDelegate>)delegate {
|
- (instancetype)initWithDelegate:(id<RoomHostDelegate>)delegate {
|
||||||
if (self = [super initWithDelegate:delegate]) {
|
if (self = [super initWithDelegate:delegate]) {
|
||||||
[self addSubview:self.vsImageView];
|
[self addSubview:self.svgDisplayView];
|
||||||
[self addSubview:self.ruleButton];
|
[self addSubview:self.ruleButton];
|
||||||
[self.vsImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
[self.svgDisplayView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
make.width.mas_equalTo(64);
|
make.width.mas_equalTo(64);
|
||||||
make.height.mas_equalTo(74);
|
make.height.mas_equalTo(74);
|
||||||
make.centerX.mas_equalTo(self);
|
make.centerX.mas_equalTo(self);
|
||||||
@@ -75,7 +79,16 @@
|
|||||||
make.width.mas_equalTo(46);
|
make.width.mas_equalTo(46);
|
||||||
make.height.mas_equalTo(18);
|
make.height.mas_equalTo(18);
|
||||||
make.centerX.mas_equalTo(self);
|
make.centerX.mas_equalTo(self);
|
||||||
make.top.mas_equalTo(self.vsImageView.mas_bottom).mas_offset(7);
|
make.top.mas_equalTo(self.svgDisplayView.mas_bottom).mas_offset(7);
|
||||||
|
}];
|
||||||
|
|
||||||
|
[self.parser parseWithNamed:@"anchorPK_vs" inBundle:[NSBundle mainBundle] completionBlock:^(SVGAVideoEntity * _Nonnull videoItem) {
|
||||||
|
self.svgDisplayView.loops = INT_MAX;
|
||||||
|
self.svgDisplayView.clearsAfterStop = NO;
|
||||||
|
self.svgDisplayView.videoItem = videoItem;
|
||||||
|
[self.svgDisplayView startAnimation];
|
||||||
|
} failureBlock:^(NSError * _Nonnull error) {
|
||||||
|
|
||||||
}];
|
}];
|
||||||
}
|
}
|
||||||
return self;
|
return self;
|
||||||
@@ -258,37 +271,10 @@
|
|||||||
|
|
||||||
#pragma mark - RtcDelegate - 讲话的波纹回调
|
#pragma mark - RtcDelegate - 讲话的波纹回调
|
||||||
- (void)usersSpeaking:(NSMutableArray *)uids {
|
- (void)usersSpeaking:(NSMutableArray *)uids {
|
||||||
if ([RtcManager instance].isRemoteMuted) {
|
return;
|
||||||
return;
|
|
||||||
}
|
|
||||||
for (NSString* uid in uids) {
|
|
||||||
if ([RtcManager instance].isLocalMuted && uid.integerValue == self.hostDelegate.getUserInfo.uid) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
UIView<MicroViewProtocol>* microView = [self findMicroViewByUid:uid];
|
|
||||||
if (microView) {
|
|
||||||
[microView userSpeaking];
|
|
||||||
} else {
|
|
||||||
RoomInfoModel *roomInfo = self.hostDelegate.getRoomInfo;
|
|
||||||
if ([uid isEqualToString:roomInfo.pkUid]) {
|
|
||||||
UIView<MicroViewProtocol>* microView = [self findMicroViewByIndex:1];
|
|
||||||
if (microView) {
|
|
||||||
[microView userSpeaking];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#pragma mark - getter
|
#pragma mark - getter
|
||||||
- (UIImageView *)vsImageView {
|
|
||||||
if (!_vsImageView) {
|
|
||||||
_vsImageView = [[UIImageView alloc] init];
|
|
||||||
_vsImageView.image = [UIImage imageNamed:@"anchorPk_panel_vs"];
|
|
||||||
}
|
|
||||||
return _vsImageView;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (UIButton *)ruleButton {
|
- (UIButton *)ruleButton {
|
||||||
if (!_ruleButton) {
|
if (!_ruleButton) {
|
||||||
_ruleButton = [[UIButton alloc] init];
|
_ruleButton = [[UIButton alloc] init];
|
||||||
@@ -301,4 +287,21 @@
|
|||||||
return _ruleButton;
|
return _ruleButton;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (SVGAImageView *)svgDisplayView {
|
||||||
|
if (_svgDisplayView == nil) {
|
||||||
|
_svgDisplayView = [[SVGAImageView alloc]init];
|
||||||
|
_svgDisplayView.contentMode = UIViewContentModeScaleToFill;
|
||||||
|
_svgDisplayView.userInteractionEnabled = NO;
|
||||||
|
_svgDisplayView.backgroundColor = [UIColor clearColor];
|
||||||
|
}
|
||||||
|
return _svgDisplayView;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (SVGAParser *)parser {
|
||||||
|
if (!_parser) {
|
||||||
|
_parser = [[SVGAParser alloc]init];
|
||||||
|
}
|
||||||
|
return _parser;
|
||||||
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
@@ -6,12 +6,18 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
#import "AnchorPKMicroView.h"
|
#import "AnchorPKMicroView.h"
|
||||||
|
|
||||||
///Third
|
///Third
|
||||||
#import <Masonry/Masonry.h>
|
#import <Masonry/Masonry.h>
|
||||||
|
#import <SVGA.h>
|
||||||
|
#import "SVGAParserManager.h"
|
||||||
|
#import <ReactiveObjC/ReactiveObjC.h>
|
||||||
|
|
||||||
@interface AnchorPKMicroView ()
|
@interface AnchorPKMicroView ()
|
||||||
|
|
||||||
|
///个播主播的动画
|
||||||
|
@property (nonatomic, strong) SVGAImageView *svgDisplayView;
|
||||||
|
@property (nonatomic, strong) SVGAParserManager *parserManager;
|
||||||
|
|
||||||
///当前坑位
|
///当前坑位
|
||||||
@property (nonatomic, assign) NSInteger position;
|
@property (nonatomic, assign) NSInteger position;
|
||||||
|
|
||||||
@@ -21,10 +27,15 @@
|
|||||||
|
|
||||||
- (void)initSubViews {
|
- (void)initSubViews {
|
||||||
[super initSubViews];
|
[super initSubViews];
|
||||||
|
[self insertSubview:self.svgDisplayView belowSubview:self.avatarImageView];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)initSubViewConstraints {
|
- (void)initSubViewConstraints {
|
||||||
[super initSubViewConstraints];
|
[super initSubViewConstraints];
|
||||||
|
[self.svgDisplayView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.width.height.mas_equalTo(85 * 1.5);
|
||||||
|
make.center.equalTo(self.avatarImageView);
|
||||||
|
}];
|
||||||
}
|
}
|
||||||
|
|
||||||
#pragma mark - MicroViewProtocol
|
#pragma mark - MicroViewProtocol
|
||||||
@@ -83,6 +94,21 @@
|
|||||||
[self.stackView mas_updateConstraints:^(MASConstraintMaker *make) {
|
[self.stackView mas_updateConstraints:^(MASConstraintMaker *make) {
|
||||||
make.top.mas_equalTo(self.avatarImageView.mas_bottom).mas_offset(17);
|
make.top.mas_equalTo(self.avatarImageView.mas_bottom).mas_offset(17);
|
||||||
}];
|
}];
|
||||||
|
|
||||||
|
///主播添加光圈动画
|
||||||
|
self.svgDisplayView.hidden = NO;
|
||||||
|
@weakify(self);
|
||||||
|
NSString *bgString = [[NSBundle mainBundle] pathForResource:@"anchor_room_speak" ofType:@"svga"];
|
||||||
|
NSURL *bgUrl = [NSURL fileURLWithPath:bgString];
|
||||||
|
[self.parserManager loadSvgaWithURL:bgUrl completionBlock:^(SVGAVideoEntity * _Nullable videoItem) {
|
||||||
|
@strongify(self);
|
||||||
|
self.svgDisplayView.loops = INT_MAX;
|
||||||
|
self.svgDisplayView.clearsAfterStop = NO;
|
||||||
|
self.svgDisplayView.videoItem = videoItem;
|
||||||
|
[self.svgDisplayView startAnimation];
|
||||||
|
} failureBlock:^(NSError * _Nullable error) {
|
||||||
|
}];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)configUser:(UserInfoModel *)userInfo {
|
- (void)configUser:(UserInfoModel *)userInfo {
|
||||||
@@ -90,4 +116,23 @@
|
|||||||
self.sexImageView.hidden = YES;
|
self.sexImageView.hidden = YES;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#pragma mark - getter
|
||||||
|
- (SVGAParserManager *)parserManager {
|
||||||
|
if (!_parserManager) {
|
||||||
|
_parserManager = [[SVGAParserManager alloc]init];
|
||||||
|
}
|
||||||
|
return _parserManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (SVGAImageView *)svgDisplayView {
|
||||||
|
if (_svgDisplayView == nil) {
|
||||||
|
_svgDisplayView = [[SVGAImageView alloc]init];
|
||||||
|
_svgDisplayView.contentMode = UIViewContentModeScaleToFill;
|
||||||
|
_svgDisplayView.userInteractionEnabled = NO;
|
||||||
|
_svgDisplayView.frame = CGRectMake(0, 0, 384, 384);
|
||||||
|
_svgDisplayView.hidden = YES;
|
||||||
|
_svgDisplayView.backgroundColor = [UIColor clearColor];
|
||||||
|
}
|
||||||
|
return _svgDisplayView;
|
||||||
|
}
|
||||||
@end
|
@end
|
||||||
|
BIN
xplan-ios/Sources/anchorPK_vs.svga
Normal file
BIN
xplan-ios/Sources/anchorPK_vs.svga
Normal file
Binary file not shown.
Reference in New Issue
Block a user