个播房上划加载下一个房间完成
@@ -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 */,
|
||||
|
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
21
xplan-ios/Assets.xcassets/Room/Anchor/Loading/anchorLoading_000.imageset/Contents.json
vendored
Normal 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
|
||||
}
|
||||
}
|
BIN
xplan-ios/Assets.xcassets/Room/Anchor/Loading/anchorLoading_000.imageset/anchorLoading_000.png
vendored
Normal file
After Width: | Height: | Size: 10 KiB |
21
xplan-ios/Assets.xcassets/Room/Anchor/Loading/anchorLoading_001.imageset/Contents.json
vendored
Normal 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
|
||||
}
|
||||
}
|
BIN
xplan-ios/Assets.xcassets/Room/Anchor/Loading/anchorLoading_001.imageset/anchorLoading_001.png
vendored
Normal file
After Width: | Height: | Size: 9.8 KiB |
21
xplan-ios/Assets.xcassets/Room/Anchor/Loading/anchorLoading_002.imageset/Contents.json
vendored
Normal 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
|
||||
}
|
||||
}
|
BIN
xplan-ios/Assets.xcassets/Room/Anchor/Loading/anchorLoading_002.imageset/anchorLoading_002.png
vendored
Normal file
After Width: | Height: | Size: 9.9 KiB |
21
xplan-ios/Assets.xcassets/Room/Anchor/Loading/anchorLoading_003.imageset/Contents.json
vendored
Normal 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
|
||||
}
|
||||
}
|
BIN
xplan-ios/Assets.xcassets/Room/Anchor/Loading/anchorLoading_003.imageset/anchorLoading_003.png
vendored
Normal file
After Width: | Height: | Size: 10 KiB |
21
xplan-ios/Assets.xcassets/Room/Anchor/Loading/anchorLoading_004.imageset/Contents.json
vendored
Normal 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
|
||||
}
|
||||
}
|
BIN
xplan-ios/Assets.xcassets/Room/Anchor/Loading/anchorLoading_004.imageset/anchorLoading_004.png
vendored
Normal file
After Width: | Height: | Size: 9.9 KiB |
21
xplan-ios/Assets.xcassets/Room/Anchor/Loading/anchorLoading_005.imageset/Contents.json
vendored
Normal 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
|
||||
}
|
||||
}
|
BIN
xplan-ios/Assets.xcassets/Room/Anchor/Loading/anchorLoading_005.imageset/anchorLoading_005.png
vendored
Normal file
After Width: | Height: | Size: 9.5 KiB |
21
xplan-ios/Assets.xcassets/Room/Anchor/Loading/anchorLoading_006.imageset/Contents.json
vendored
Normal 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
|
||||
}
|
||||
}
|
BIN
xplan-ios/Assets.xcassets/Room/Anchor/Loading/anchorLoading_006.imageset/anchorLoading_006.png
vendored
Normal file
After Width: | Height: | Size: 9.2 KiB |
21
xplan-ios/Assets.xcassets/Room/Anchor/Loading/anchorLoading_007.imageset/Contents.json
vendored
Normal 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
|
||||
}
|
||||
}
|
BIN
xplan-ios/Assets.xcassets/Room/Anchor/Loading/anchorLoading_007.imageset/anchorLoading_007.png
vendored
Normal file
After Width: | Height: | Size: 9.1 KiB |
21
xplan-ios/Assets.xcassets/Room/Anchor/Loading/anchorLoading_008.imageset/Contents.json
vendored
Normal 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
|
||||
}
|
||||
}
|
BIN
xplan-ios/Assets.xcassets/Room/Anchor/Loading/anchorLoading_008.imageset/anchorLoading_008.png
vendored
Normal file
After Width: | Height: | Size: 9.6 KiB |
21
xplan-ios/Assets.xcassets/Room/Anchor/Loading/anchorLoading_009.imageset/Contents.json
vendored
Normal 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
|
||||
}
|
||||
}
|
BIN
xplan-ios/Assets.xcassets/Room/Anchor/Loading/anchorLoading_009.imageset/anchorLoading_009.png
vendored
Normal file
After Width: | Height: | Size: 9.8 KiB |
21
xplan-ios/Assets.xcassets/Room/Anchor/Loading/anchorLoading_010.imageset/Contents.json
vendored
Normal 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
|
||||
}
|
||||
}
|
BIN
xplan-ios/Assets.xcassets/Room/Anchor/Loading/anchorLoading_010.imageset/anchorLoading_010.png
vendored
Normal file
After Width: | Height: | Size: 10 KiB |
21
xplan-ios/Assets.xcassets/Room/Anchor/Loading/anchorLoading_011.imageset/Contents.json
vendored
Normal 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
|
||||
}
|
||||
}
|
BIN
xplan-ios/Assets.xcassets/Room/Anchor/Loading/anchorLoading_011.imageset/anchorLoading_011.png
vendored
Normal file
After Width: | Height: | Size: 10 KiB |
21
xplan-ios/Assets.xcassets/Room/Anchor/Loading/anchorLoading_012.imageset/Contents.json
vendored
Normal 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
|
||||
}
|
||||
}
|
BIN
xplan-ios/Assets.xcassets/Room/Anchor/Loading/anchorLoading_012.imageset/anchorLoading_012.png
vendored
Normal file
After Width: | Height: | Size: 10 KiB |
21
xplan-ios/Assets.xcassets/Room/Anchor/Loading/anchorLoading_013.imageset/Contents.json
vendored
Normal 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
|
||||
}
|
||||
}
|
BIN
xplan-ios/Assets.xcassets/Room/Anchor/Loading/anchorLoading_013.imageset/anchorLoading_013.png
vendored
Normal file
After Width: | Height: | Size: 10 KiB |
21
xplan-ios/Assets.xcassets/Room/Anchor/Loading/anchorLoading_014.imageset/Contents.json
vendored
Normal 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
|
||||
}
|
||||
}
|
BIN
xplan-ios/Assets.xcassets/Room/Anchor/Loading/anchorLoading_014.imageset/anchorLoading_014.png
vendored
Normal file
After Width: | Height: | Size: 9.7 KiB |
21
xplan-ios/Assets.xcassets/Room/Anchor/Loading/anchorLoading_015.imageset/Contents.json
vendored
Normal 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
|
||||
}
|
||||
}
|
BIN
xplan-ios/Assets.xcassets/Room/Anchor/Loading/anchorLoading_015.imageset/anchorLoading_015.png
vendored
Normal file
After Width: | Height: | Size: 9.4 KiB |
21
xplan-ios/Assets.xcassets/Room/Anchor/Loading/anchorLoading_016.imageset/Contents.json
vendored
Normal 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
|
||||
}
|
||||
}
|
BIN
xplan-ios/Assets.xcassets/Room/Anchor/Loading/anchorLoading_016.imageset/anchorLoading_016.png
vendored
Normal file
After Width: | Height: | Size: 9.2 KiB |
21
xplan-ios/Assets.xcassets/Room/Anchor/Loading/anchorLoading_017.imageset/Contents.json
vendored
Normal 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
|
||||
}
|
||||
}
|
BIN
xplan-ios/Assets.xcassets/Room/Anchor/Loading/anchorLoading_017.imageset/anchorLoading_017.png
vendored
Normal file
After Width: | Height: | Size: 9.2 KiB |
21
xplan-ios/Assets.xcassets/Room/Anchor/Loading/anchorLoading_018.imageset/Contents.json
vendored
Normal 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
|
||||
}
|
||||
}
|
BIN
xplan-ios/Assets.xcassets/Room/Anchor/Loading/anchorLoading_018.imageset/anchorLoading_018.png
vendored
Normal file
After Width: | Height: | Size: 9.7 KiB |
21
xplan-ios/Assets.xcassets/Room/Anchor/Loading/anchorLoading_019.imageset/Contents.json
vendored
Normal 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
|
||||
}
|
||||
}
|
BIN
xplan-ios/Assets.xcassets/Room/Anchor/Loading/anchorLoading_019.imageset/anchorLoading_019.png
vendored
Normal file
After Width: | Height: | Size: 9.9 KiB |
21
xplan-ios/Assets.xcassets/Room/Anchor/Loading/anchorLoading_020.imageset/Contents.json
vendored
Normal 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
|
||||
}
|
||||
}
|
BIN
xplan-ios/Assets.xcassets/Room/Anchor/Loading/anchorLoading_020.imageset/anchorLoading_020.png
vendored
Normal file
After Width: | Height: | Size: 10 KiB |
21
xplan-ios/Assets.xcassets/Room/Anchor/Loading/anchorLoading_021.imageset/Contents.json
vendored
Normal 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
|
||||
}
|
||||
}
|
BIN
xplan-ios/Assets.xcassets/Room/Anchor/Loading/anchorLoading_021.imageset/anchorLoading_021.png
vendored
Normal file
After Width: | Height: | Size: 10 KiB |
21
xplan-ios/Assets.xcassets/Room/Anchor/Loading/anchorLoading_022.imageset/Contents.json
vendored
Normal 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
|
||||
}
|
||||
}
|
BIN
xplan-ios/Assets.xcassets/Room/Anchor/Loading/anchorLoading_022.imageset/anchorLoading_022.png
vendored
Normal file
After Width: | Height: | Size: 10 KiB |
21
xplan-ios/Assets.xcassets/Room/Anchor/Loading/anchorLoading_023.imageset/Contents.json
vendored
Normal 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
|
||||
}
|
||||
}
|
BIN
xplan-ios/Assets.xcassets/Room/Anchor/Loading/anchorLoading_023.imageset/anchorLoading_023.png
vendored
Normal file
After Width: | Height: | Size: 10 KiB |
22
xplan-ios/Assets.xcassets/Room/Anchor/anchor_scroll_tip.imageset/Contents.json
vendored
Normal 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
|
||||
}
|
||||
}
|
BIN
xplan-ios/Assets.xcassets/Room/Anchor/anchor_scroll_tip.imageset/anchor_scroll_tip@2x.png
vendored
Normal file
After Width: | Height: | Size: 5.2 KiB |
BIN
xplan-ios/Assets.xcassets/Room/Anchor/anchor_scroll_tip.imageset/anchor_scroll_tip@3x.png
vendored
Normal file
After Width: | Height: | Size: 6.6 KiB |
@@ -31,6 +31,11 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
*/
|
||||
- (void)hideHUD;
|
||||
|
||||
/**
|
||||
显示加载个播房loading
|
||||
*/
|
||||
- (void)showAnchorLoading;
|
||||
|
||||
@end
|
||||
|
||||
@interface BaseViewController : UIViewController<BaseViewControllerProtocol>
|
||||
|
@@ -97,7 +97,12 @@
|
||||
[XCHUDTool hideHUD];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
显示加载个播房loading
|
||||
*/
|
||||
- (void)showAnchorLoading {
|
||||
[XCHUDTool showAnchorLoading];
|
||||
}
|
||||
#pragma mark - 导航栏添加操作按钮
|
||||
|
||||
/// 添加图片
|
||||
|
@@ -100,6 +100,11 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
*/
|
||||
+ (void)showGIFLoadingInView:(nullable UIView *)view bgColor:(nullable UIColor *)bgColor enabled:(BOOL)enabled;
|
||||
|
||||
/**
|
||||
加载下一个个播房
|
||||
*/
|
||||
+ (void)showAnchorLoading;
|
||||
|
||||
/**
|
||||
在窗口上显示菊花
|
||||
*/
|
||||
|
@@ -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];
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
||||
|
@@ -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
|
||||
|
@@ -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 {
|
||||
|
@@ -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
|
@@ -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
|
@@ -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
|
@@ -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
|
@@ -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];
|
||||
}
|
||||
|
||||
/** 如果你需要自定义cell样式,请在实现此代理方法返回你的自定义cell的class。 */
|
||||
- (Class)customCollectionViewCellClassForCycleScrollView:(SDCycleScrollView *)view {
|
||||
return [XPAnchorRoomCycleCell class];
|
||||
}
|
||||
|
||||
/** 如果你自定义了cell样式,请在实现此代理方法为你的cell填充数据以及其它一系列设置 */
|
||||
- (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
|
||||
|