个播房上划加载下一个房间完成

This commit is contained in:
chenguilong
2022-07-14 17:16:33 +08:00
parent d1f86a8ae9
commit 81a0c20af6
69 changed files with 999 additions and 571 deletions

View File

@@ -145,7 +145,6 @@
9B2A12DE2783FEDD00CED41B /* UserVipInfoVo.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B2A12DD2783FEDD00CED41B /* UserVipInfoVo.m */; };
9B2A12E127845DD300CED41B /* XPNobleCenterMyNobleView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B2A12E027845DD300CED41B /* XPNobleCenterMyNobleView.m */; };
9B2A12E427846D7100CED41B /* NobleRechargeModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B2A12E327846D7100CED41B /* NobleRechargeModel.m */; };
9B2E9E66287D65F600927836 /* XPAnchorRoomCycleCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B2E9E65287D65F600927836 /* XPAnchorRoomCycleCell.m */; };
9B2EA7C02804037700ED17BF /* AnchorPKStageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B2EA7BF2804037700ED17BF /* AnchorPKStageView.m */; };
9B2EA7C32804052E00ED17BF /* AnchorPKMicroView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B2EA7C22804052E00ED17BF /* AnchorPKMicroView.m */; };
9B2EA7C628041EFC00ED17BF /* XPAnchorPkPanelView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B2EA7C528041EFC00ED17BF /* XPAnchorPkPanelView.m */; };
@@ -253,6 +252,7 @@
9BDA3E7D27FD47AB00517FE6 /* XPAnchorFansTeamPresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BDA3E7C27FD47AB00517FE6 /* XPAnchorFansTeamPresenter.m */; };
9BE29A6B27D1BFF700446AB5 /* anchor_room_speak.svga in Resources */ = {isa = PBXBuildFile; fileRef = 9BE29A6927D1BFF700446AB5 /* anchor_room_speak.svga */; };
9BE29A6D27D210A500446AB5 /* anchor_room_bg.svga in Resources */ = {isa = PBXBuildFile; fileRef = 9BE29A6C27D210A500446AB5 /* anchor_room_bg.svga */; };
9BE2FA90288010D300EF3D83 /* AnchorRoomSrollTipView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BE2FA8F288010D300EF3D83 /* AnchorRoomSrollTipView.m */; };
9BE9F0F927FED12D00667200 /* XPAnchorFansPrivilegeModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BE9F0F827FED12D00667200 /* XPAnchorFansPrivilegeModel.m */; };
9BE9F0FC27FED2E100667200 /* XPAnchorFansJoinModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BE9F0FB27FED2E100667200 /* XPAnchorFansJoinModel.m */; };
9BE9F0FF27FED76500667200 /* XPAnchorFansTaskModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BE9F0FE27FED76500667200 /* XPAnchorFansTaskModel.m */; };
@@ -1135,8 +1135,6 @@
9B2A12E027845DD300CED41B /* XPNobleCenterMyNobleView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPNobleCenterMyNobleView.m; sourceTree = "<group>"; };
9B2A12E227846D7100CED41B /* NobleRechargeModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NobleRechargeModel.h; sourceTree = "<group>"; };
9B2A12E327846D7100CED41B /* NobleRechargeModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NobleRechargeModel.m; sourceTree = "<group>"; };
9B2E9E64287D65F600927836 /* XPAnchorRoomCycleCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPAnchorRoomCycleCell.h; sourceTree = "<group>"; };
9B2E9E65287D65F600927836 /* XPAnchorRoomCycleCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPAnchorRoomCycleCell.m; sourceTree = "<group>"; };
9B2EA7BE2804037700ED17BF /* AnchorPKStageView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AnchorPKStageView.h; sourceTree = "<group>"; };
9B2EA7BF2804037700ED17BF /* AnchorPKStageView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AnchorPKStageView.m; sourceTree = "<group>"; };
9B2EA7C12804052E00ED17BF /* AnchorPKMicroView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AnchorPKMicroView.h; sourceTree = "<group>"; };
@@ -1353,6 +1351,8 @@
9BDA3E7F27FD480D00517FE6 /* XPAnchorFansTeamProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPAnchorFansTeamProtocol.h; sourceTree = "<group>"; };
9BE29A6927D1BFF700446AB5 /* anchor_room_speak.svga */ = {isa = PBXFileReference; lastKnownFileType = file; path = anchor_room_speak.svga; sourceTree = "<group>"; };
9BE29A6C27D210A500446AB5 /* anchor_room_bg.svga */ = {isa = PBXFileReference; lastKnownFileType = file; path = anchor_room_bg.svga; sourceTree = "<group>"; };
9BE2FA8E288010D300EF3D83 /* AnchorRoomSrollTipView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AnchorRoomSrollTipView.h; sourceTree = "<group>"; };
9BE2FA8F288010D300EF3D83 /* AnchorRoomSrollTipView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AnchorRoomSrollTipView.m; sourceTree = "<group>"; };
9BE9F0F727FED12D00667200 /* XPAnchorFansPrivilegeModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPAnchorFansPrivilegeModel.h; sourceTree = "<group>"; };
9BE9F0F827FED12D00667200 /* XPAnchorFansPrivilegeModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPAnchorFansPrivilegeModel.m; sourceTree = "<group>"; };
9BE9F0FA27FED2E100667200 /* XPAnchorFansJoinModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPAnchorFansJoinModel.h; sourceTree = "<group>"; };
@@ -3528,8 +3528,8 @@
children = (
9B7D904B287BC5E20033A45E /* AnchorRoomScrollView.h */,
9B7D904C287BC5E20033A45E /* AnchorRoomScrollView.m */,
9B2E9E64287D65F600927836 /* XPAnchorRoomCycleCell.h */,
9B2E9E65287D65F600927836 /* XPAnchorRoomCycleCell.m */,
9BE2FA8E288010D300EF3D83 /* AnchorRoomSrollTipView.h */,
9BE2FA8F288010D300EF3D83 /* AnchorRoomSrollTipView.m */,
);
path = AnchorCycleView;
sourceTree = "<group>";
@@ -7231,7 +7231,6 @@
E81C27A226EF23490031E639 /* XPEnum.h in Sources */,
E80E900C27E0358900434B90 /* XPRoomTopicAlertView.m in Sources */,
9BB54966278303EB0090CD26 /* XPNobleCenterNavView.m in Sources */,
9B2E9E66287D65F600927836 /* XPAnchorRoomCycleCell.m in Sources */,
9B92A36327980DCC00AD168F /* Api+SkillCard.m in Sources */,
E88B5CB526FB20B800DA9178 /* XPMineTeenagerPwdView.m in Sources */,
E8E859C128264C2300EE4857 /* MyHTTPConnection.m in Sources */,
@@ -7893,6 +7892,7 @@
E851E46827FF2141002F3ACB /* XPGuildSetNamePresenter.m in Sources */,
E81C1B2C27706E5C0020D1E4 /* ArrangeMicModel.m in Sources */,
9B1B729528002099003FACE9 /* XPMineFansTeamViewController.m in Sources */,
9BE2FA90288010D300EF3D83 /* AnchorRoomSrollTipView.m in Sources */,
E87E91522796A15500A7B3F2 /* MicroExtModel.m in Sources */,
E8788948273A55D000BF1D57 /* XPGiftBarView.m in Sources */,
9BA8A47227C5D590000365A3 /* XPVoiceCardCircleLayer.m in Sources */,

View File

@@ -0,0 +1,6 @@
{
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"filename" : "anchorLoading_000.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"filename" : "anchorLoading_001.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"filename" : "anchorLoading_002.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"filename" : "anchorLoading_003.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"filename" : "anchorLoading_004.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"filename" : "anchorLoading_005.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"filename" : "anchorLoading_006.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"filename" : "anchorLoading_007.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"filename" : "anchorLoading_008.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"filename" : "anchorLoading_009.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"filename" : "anchorLoading_010.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"filename" : "anchorLoading_011.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"filename" : "anchorLoading_012.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"filename" : "anchorLoading_013.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"filename" : "anchorLoading_014.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"filename" : "anchorLoading_015.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"filename" : "anchorLoading_016.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"filename" : "anchorLoading_017.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"filename" : "anchorLoading_018.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"filename" : "anchorLoading_019.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"filename" : "anchorLoading_020.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"filename" : "anchorLoading_021.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"filename" : "anchorLoading_022.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"filename" : "anchorLoading_023.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "anchor_scroll_tip@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "anchor_scroll_tip@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

View File

@@ -31,6 +31,11 @@ NS_ASSUME_NONNULL_BEGIN
*/
- (void)hideHUD;
/**
显示加载个播房loading
*/
- (void)showAnchorLoading;
@end
@interface BaseViewController : UIViewController<BaseViewControllerProtocol>

View File

@@ -97,7 +97,12 @@
[XCHUDTool hideHUD];
}
/**
loading
*/
- (void)showAnchorLoading {
[XCHUDTool showAnchorLoading];
}
#pragma mark -
///

View File

@@ -100,6 +100,11 @@ NS_ASSUME_NONNULL_BEGIN
*/
+ (void)showGIFLoadingInView:(nullable UIView *)view bgColor:(nullable UIColor *)bgColor enabled:(BOOL)enabled;
/**
加载下一个个播房
*/
+ (void)showAnchorLoading;
/**
在窗口上显示菊花
*/

View File

@@ -9,6 +9,7 @@
#import "XCHUDTool.h"
#import "GCDHelper.h"
#import <MBProgressHUD/MBProgressHUD.h>
#import "ThemeColor.h"
#define kDelayTime 2.5
@interface XCHUDTool ()
@@ -244,6 +245,21 @@ static NSArray * _animationImages = nil;
});
}
+ (void)showAnchorLoading {
UIView *view = [UIApplication sharedApplication].keyWindow;
dispatch_main_sync_safe(^{
MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:view animated:YES];
hud.bezelView.style = MBProgressHUDBackgroundStyleSolidColor;
hud.userInteractionEnabled = NO;
hud.mode = MBProgressHUDModeCustomView;
hud.minSize = CGSizeMake(240, 180 + 16 + 30);
[hud.bezelView addSubview:[self anchorSwitchLoadingView]];
hud.bezelView.color = [UIColor clearColor];
hud.removeFromSuperViewOnHide = YES;
});
}
#pragma mark - private
+ (MBProgressHUD *)normalProgressHUD:(UIView *)view {
MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:view animated:YES];
@@ -300,6 +316,47 @@ static NSArray * _animationImages = nil;
return array;
}
+ (UIView *)anchorSwitchLoadingView {
UIView *loadingBGView = [[UIView alloc] init];
loadingBGView.layer.cornerRadius = 20;
loadingBGView.backgroundColor = [UIColor clearColor];
UIImageView *loadingImageView = [[UIImageView alloc] init];
UILabel *loadingTitleLabel = [[UILabel alloc] init];
loadingTitleLabel = [[UILabel alloc] init];
loadingTitleLabel.textColor = UIColorFromRGB(0xC9BCF2);
loadingTitleLabel.font = [UIFont systemFontOfSize:16 weight:UIFontWeightMedium];
loadingTitleLabel.text = @"加载中…";
loadingTitleLabel.textAlignment = NSTextAlignmentCenter;
[loadingBGView addSubview:loadingImageView];
[loadingBGView addSubview:loadingTitleLabel];
loadingBGView.frame = CGRectMake(0,0,240,180 + 16 + 30);
loadingImageView.frame = CGRectMake(0, 0, 240, 180);
loadingTitleLabel.frame = CGRectMake(0, CGRectGetMaxY(loadingImageView.frame) + 8, loadingBGView.frame.size.width, 15);
loadingImageView.animationImages = [self loadingAnchorAnimationImages];
[loadingImageView startAnimating];
return loadingBGView;
}
+ (NSArray<UIImage *> *)loadingAnchorAnimationImages {
NSString * countString = @"00";
NSMutableArray * imageArray= [NSMutableArray array];
for (int i = 0; i <= 23; i++) {
if (i < 10) {
countString = [NSString stringWithFormat:@"0%d", i];
} else {
countString = [NSString stringWithFormat:@"%d", i];
}
NSString * loadingImageName = [NSString stringWithFormat:@"anchorLoading_0%@", countString];
UIImage * image = [UIImage imageNamed:loadingImageName];
[imageArray addObject:image];
}
NSArray * array = [imageArray copy];
return array;
}
+ (NSArray *)animationImages {
if (_animationImages == nil) {
_animationImages = [NSArray array];

View File

@@ -183,6 +183,12 @@ NS_ASSUME_NONNULL_BEGIN
///获取用户在房间中的信息
+ (void)requestUserInRoom:(HttpRequestHelperCompletion)completion uid:(NSString *)uid;
/// 获取下一个个播房
/// @param completion 完成
/// @param roomUid 当前房间uid
+ (void)requestNextAnchorRoom:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid;
@end
NS_ASSUME_NONNULL_END

View File

@@ -218,4 +218,12 @@
[self makeRequest:@"userroom/get" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, uid, nil];
}
///
/// @param completion
/// @param roomUid uid
+ (void)requestNextAnchorRoom:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid {
[self makeRequest:@"single/broadcast/room/page" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, roomUid, nil];
}
@end

View File

@@ -51,8 +51,8 @@ NS_ASSUME_NONNULL_BEGIN
- (void)getRoomSuperAdmin:(NSString *)roomUid;
///获取循环的推荐房间
/// @param roomId 房间的Id
- (void)getCycleAnchorRoomList:(NSString *)roomId;
/// @param roomUid 房间的uid
- (void)getCycleAnchorRoomList:(NSString *)roomUid;
@end

View File

@@ -204,20 +204,18 @@
}
///
/// @param roomId Id
- (void)getCycleAnchorRoomList:(NSString *)roomId {
[Api reqeustRecommendRoom:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
/// @param roomUid uid
- (void)getCycleAnchorRoomList:(NSString *)roomUid {
[Api requestNextAnchorRoom:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
if (code == 200) {
NSArray *array = [XPRoomRecommendModel modelsWithArray:data.data];
NSMutableArray *roomIdArray = [NSMutableArray array];
for (XPRoomRecommendModel *roomInfo in array) {
[roomIdArray addObject:[NSString stringWithFormat:@"%zd", roomInfo.uid]];
}
[[self getView] getCycleAnchorRoomListSuccess:roomIdArray];
RoomInfoModel * infoModel = [RoomInfoModel modelWithJSON:data.data];
NSLog(@"nextRoomUid:%ld", infoModel.uid);
[[self getView] getNextAnchorRoomSuccess:infoModel];
} else {
[[self getView] getCycleAnchorRoomListSuccess:@[]];
NSLog(@"getNextAnchorError");
[[self getView] getNextAnchorRoomSuccess:nil];
}
} roomId:roomId];
} roomUid:roomUid];
}
@end

View File

@@ -23,8 +23,8 @@ NS_ASSUME_NONNULL_BEGIN
- (void)enterRoomFail:(NSInteger)code;
///获取超管成功
- (void)getRoomSuperAdminScuccess:(NSArray *)list;
///获取循环的个播房列表成功
- (void)getCycleAnchorRoomListSuccess:(NSArray *)list;
///获取下一个个播房成功
- (void)getNextAnchorRoomSuccess:(RoomInfoModel *)roomInfo;
@end

View File

@@ -6,15 +6,14 @@
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
#import "NetImageView.h"
@class AnchorRoomScrollView;
@protocol AnchorRoomScrollViewDelegate <NSObject>
///滚动到下一个时回调
- (void)anchorScrollView:(AnchorRoomScrollView *)anchorScrollView currentPlayerIndex:(NSInteger)index;
- (void)anchorScrollViewScrollToNext:(AnchorRoomScrollView *)anchorScrollView;
///开始停止
- (void)anchorScrollVieStartScroll:(AnchorRoomScrollView *)anchorScrollView;
///滚动停止
@@ -25,14 +24,11 @@ NS_ASSUME_NONNULL_BEGIN
@interface AnchorRoomScrollView : UIScrollView
@property (nonatomic, assign) id<AnchorRoomScrollViewDelegate> anchorScrollDelegate;
@property (nonatomic, assign) NSInteger index;
@property (nonatomic, strong) UIImageView *upperImageView;
@property (nonatomic, strong) UIImageView *middleImageView;
@property (nonatomic, strong) NetImageView *middleImageView;
- (instancetype)initWithFrame:(CGRect)frame;
- (void)updateForLives:(NSMutableArray *)livesArray withCurrentIndex:(NSInteger) index;
- (void)updateForAnchorRoomList:(NSMutableArray *)roomArray;
@end
NS_ASSUME_NONNULL_END

View File

@@ -7,11 +7,12 @@
#import "AnchorRoomScrollView.h"
#import "XPMacro.h"
#import "RoomInfoModel.h"
@interface AnchorRoomScrollView()<UIScrollViewDelegate, UIGestureRecognizerDelegate>
@property (nonatomic, strong) NSMutableArray * lives;
@property (nonatomic, strong) UIImageView *downImageView;
@property (nonatomic, strong) NetImageView *downImageView;
@property (nonatomic, assign) NSInteger currentIndex;
@property (nonatomic, assign) BOOL canScroll;
@@ -33,42 +34,32 @@
self = [super initWithFrame:frame];
if(self)
{
self.contentSize = CGSizeMake(0, frame.size.height * 3);
self.contentOffset = CGPointMake(0, frame.size.height);
self.contentSize = CGSizeMake(0, frame.size.height * 2);
self.pagingEnabled = YES;
self.opaque = YES;
self.backgroundColor = [UIColor yellowColor];
self.showsHorizontalScrollIndicator = NO;
self.showsVerticalScrollIndicator = NO;
self.delegate = self;
self.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
self.tag = 1000;
self.alwaysBounceVertical = NO;
self.bounces = NO;
self.delaysContentTouches = NO;
// self.canCancelContentTouches = NO;
self.scrollsToTop = NO;
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(roomMessageTabelViewStopScroll) name:@"roomMessageTabelViewStopScroll" object:nil];
// image views
// blur effect
// UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark];
// blur view
// UIVisualEffectView *visualEffectViewUpper = [[UIVisualEffectView alloc] initWithEffect:blurEffect];
// UIVisualEffectView *visualEffectViewMiddle = [[UIVisualEffectView alloc] initWithEffect:blurEffect];
// UIVisualEffectView *visualEffectViewDown = [[UIVisualEffectView alloc] initWithEffect:blurEffect];
self.upperImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, frame.size.width, frame.size.height)];
self.middleImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, frame.size.height, frame.size.width, frame.size.height)];
self.downImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, frame.size.height*2, frame.size.width, frame.size.height)];
// add image views
[self addSubview:self.upperImageView];
NetImageConfig * config = [[NetImageConfig alloc] init];
config.placeHolder = [UIImage imageNamed:@"room_background"];
self.middleImageView = [[NetImageView alloc] initWithConfig:config];
self.middleImageView.frame = CGRectMake(0, 0, frame.size.width, frame.size.height);
self.middleImageView.contentMode = UIViewContentModeScaleAspectFill;
[self.middleImageView clipsToBounds];
self.downImageView = [[NetImageView alloc] initWithConfig:config];
self.downImageView.frame = CGRectMake(0, frame.size.height, frame.size.width, frame.size.height);
self.downImageView.contentMode = UIViewContentModeScaleAspectFill;
[self.downImageView clipsToBounds];
[self addSubview:self.middleImageView];
[self addSubview:self.downImageView];
// visualEffectViewUpper.frame = self.upperImageView.frame;
// [self addSubview:visualEffectViewUpper];
// visualEffectViewMiddle.frame = self.middleImageView.frame;
// [self addSubview:visualEffectViewMiddle];
// visualEffectViewDown.frame = self.downImageView.frame;
// [self addSubview:visualEffectViewDown];
}
return self;
@@ -78,128 +69,60 @@
self.scrollEnabled = YES;
}
- (void)updateForLives:(NSMutableArray *)livesArray withCurrentIndex:(NSInteger)index
- (void)updateForAnchorRoomList:(NSMutableArray *)livesArray
{
if (livesArray.count && [livesArray firstObject]) {
[self.lives removeAllObjects];
[self.lives addObjectsFromArray:livesArray];
self.currentIndex = index;
[self prepareForImageView:self.upperImageView];
[self prepareForImageView:self.middleImageView];
[self prepareForImageView:self.downImageView];
RoomInfoModel *roomInfo = self.lives[0];
self.middleImageView.imageUrl = roomInfo.backPic;
}
if (livesArray.count > 1) {
RoomInfoModel *roomInfo = self.lives[1];
self.downImageView.imageUrl = roomInfo.backPic;
}
self.scrollEnabled = livesArray.count > 1;
}
- (void) prepareForImageView: (UIImageView *)imageView {
imageView.image = [UIImage imageNamed:@"room_background"];
imageView.contentMode = UIViewContentModeScaleAspectFill;
}
- (void)switchPlayer:(UIScrollView*)scrollView
{
CGFloat offset = scrollView.contentOffset.y;
if (self.lives.count) {
if (offset >= 2*self.frame.size.height)
if (self.lives.count > 1) {
if (offset >= self.frame.size.height)
{
// slides to the down player
scrollView.contentOffset = CGPointMake(0, self.frame.size.height);
scrollView.contentOffset = CGPointMake(0, 0);
_currentIndex++;
self.upperImageView.image = self.middleImageView.image;
self.middleImageView.image = self.downImageView.image;
if (_currentIndex == self.lives.count)
{
_currentIndex = 0;
}
[self prepareForImageView:self.downImageView];
if (self.anchorScrollDelegate && [self.anchorScrollDelegate respondsToSelector:@selector(anchorScrollView:currentPlayerIndex:)]) {
[self.anchorScrollDelegate anchorScrollView:self currentPlayerIndex:_currentIndex];
if (self.lives.count > 1) {
RoomInfoModel *roomInfo = self.lives[1];
self.downImageView.imageUrl = roomInfo.backPic;
}
if (self.anchorScrollDelegate && [self.anchorScrollDelegate respondsToSelector:@selector(anchorScrollViewScrollToNext:)]) {
[self.anchorScrollDelegate anchorScrollViewScrollToNext:self];
}
}
else if (offset <= 0)
{
// slides to the upper player
scrollView.contentOffset = CGPointMake(0, self.frame.size.height);
_currentIndex--;
self.downImageView.image = self.middleImageView.image;
self.middleImageView.image = self.upperImageView.image;
if (_currentIndex == -1)
{
_currentIndex = self.lives.count-1;
}
[self prepareForImageView:self.upperImageView];
if (self.anchorScrollDelegate && [self.anchorScrollDelegate respondsToSelector:@selector(anchorScrollView:currentPlayerIndex:)]) {
[self.anchorScrollDelegate anchorScrollView:self currentPlayerIndex:_currentIndex];
}
} else {
// scrollView.contentOffset = CGPointMake(0, self.frame.size.height);
}
} else {
scrollView.contentOffset = CGPointMake(0, 0);
}
}
-(void)scrollViewDidScroll:(UIScrollView *)scrollView {
NSLog(@"anchorroomScrollView---%f", scrollView.contentOffset.y);
if (scrollView.contentOffset.y < KScreenHeight) {
scrollView.contentOffset = CGPointMake(0, KScreenHeight);
scrollView.scrollEnabled = NO;
return;
} else {
scrollView.scrollEnabled = YES;
if (scrollView.contentOffset.y == KScreenHeight) {
if (self.anchorScrollDelegate && [self.anchorScrollDelegate respondsToSelector:@selector(anchorScrollVieEndScroll:)]) {
[self.anchorScrollDelegate anchorScrollVieEndScroll:self];
}
}
}
if (scrollView.contentOffset.y > KScreenHeight) {
if (scrollView.contentOffset.y > 0) {
if (self.anchorScrollDelegate && [self.anchorScrollDelegate respondsToSelector:@selector(anchorScrollVieEndScroll:)]) {
[self.anchorScrollDelegate anchorScrollVieStartScroll:self];
}
} else if (scrollView.contentOffset.y == 0) {
if (self.anchorScrollDelegate && [self.anchorScrollDelegate respondsToSelector:@selector(anchorScrollVieEndScroll:)]) {
[self.anchorScrollDelegate anchorScrollVieEndScroll:self];
}
}
[self switchPlayer:scrollView];
//
// if (self.anchorScrollDelegate && [self.anchorScrollDelegate respondsToSelector:@selector(anchorScrollVieStartScroll:)]) {
// [self.anchorScrollDelegate anchorScrollVieStartScroll:self];
// }
}
- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView {
self.scrollEnabled = YES;
}
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {
scrollView.scrollEnabled = YES;
// if (self.anchorScrollDelegate && [self.anchorScrollDelegate respondsToSelector:@selector(anchorScrollVieEndScroll:)]) {
// [self.anchorScrollDelegate anchorScrollVieEndScroll:self];
// }
}
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
self.scrollEnabled = YES;
}
- (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
self.scrollEnabled = YES;
}
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
if (scrollView.contentOffset.y < KScreenHeight) {
// scrollView.contentOffset = CGPointMake(0, KScreenHeight);
// scrollView.scrollEnabled = NO;
return;
}
//
// if (self.anchorScrollDelegate && [self.anchorScrollDelegate respondsToSelector:@selector(anchorScrollVieStartScroll:)]) {
// [self.anchorScrollDelegate anchorScrollVieStartScroll:self];
// }
}
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
NSLog(@"endDecelerating--%f", scrollView.contentOffset.y);
self.scrollEnabled = YES;
}
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {

View File

@@ -0,0 +1,16 @@
//
// AnchorRoomSrollTipView.h
// xplan-ios
//
// Created by GreenLand on 2022/7/14.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface AnchorRoomSrollTipView : UIView
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,98 @@
//
// AnchorRoomSrollTipView.m
// xplan-ios
//
// Created by GreenLand on 2022/7/14.
//
#import "AnchorRoomSrollTipView.h"
///Third
#import <Masonry/Masonry.h>
///Tool
#import "ThemeColor.h"
#import "XPMacro.h"
@interface AnchorRoomSrollTipView()
@property (nonatomic, strong) UIView *bgView;
@property (nonatomic, strong) UIImageView *tipImageView;
@property (nonatomic, strong) UILabel *titleLabel;
@end
@implementation AnchorRoomSrollTipView
- (instancetype)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
[self initSubViews];
[self initSubViewConstraints];
}
return self;
}
#pragma mark - Response
- (void)onTapSkillTip:(UITapGestureRecognizer *)ges {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:@"isShow" forKey:@"kHadShowAnchorRoomTipKey"];
[defaults synchronize];
[self removeFromSuperview];
}
#pragma mark - Private Method
- (void)initSubViews {
[self addSubview:self.bgView];
[self addSubview:self.tipImageView];
[self addSubview:self.titleLabel];
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onTapSkillTip:)];
[self addGestureRecognizer:tap];
}
- (void)initSubViewConstraints {
[self.bgView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.mas_equalTo(0);
}];
[self.tipImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.mas_equalTo(self);
make.centerY.mas_equalTo(self).mas_offset(-40);
make.size.mas_equalTo(CGSizeMake(87, 92));
}];
[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.mas_equalTo(self);
make.top.mas_equalTo(self.tipImageView.mas_bottom).mas_offset(46);
make.left.right.mas_equalTo(0);
}];
}
- (UIView *)bgView {
if (!_bgView) {
_bgView = [[UIView alloc] init];
_bgView.backgroundColor = UIColorRGBAlpha(0x000000, 0.6);
}
return _bgView;
}
- (UIImageView *)tipImageView {
if (!_tipImageView) {
_tipImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"anchor_scroll_tip"]];
_tipImageView.contentMode = UIViewContentModeScaleAspectFit;
_tipImageView.userInteractionEnabled = YES;
}
return _tipImageView;
}
- (UILabel *)titleLabel {
if (!_titleLabel) {
_titleLabel = [[UILabel alloc] init];
_titleLabel.text = @"向上滑动发现更多精彩房间";
_titleLabel.font = [UIFont systemFontOfSize:20];
_titleLabel.textColor = [UIColor whiteColor];
_titleLabel.textAlignment = NSTextAlignmentCenter;
}
return _titleLabel;
}
@end

View File

@@ -1,18 +0,0 @@
//
// XPAnchorRoomCycleCell.h
// xplan-ios
//
// Created by GreenLand on 2022/7/12.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface XPAnchorRoomCycleCell : UICollectionViewCell
@property (weak, nonatomic) UIImageView *imageView;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,26 +0,0 @@
//
// XPAnchorRoomCycleCell.m
// xplan-ios
//
// Created by GreenLand on 2022/7/12.
//
#import "XPAnchorRoomCycleCell.h"
@implementation XPAnchorRoomCycleCell
- (instancetype)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:frame]) {
[self setupImageView];
self.imageView.frame = frame;
}
return self;
}
- (void)setupImageView {
UIImageView *imageView = [[UIImageView alloc] init];
_imageView = imageView;
[self.contentView addSubview:imageView];
}
@end

View File

@@ -9,8 +9,6 @@
///Third
#import <Masonry/Masonry.h>
#import <NIMSDK/NIMSDK.h>
#import <SDCycleScrollView/SDCycleScrollView.h>
#import "SDCollectionViewCell.h"
///Tool
#import "XPMacro.h"
#import "XPConstant.h"
@@ -50,7 +48,7 @@
#import "XPRoomSettingInputView.h"
#import "XPRoomLittleGameContainerView.h"
#import "AnchorRoomScrollView.h"
#import "XPAnchorRoomCycleCell.h"
#import "AnchorRoomSrollTipView.h"
///P
#import "XPRoomPresenter.h"
#import "XPRoomProtocol.h"
@@ -62,16 +60,14 @@
UIKIT_EXTERN NSString * const kRoomGiftEffectUpdateNotificationKey;
UIKIT_EXTERN NSString * const kRoomMiniNotificationKey;
NSString * const kHadShowAnchorRoomTipKey = @"kHadShowAnchorRoomTipKey";//
@interface XPRoomViewController ()<XPRoomProtocol, RoomHostDelegate, NIMChatroomManagerDelegate, NIMChatManagerDelegate, NIMConversationManagerDelegate, NIMLoginManagerDelegate, XPRoomSettingInputViewDelegate,XPRoomLittleGameContainerViewDelegate, AnchorRoomScrollViewDelegate, SDCycleScrollViewDelegate>
@interface XPRoomViewController ()<XPRoomProtocol, RoomHostDelegate, NIMChatroomManagerDelegate, NIMChatManagerDelegate, NIMConversationManagerDelegate, NIMLoginManagerDelegate, XPRoomSettingInputViewDelegate,XPRoomLittleGameContainerViewDelegate, AnchorRoomScrollViewDelegate>
///
@property (nonatomic,strong) XPRoomBackContainerView *backContainerView;
///view
@property (nonatomic, strong) AnchorRoomScrollView *anchorScrollView;
@property (nonatomic, strong) SDCycleScrollView *anchorCycleView;
///
@property (nonatomic, assign) int anchorScrollIndex;
///
@property (nonatomic,strong) RoomHeaderView *roomHeaderView;
///
@@ -110,9 +106,8 @@ UIKIT_EXTERN NSString * const kRoomMiniNotificationKey;
@property (nonatomic,assign) BOOL isMiniEnter;
///
@property (nonatomic, strong) NSMutableArray *cycleAnchorList;
///
@property (nonatomic, assign) BOOL hadGetAnchorList;
@property (nonatomic, assign) int anchorCycleIndex;
///
@property (nonatomic, strong) AnchorRoomSrollTipView *anchorScrollTipView;
@end
@@ -274,48 +269,41 @@ UIKIT_EXTERN NSString * const kRoomMiniNotificationKey;
}];
}
- (void)updateViewConstraintsOnAnchorRoomWithCell:(XPAnchorRoomCycleCell *)cell {
// [self.anchorCycleView mas_makeConstraints:^(MASConstraintMaker *make) {
// make.edges.mas_equalTo(self.view);
// }];
- (void)updateViewConstraintsOnAnchorRoom {
[self.anchorScrollView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.mas_equalTo(self.view);
}];
[self.backContainerView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.mas_equalTo(cell ? cell : self.anchorScrollView.middleImageView);
make.edges.mas_equalTo(self.anchorScrollView.middleImageView);
}];
[self.roomHeaderView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.mas_equalTo(cell ? cell : self.anchorScrollView.middleImageView);
make.left.right.top.mas_equalTo(self.anchorScrollView.middleImageView);
make.height.mas_equalTo(kNavigationHeight);
}];
[self.stageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.mas_equalTo(cell ? cell : self.anchorScrollView.middleImageView);
make.left.right.mas_equalTo(self.anchorScrollView.middleImageView);
make.top.mas_equalTo(self.roomHeaderView.mas_bottom);
make.height.mas_equalTo(self.stageView.hightForStageView);
}];
[self.messageContainerView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.stageView.mas_bottom);
// make.bottom.mas_equalTo(self.backContainerView);
make.bottom.mas_equalTo(self.backContainerView).mas_offset(-5-40-8-kSafeAreaBottomHeight);
make.left.equalTo(cell ? cell : self.anchorScrollView.middleImageView);
make.left.equalTo(self.anchorScrollView.middleImageView);
make.right.equalTo(self.activityContainerView.mas_left).offset(-10);
}];
[self.menuContainerView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.mas_equalTo(self.view);
make.bottom.mas_equalTo(-kSafeAreaBottomHeight- 8);
make.height.mas_equalTo(40);
}];
[self.activityContainerView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.messageContainerView);
make.right.mas_equalTo(cell ? cell : self.anchorScrollView.middleImageView);
// make.bottom.mas_equalTo(self.menuContainerView.mas_top).offset(-5);
make.right.mas_equalTo(self.anchorScrollView.middleImageView);
make.bottom.mas_equalTo(self.backContainerView).mas_offset(-5-40-8-kSafeAreaBottomHeight);
make.width.mas_equalTo(80);
}];
[self.functionView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.mas_equalTo(cell ? cell : self.anchorScrollView.middleImageView);
make.edges.mas_equalTo(self.anchorScrollView.middleImageView);
}];
}
@@ -466,7 +454,6 @@ UIKIT_EXTERN NSString * const kRoomMiniNotificationKey;
}];
[self.messageContainerView mas_remakeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.stageView.mas_bottom);
// make.bottom.mas_equalTo(self.menuContainerView.mas_top).offset(-5);
make.bottom.mas_equalTo(self.backContainerView).mas_offset(-5-40-8-kSafeAreaBottomHeight);
make.left.mas_equalTo(self.anchorScrollView.middleImageView);
make.right.mas_equalTo(self.activityContainerView.mas_left).offset(-10);
@@ -474,47 +461,11 @@ UIKIT_EXTERN NSString * const kRoomMiniNotificationKey;
[self.activityContainerView mas_remakeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.messageContainerView);
make.right.mas_equalTo(self.anchorScrollView.middleImageView);
// make.bottom.mas_equalTo(self.menuContainerView.mas_top).offset(-5);
make.bottom.mas_equalTo(self.backContainerView).mas_offset(-5-40-8-kSafeAreaBottomHeight);
make.width.mas_equalTo(80);
}];
}
- (void)changeStageViewOnAnchorRoomWithCell:(XPAnchorRoomCycleCell *)cell {
if (self.roomInfo.roomModeType == RoomModeType_Open_AcrossRoomPK_mode && ![self.stageView isKindOfClass:[AnchorPKStageView class]]) {
[self.stageView removeFromSuperview];
self.stageView = nil;
self.stageView = [[AnchorPKStageView alloc] initWithDelegate:self];
} else if(self.roomInfo.roomModeType == RoomModeType_Normal_Mode && ![self.stageView isKindOfClass:[AnchorStageView class]]) {
[self.stageView removeFromSuperview];
self.stageView = nil;
self.stageView = [[AnchorStageView alloc] initWithDelegate:self];
}
if (!self.stageView.superview) {
[cell insertSubview:self.stageView aboveSubview:self.backContainerView];
}
[self.stageView mas_remakeConstraints:^(MASConstraintMaker *make) {
// make.left.right.mas_equalTo(self.anchorScrollView.middleImageView);
make.left.right.mas_equalTo(cell);
make.top.mas_equalTo(self.roomHeaderView.mas_bottom);
make.height.mas_equalTo(self.stageView.hightForStageView);
}];
[self.messageContainerView mas_remakeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.stageView.mas_bottom);
make.bottom.mas_equalTo(self.menuContainerView.mas_top).offset(-5);
// make.left.mas_equalTo(self.anchorScrollView.middleImageView);
make.left.mas_equalTo(cell);
make.right.mas_equalTo(self.activityContainerView.mas_left).offset(-10);
}];
[self.activityContainerView mas_remakeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.messageContainerView);
// make.right.mas_equalTo(self.anchorScrollView.middleImageView);
make.right.mas_equalTo(cell);
make.bottom.mas_equalTo(self.menuContainerView.mas_top).offset(-5);
make.width.mas_equalTo(80);
}];
}
- (void)cancelRoomArrangeMic {
///退
if (self.roomInfo.roomModeType == RoomModeType_Open_Micro_Mode || self.roomInfo.roomModeType == RoomModeType_Open_Blind) {
@@ -605,6 +556,83 @@ UIKIT_EXTERN NSString * const kRoomMiniNotificationKey;
}
}
///
- (void)handleSuperManagerEnterAnchorRoom:(RoomInfoModel *)roomInfo {
__block BOOL isSuperAdmin = NO;
[self.superMangerList enumerateObjectsUsingBlock:^(GuildSuperAdminInfoModel * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
if ([obj.uid isEqualToString:[AccountInfoStorage instance].getUid]) {
isSuperAdmin = YES;
*stop = YES;
}
}];
if (!isSuperAdmin) {
XPRoomSettingInputView * titleView = [[XPRoomSettingInputView alloc] init];
titleView.maxCount = 15;
titleView.delegate = self;
titleView.type = RoomSettingInputType_Input_Pwd;
TTPopupConfig * config = [[TTPopupConfig alloc] init];
config.contentView = titleView;
config.maskBackgroundAlpha = 1;
config.shouldDismissOnBackgroundTouch = NO;
[TTPopup popupWithConfig:config];
} else {
self.roomInfo.datingState = roomInfo.roomModeType == RoomModeType_Open_Blind ? RoomDatingStateChangeType_Open : RoomDatingStateChangeType_Normal;
if (!self.anchorScrollView.superview) {
[self.view insertSubview:self.anchorScrollView belowSubview:self.menuContainerView];
}
[self.backContainerView removeFromSuperview];
[self.stageView removeFromSuperview];
[self.messageContainerView removeFromSuperview];
[self.activityContainerView removeFromSuperview];
[self.roomHeaderView removeFromSuperview];
[self.functionView removeFromSuperview];
[self.anchorScrollView addSubview:self.backContainerView];
[self.anchorScrollView addSubview:self.stageView];
[self.anchorScrollView addSubview:self.messageContainerView];
[self.anchorScrollView addSubview:self.activityContainerView];
[self.anchorScrollView addSubview:self.roomHeaderView];
[self.anchorScrollView addSubview:self.functionView];
if (!self.menuContainerView.superview) {
[self.view addSubview:self.menuContainerView];
}
[self updateViewConstraintsOnAnchorRoom];
[self changeStageViewOnAnchorRoom];
[self.roomHeaderView onRoomEntered];
[self.activityContainerView onRoomEntered];
[self.menuContainerView onRoomEntered];
[self.backContainerView onRoomEntered];
[self.littleGameView onRoomEntered];
if ([XPRoomMiniManager shareManager].getRoomInfo.uid != self.roomUid.integerValue) {// 退
[self.presenter enterNIMRoom:[NSString stringWithFormat:@"%ld", self.roomInfo.roomId] user:self.userInfo];
[self.functionView onRoomEntered];
[self.messageContainerView onRoomEntered];
} else {
//退
[self.stageView onRoomMiniEntered];
[self.messageContainerView onRoomMiniEntered];
[self.functionView onRoomMiniEntered];
[self.functionView onRoomEntered];
}
[[XPRoomMiniManager shareManager] configRoomInfo:nil];
[[XPRoomMiniManager shareManager] configUserInfo:nil];
[[XPRoomMiniManager shareManager] configCurrentMusic:nil isPlaying:NO];
}
}
///
- (void)showAnchorScrollTipView {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *anchoScrollTip = [defaults objectForKey:kHadShowAnchorRoomTipKey];
if (!anchoScrollTip) {
UIWindow *window = [UIApplication sharedApplication].delegate.window;
[window addSubview:self.anchorScrollTipView];
[window bringSubviewToFront:self.anchorScrollTipView];
}
}
#pragma mark -
- (void)myGiftEffectUpdate:(NSNotification *)notification {
NSDictionary * dic = notification.object;
@@ -621,12 +649,10 @@ UIKIT_EXTERN NSString * const kRoomMiniNotificationKey;
self.roomInfo = roomInfo;
self.userInfo = userInfo;
[self hideHUD];
if (!self.hadGetAnchorList && roomInfo.type == RoomType_Anchor) {///,
[self.presenter getCycleAnchorRoomList:[NSString stringWithFormat:@"%ld", self.roomInfo.roomId]];
self.hadGetAnchorList = YES;
return;
} else if (roomInfo.type == RoomType_Anchor) {
if (roomInfo.type == RoomType_Anchor) {//
[self handleInitAnchorRoom];
[self.presenter getCycleAnchorRoomList:[NSString stringWithFormat:@"%ld", self.roomInfo.uid]];
[self showAnchorScrollTipView];
return;
}
if (roomInfo.valid) { //
@@ -690,6 +716,8 @@ UIKIT_EXTERN NSString * const kRoomMiniNotificationKey;
self.roomInfo = roomInfo;
if (roomInfo.type == RoomType_Anchor) {
[self handleInitAnchorRoom];
[self.presenter getCycleAnchorRoomList:[NSString stringWithFormat:@"%ld", self.roomInfo.uid]];
[self showAnchorScrollTipView];
return;
}
[self changeStageViewOnRoomUpdate];
@@ -714,6 +742,7 @@ UIKIT_EXTERN NSString * const kRoomMiniNotificationKey;
}
- (void)enterRoomFail:(NSInteger)code {
[self hideHUD];
if (code == 13003) {
[self showErrorToast:@"您已被管理员拉黑"];
}
@@ -728,20 +757,18 @@ UIKIT_EXTERN NSString * const kRoomMiniNotificationKey;
}
///)
- (void)getCycleAnchorRoomListSuccess:(NSArray *)list {
[self.cycleAnchorList removeAllObjects];
// [self.cycleAnchorList addObjectsFromArray:list];
// if (!self.cycleAnchorList.count) {
[self.cycleAnchorList addObject:@"1005436"];
[self.cycleAnchorList addObject:@"1005437"];
// }
[self.cycleAnchorList insertObject:[NSString stringWithFormat:@"%zd", self.roomInfo.uid] atIndex:0];
[self.anchorScrollView updateForLives:self.cycleAnchorList withCurrentIndex:0];
[self handleInitAnchorRoom];
- (void)getNextAnchorRoomSuccess:(RoomInfoModel *)roomInfo {
[self.cycleAnchorList addObject:self.roomInfo];
if (roomInfo) {
[self.cycleAnchorList addObject:roomInfo];
}
//
[self.anchorScrollView updateForAnchorRoomList:self.cycleAnchorList];
}
///
- (void)handleInitAnchorRoom {
[self.anchorScrollView updateForAnchorRoomList:nil];
if (self.roomInfo.valid) { //
if (self.roomInfo.roomPwd.length > 0 && self.roomInfo.uid != [AccountInfoStorage instance].getUid.integerValue && [XPRoomMiniManager shareManager].getRoomInfo.uid != self.roomUid.integerValue) {//
if (!self.isRequestSuperAdmin) {
@@ -755,28 +782,6 @@ UIKIT_EXTERN NSString * const kRoomMiniNotificationKey;
}
} else {
self.roomInfo.datingState = self.roomInfo.roomModeType == RoomModeType_Open_Blind ? RoomDatingStateChangeType_Open : RoomDatingStateChangeType_Normal;
if (self.cycleAnchorList.count < 2) {///
[self changeStageViewOnRoomUpdate];
[self.roomHeaderView onRoomEntered];
[self.activityContainerView onRoomEntered];
[self.menuContainerView onRoomEntered];
[self.backContainerView onRoomEntered];
[self.littleGameView onRoomEntered];
if ([XPRoomMiniManager shareManager].getRoomInfo.uid != self.roomUid.integerValue) {// 退
[self.presenter enterNIMRoom:[NSString stringWithFormat:@"%ld", self.roomInfo.roomId] user:self.userInfo];
[self.functionView onRoomEntered];
[self.messageContainerView onRoomEntered];
} else {
//退
[self.stageView onRoomMiniEntered];
[self.messageContainerView onRoomMiniEntered];
[self.functionView onRoomMiniEntered];
[self.functionView onRoomEntered];
}
[[XPRoomMiniManager shareManager] configRoomInfo:nil];
[[XPRoomMiniManager shareManager] configUserInfo:nil];
[[XPRoomMiniManager shareManager] configCurrentMusic:nil isPlaying:NO];
} else {///
if (!self.anchorScrollView.superview) {
[self.view insertSubview:self.anchorScrollView belowSubview:self.menuContainerView];
}
@@ -793,9 +798,10 @@ UIKIT_EXTERN NSString * const kRoomMiniNotificationKey;
[self.anchorScrollView addSubview:self.activityContainerView];
[self.anchorScrollView addSubview:self.roomHeaderView];
[self.anchorScrollView addSubview:self.functionView];
[self.view addSubview:self.menuContainerView];
[self updateViewConstraintsOnAnchorRoomWithCell:nil];
if (!self.menuContainerView.superview) {
[self.view addSubview:self.menuContainerView];
}
[self updateViewConstraintsOnAnchorRoom];
[self changeStageViewOnAnchorRoom];
[self.roomHeaderView onRoomEntered];
@@ -817,7 +823,6 @@ UIKIT_EXTERN NSString * const kRoomMiniNotificationKey;
[[XPRoomMiniManager shareManager] configRoomInfo:nil];
[[XPRoomMiniManager shareManager] configUserInfo:nil];
[[XPRoomMiniManager shareManager] configCurrentMusic:nil isPlaying:NO];
}
}
} else { //
if ([self.roomUid isEqualToString:[NSString stringWithFormat:@"%ld", self.userInfo.uid]]) { //
@@ -842,92 +847,6 @@ UIKIT_EXTERN NSString * const kRoomMiniNotificationKey;
}
}
- (void)handleSuperManagerEnterAnchorRoom:(RoomInfoModel *)roomInfo {
__block BOOL isSuperAdmin = NO;
[self.superMangerList enumerateObjectsUsingBlock:^(GuildSuperAdminInfoModel * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
if ([obj.uid isEqualToString:[AccountInfoStorage instance].getUid]) {
isSuperAdmin = YES;
*stop = YES;
}
}];
if (!isSuperAdmin) {
XPRoomSettingInputView * titleView = [[XPRoomSettingInputView alloc] init];
titleView.maxCount = 15;
titleView.delegate = self;
titleView.type = RoomSettingInputType_Input_Pwd;
TTPopupConfig * config = [[TTPopupConfig alloc] init];
config.contentView = titleView;
config.maskBackgroundAlpha = 1;
config.shouldDismissOnBackgroundTouch = NO;
[TTPopup popupWithConfig:config];
} else {
self.roomInfo.datingState = roomInfo.roomModeType == RoomModeType_Open_Blind ? RoomDatingStateChangeType_Open : RoomDatingStateChangeType_Normal;
if (self.cycleAnchorList.count < 2) {///
[self changeStageViewOnRoomUpdate];
[self.roomHeaderView onRoomEntered];
[self.activityContainerView onRoomEntered];
[self.menuContainerView onRoomEntered];
[self.backContainerView onRoomEntered];
[self.littleGameView onRoomEntered];
if ([XPRoomMiniManager shareManager].getRoomInfo.uid != self.roomUid.integerValue) {// 退
[self.presenter enterNIMRoom:[NSString stringWithFormat:@"%ld", self.roomInfo.roomId] user:self.userInfo];
[self.functionView onRoomEntered];
[self.messageContainerView onRoomEntered];
} else {
//退
[self.stageView onRoomMiniEntered];
[self.messageContainerView onRoomMiniEntered];
[self.functionView onRoomMiniEntered];
[self.functionView onRoomEntered];
}
[[XPRoomMiniManager shareManager] configRoomInfo:nil];
[[XPRoomMiniManager shareManager] configUserInfo:nil];
[[XPRoomMiniManager shareManager] configCurrentMusic:nil isPlaying:NO];
} else {///
if (!self.anchorScrollView.superview) {
[self.view insertSubview:self.anchorScrollView belowSubview:self.menuContainerView];
}
[self.backContainerView removeFromSuperview];
[self.stageView removeFromSuperview];
[self.messageContainerView removeFromSuperview];
[self.activityContainerView removeFromSuperview];
[self.roomHeaderView removeFromSuperview];
[self.functionView removeFromSuperview];
[self.anchorScrollView addSubview:self.backContainerView];
[self.anchorScrollView addSubview:self.stageView];
[self.anchorScrollView addSubview:self.messageContainerView];
[self.anchorScrollView addSubview:self.activityContainerView];
[self.anchorScrollView addSubview:self.roomHeaderView];
[self.anchorScrollView addSubview:self.functionView];
[self.view addSubview:self.menuContainerView];
[self updateViewConstraintsOnAnchorRoomWithCell:nil];
[self changeStageViewOnAnchorRoom];
[self.roomHeaderView onRoomEntered];
[self.activityContainerView onRoomEntered];
[self.menuContainerView onRoomEntered];
[self.backContainerView onRoomEntered];
[self.littleGameView onRoomEntered];
if ([XPRoomMiniManager shareManager].getRoomInfo.uid != self.roomUid.integerValue) {// 退
[self.presenter enterNIMRoom:[NSString stringWithFormat:@"%ld", self.roomInfo.roomId] user:self.userInfo];
[self.functionView onRoomEntered];
[self.messageContainerView onRoomEntered];
} else {
//退
[self.stageView onRoomMiniEntered];
[self.messageContainerView onRoomMiniEntered];
[self.functionView onRoomMiniEntered];
[self.functionView onRoomEntered];
}
[[XPRoomMiniManager shareManager] configRoomInfo:nil];
[[XPRoomMiniManager shareManager] configUserInfo:nil];
[[XPRoomMiniManager shareManager] configCurrentMusic:nil isPlaying:NO];
}
}
}
#pragma mark - NIMChatroomManagerDelegate
- (void)chatroomBeKicked:(NIMChatroomBeKickedResult *)result {
if (result.reason == 2) {
@@ -1008,40 +927,31 @@ UIKIT_EXTERN NSString * const kRoomMiniNotificationKey;
}
//->->)
newRoomInfo.hadChangeRoomType = self.roomInfo.type != newRoomInfo.type;
BOOL anchorToOther = newRoomInfo.type != RoomType_Anchor && self.roomInfo.type == RoomType_Anchor;//
self.roomInfo = newRoomInfo;
[self.backContainerView onRoomUpdate];
if (self.roomInfo.type == RoomType_Anchor && self.roomInfo.hadChangeRoomType) {///
[self handleInitAnchorRoom];
// if (self.anchorCycleView.superview) {
//
// } else {
// for (UIView *subViews in self.view.subviews) {
// [subViews removeFromSuperview];
// }
// [self.view addSubview:self.anchorCycleView];
// [self.anchorScrollView.upperImageView addSubview:self.backContainerView];
// [self.anchorScrollView.upperImageView addSubview:self.stageView];
// [self.anchorScrollView.upperImageView addSubview:self.messageContainerView];
// [self.anchorScrollView.upperImageView addSubview:self.menuContainerView];
// [self.anchorScrollView.upperImageView addSubview:self.activityContainerView];
// [self.anchorScrollView.upperImageView addSubview:self.roomHeaderView];
// [self.anchorScrollView.upperImageView addSubview:self.functionView];
// [self.anchorScrollView.upperImageView addSubview:self.animationView];
// [self updateViewConstraintsOnAnchorRoom];
// [self changeStageViewOnAnchorRoom];
// }
// [self.anchorScrollView updateForLives:@[@"123", @"234"] withCurrentIndex:0];
// [self.anchorScrollView.upperImageView addSubview:self.backContainerView];
// [self.anchorScrollView.upperImageView addSubview:self.stageView];
// [self.anchorScrollView.upperImageView addSubview:self.messageContainerView];
// [self.anchorScrollView.upperImageView addSubview:self.menuContainerView];
// [self.anchorScrollView.upperImageView addSubview:self.activityContainerView];
// [self.anchorScrollView.upperImageView addSubview:self.roomHeaderView];
// [self.anchorScrollView.upperImageView addSubview:self.functionView];
// [self.anchorScrollView.upperImageView addSubview:self.animationView];
// [self updateViewConstraintsOnAnchorRoomWithCell:nil];
// [self changeStageViewOnAnchorRoom];
} else {
[self.presenter getCycleAnchorRoomList:[NSString stringWithFormat:@"%ld", self.roomInfo.roomId]];
[self showAnchorScrollTipView];
} else if (anchorToOther) {
[self.anchorScrollView removeFromSuperview];
[self.backContainerView removeFromSuperview];
[self.stageView removeFromSuperview];
[self.messageContainerView removeFromSuperview];
[self.activityContainerView removeFromSuperview];
[self.roomHeaderView removeFromSuperview];
[self.functionView removeFromSuperview];
[self.view addSubview:self.backContainerView];
[self.view addSubview:self.stageView];
[self.view addSubview:self.messageContainerView];
[self.view addSubview:self.activityContainerView];
[self.view addSubview:self.roomHeaderView];
[self.view addSubview:self.functionView];
[self.view bringSubviewToFront:self.menuContainerView];
[self.view bringSubviewToFront:self.animationView];
[self initSubViewConstraints];
[self changeStageViewOnRoomUpdate];
[self.stageView onRoomUpdate];
[self.menuContainerView onRoomUpdate];
@@ -1049,6 +959,18 @@ UIKIT_EXTERN NSString * const kRoomMiniNotificationKey;
[self.activityContainerView onRoomUpdate];
[self.messageContainerView onRoomUpdate];
[self.littleGameView onRoomUpdate];
} else {
if (self.roomInfo.type == RoomType_Anchor) {
[self changeStageViewOnAnchorRoom];
} else {
[self changeStageViewOnRoomUpdate];
}
[self.stageView onRoomUpdate];
[self.menuContainerView onRoomUpdate];
[self.functionView onRoomUpdate];
[self.activityContainerView onRoomUpdate];
[self.messageContainerView onRoomUpdate];
[self.littleGameView onRoomUpdate];
}
}
break;
@@ -1383,30 +1305,34 @@ UIKIT_EXTERN NSString * const kRoomMiniNotificationKey;
}
#pragma mark - AnchorRoomScrollViewDelegate
- (void)anchorScrollView:(AnchorRoomScrollView *)anchorScrollView currentPlayerIndex:(NSInteger)index {
- (void)anchorScrollViewScrollToNext:(AnchorRoomScrollView *)anchorScrollView {
if (!self) {
return;
}
if (self.anchorScrollIndex == index) {
return;
}
[self.view endEditing:YES];
[self.anchorScrollView updateForAnchorRoomList:nil];
[self showAnchorLoading];
//1退
self.isRequestSuperAdmin = NO;
self.anchorScrollIndex = index;
[self showLoading];
[self exitOldRoom];
// [self exitRoom];
[self.presenter exitNIMRoom:[NSString stringWithFormat:@"%ld", self.roomInfo.roomId]];
[[XPRoomMiniManager shareManager] resetLocalMessage];
[[RtcManager instance] exitRoom];
[self.presenter reportUserOutRoom:[NSString stringWithFormat:@"%ld", self.roomInfo.uid]];
[self.messageContainerView removeFromSuperview];
self.messageContainerView = nil;
//2
[self.backContainerView removeFromSuperview];
[self.stageView removeFromSuperview];
[self.messageContainerView removeFromSuperview];
[self.activityContainerView removeFromSuperview];
[self.roomHeaderView removeFromSuperview];
[self.functionView removeFromSuperview];
self.messageContainerView = nil;
self.stageView = nil;
[self.menuContainerView removeFromSuperview];
self.menuContainerView = nil;
self.roomUid = self.cycleAnchorList[index];
//3
RoomInfoModel *roomInfo = [self.cycleAnchorList lastObject];
self.roomUid = [NSString stringWithFormat:@"%zd", roomInfo.uid];
[self.presenter initEnterRoom:self.roomUid user:[AccountInfoStorage instance].getUid];
///
[self.presenter getNormalGiftList:self.roomUid];
@@ -1431,81 +1357,6 @@ UIKIT_EXTERN NSString * const kRoomMiniNotificationKey;
}];
}
#pragma mark - SDCycleScrollViewDelegate
- (void)cycleScrollView:(SDCycleScrollView *)cycleScrollView didScrollToIndex:(NSInteger)index {
if (self.anchorCycleIndex == index) {
return;
}
self.anchorCycleIndex = index;
[self exitOldRoom];
// [self exitRoom];
// [self.backContainerView removeFromSuperview];
// [self.stageView removeFromSuperview];
// [self.messageContainerView removeFromSuperview];
// [self.activityContainerView removeFromSuperview];
// [self.roomHeaderView removeFromSuperview];
// [self.functionView removeFromSuperview];
// XPAnchorRoomCycleCell *cell;
// for (UIView *view in cycleScrollView.subviews) {
// if ([view isKindOfClass:[UICollectionView class]]) {
// UICollectionView *collectionView = (UICollectionView *)view;
// XPAnchorRoomCycleCell *anchorCell = (XPAnchorRoomCycleCell *)[collectionView cellForItemAtIndexPath:[NSIndexPath indexPathWithIndex:self.anchorCycleIndex]];
// cell = anchorCell;
// }
// }
[self.presenter exitNIMRoom:[NSString stringWithFormat:@"%ld", self.roomInfo.roomId]];
[[XPRoomMiniManager shareManager] resetLocalMessage];
[[RtcManager instance] exitRoom];
[self.presenter reportUserOutRoom:[NSString stringWithFormat:@"%ld", self.roomInfo.uid]];
[self.messageContainerView removeFromSuperview];
self.messageContainerView = nil;
[self.stageView removeFromSuperview];
self.stageView = nil;
self.roomUid = self.cycleAnchorList[index];
[self.presenter initEnterRoom:self.roomUid user:[AccountInfoStorage instance].getUid];
///
[self.presenter getNormalGiftList:self.roomUid];
///
[self.presenter getRoomSuperAdmin:self.roomUid];
}
/** cellcellclass */
- (Class)customCollectionViewCellClassForCycleScrollView:(SDCycleScrollView *)view {
return [XPAnchorRoomCycleCell class];
}
/** cellcell */
- (void)setupCustomCell:(XPAnchorRoomCycleCell *)cell forIndex:(NSInteger)index cycleScrollView:(SDCycleScrollView *)view {
cell.imageView.image = [UIImage imageNamed:@"room_background"];
if (index == 0 && !self.backContainerView.superview) {
// for (UIView *view in self.anchorCycleView.subviews) {
// if ([view isKindOfClass:[UICollectionView class]]) {
// UICollectionView *collectionView = (UICollectionView *)view;
// XPAnchorRoomCycleCell *anchorCell = (XPAnchorRoomCycleCell *)[collectionView cellForItemAtIndexPath:[NSIndexPath indexPathWithIndex:self.anchorCycleIndex]];
// cell = anchorCell;
// }
// }
// if (cell) {
[cell addSubview:self.backContainerView];
[cell addSubview:self.stageView];
[cell addSubview:self.messageContainerView];
[cell addSubview:self.activityContainerView];
[cell addSubview:self.roomHeaderView];
[cell addSubview:self.functionView];
[self updateViewConstraintsOnAnchorRoomWithCell:cell];
// [self changeStageViewOnAnchorRoomWithCell:cell];
} else {
// [self.backContainerView removeFromSuperview];
// [self.stageView removeFromSuperview];
// [self.messageContainerView removeFromSuperview];
// [self.activityContainerView removeFromSuperview];
// [self.roomHeaderView removeFromSuperview];
// [self.functionView removeFromSuperview];
}
}
#pragma mark - XPRoomSettingInputViewDelegate
///
- (void)xPRoomSettingInputView:(XPRoomSettingInputView *)view didClickConfirm:(NSString *)text type:(RoomSettingInputType)type {
@@ -1514,69 +1365,48 @@ UIKIT_EXTERN NSString * const kRoomMiniNotificationKey;
[TTPopup dismiss];
view.isPwdError = NO;
if (self.roomInfo.type == RoomType_Anchor) {
if (self.cycleAnchorList.count < 2) {//
[self changeStageViewOnRoomUpdate];
[self.roomHeaderView onRoomEntered];
[self.activityContainerView onRoomEntered];
[self.menuContainerView onRoomEntered];
[self.backContainerView onRoomEntered];
[self.littleGameView onRoomEntered];
if ([XPRoomMiniManager shareManager].getRoomInfo.uid != self.roomUid.integerValue) {// 退
[self.presenter enterNIMRoom:[NSString stringWithFormat:@"%ld", self.roomInfo.roomId] user:self.userInfo];
[self.functionView onRoomEntered];
[self.messageContainerView onRoomEntered];
} else {
//退
[self.stageView onRoomMiniEntered];
[self.messageContainerView onRoomMiniEntered];
[self.functionView onRoomMiniEntered];
[self.functionView onRoomEntered];
}
[[XPRoomMiniManager shareManager] configRoomInfo:nil];
[[XPRoomMiniManager shareManager] configUserInfo:nil];
[[XPRoomMiniManager shareManager] configCurrentMusic:nil isPlaying:NO];
} else {//
if (!self.anchorScrollView.superview) {
[self.view insertSubview:self.anchorScrollView belowSubview:self.menuContainerView];
}
[self.backContainerView removeFromSuperview];
[self.stageView removeFromSuperview];
[self.messageContainerView removeFromSuperview];
[self.activityContainerView removeFromSuperview];
[self.roomHeaderView removeFromSuperview];
[self.functionView removeFromSuperview];
[self.anchorScrollView addSubview:self.backContainerView];
[self.anchorScrollView addSubview:self.stageView];
[self.anchorScrollView addSubview:self.messageContainerView];
[self.anchorScrollView addSubview:self.activityContainerView];
[self.anchorScrollView addSubview:self.roomHeaderView];
[self.anchorScrollView addSubview:self.functionView];
[self.view addSubview:self.menuContainerView];
[self updateViewConstraintsOnAnchorRoomWithCell:nil];
[self changeStageViewOnAnchorRoom];
[self.roomHeaderView onRoomEntered];
[self.activityContainerView onRoomEntered];
[self.menuContainerView onRoomEntered];
[self.backContainerView onRoomEntered];
[self.littleGameView onRoomEntered];
if ([XPRoomMiniManager shareManager].getRoomInfo.uid != self.roomUid.integerValue) {// 退
[self.presenter enterNIMRoom:[NSString stringWithFormat:@"%ld", self.roomInfo.roomId] user:self.userInfo];
[self.functionView onRoomEntered];
[self.messageContainerView onRoomEntered];
} else {
//退
[self.stageView onRoomMiniEntered];
[self.messageContainerView onRoomMiniEntered];
[self.functionView onRoomMiniEntered];
[self.functionView onRoomEntered];
}
[[XPRoomMiniManager shareManager] configRoomInfo:nil];
[[XPRoomMiniManager shareManager] configUserInfo:nil];
[[XPRoomMiniManager shareManager] configCurrentMusic:nil isPlaying:NO];
if (!self.anchorScrollView.superview) {
[self.view insertSubview:self.anchorScrollView belowSubview:self.menuContainerView];
}
[self.backContainerView removeFromSuperview];
[self.stageView removeFromSuperview];
[self.messageContainerView removeFromSuperview];
[self.activityContainerView removeFromSuperview];
[self.roomHeaderView removeFromSuperview];
[self.functionView removeFromSuperview];
[self.anchorScrollView addSubview:self.backContainerView];
[self.anchorScrollView addSubview:self.stageView];
[self.anchorScrollView addSubview:self.messageContainerView];
[self.anchorScrollView addSubview:self.activityContainerView];
[self.anchorScrollView addSubview:self.roomHeaderView];
[self.anchorScrollView addSubview:self.functionView];
if (!self.menuContainerView.superview) {
[self.view addSubview:self.menuContainerView];
}
[self updateViewConstraintsOnAnchorRoom];
[self changeStageViewOnAnchorRoom];
[self.roomHeaderView onRoomEntered];
[self.activityContainerView onRoomEntered];
[self.menuContainerView onRoomEntered];
[self.backContainerView onRoomEntered];
[self.littleGameView onRoomEntered];
if ([XPRoomMiniManager shareManager].getRoomInfo.uid != self.roomUid.integerValue) {// 退
[self.presenter enterNIMRoom:[NSString stringWithFormat:@"%ld", self.roomInfo.roomId] user:self.userInfo];
[self.functionView onRoomEntered];
[self.messageContainerView onRoomEntered];
} else {
//退
[self.stageView onRoomMiniEntered];
[self.messageContainerView onRoomMiniEntered];
[self.functionView onRoomMiniEntered];
[self.functionView onRoomEntered];
}
[[XPRoomMiniManager shareManager] configRoomInfo:nil];
[[XPRoomMiniManager shareManager] configUserInfo:nil];
[[XPRoomMiniManager shareManager] configCurrentMusic:nil isPlaying:NO];
} else {
[self.roomHeaderView onRoomEntered];
[self.activityContainerView onRoomEntered];
@@ -1670,7 +1500,6 @@ UIKIT_EXTERN NSString * const kRoomMiniNotificationKey;
if (!_anchorScrollView) {
_anchorScrollView = [[AnchorRoomScrollView alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, KScreenHeight)];
_anchorScrollView.anchorScrollDelegate = self;
_anchorScrollView.index = self.anchorScrollIndex;
}
return _anchorScrollView;
}
@@ -1682,18 +1511,12 @@ UIKIT_EXTERN NSString * const kRoomMiniNotificationKey;
return _cycleAnchorList;
}
- (SDCycleScrollView *)anchorCycleView {
if (!_anchorCycleView) {
_anchorCycleView = [SDCycleScrollView cycleScrollViewWithFrame:self.view.frame delegate:self placeholderImage:[UIImage imageNamed:@"room_background"]];
// + (instancetype)cycleScrollViewWithFrame:(CGRect)frame delegate:(id<SDCycleScrollViewDelegate>)delegate placeholderImage:(UIImage *)placeholderImage;
_anchorCycleView.backgroundColor = [UIColor clearColor];
_anchorCycleView.delegate = self;
_anchorCycleView.showPageControl = NO;
_anchorCycleView.scrollDirection = UICollectionViewScrollDirectionVertical;
_anchorCycleView.autoScroll = NO;
_anchorCycleView.imageURLStringsGroup = @[@"room_background"];
- (AnchorRoomSrollTipView *)anchorScrollTipView {
if (!_anchorScrollTipView) {
_anchorScrollTipView = [[AnchorRoomSrollTipView alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, KScreenHeight)];
}
return _anchorCycleView;
return _anchorScrollTipView;
}
@end