首页UI更改

This commit is contained in:
liyuhua
2023-12-26 14:29:53 +08:00
parent 62a93c3445
commit 3db1c0fc2c
99 changed files with 2992 additions and 23 deletions

View File

@@ -178,6 +178,10 @@
231EBB4B2B34112C006F782E /* MewMainHomePartyHeadHotCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 231EBB4A2B34112C006F782E /* MewMainHomePartyHeadHotCell.m */; };
231EBB4E2B341DE0006F782E /* MewMainHomeHotRoomModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 231EBB4D2B341DE0006F782E /* MewMainHomeHotRoomModel.m */; };
231EBB512B3433B7006F782E /* MewMainHomeMenuDataModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 231EBB502B3433B7006F782E /* MewMainHomeMenuDataModel.m */; };
231EBB542B352ADE006F782E /* MewMainHomeMakeFriendHeadView.m in Sources */ = {isa = PBXBuildFile; fileRef = 231EBB532B352ADE006F782E /* MewMainHomeMakeFriendHeadView.m */; };
231EBB572B3532E4006F782E /* MewMainHomeMakeFriendHeadCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 231EBB562B3532E4006F782E /* MewMainHomeMakeFriendHeadCell.m */; };
231EBB5A2B355D9D006F782E /* MewMainHomeMakeFriendCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 231EBB592B355D9D006F782E /* MewMainHomeMakeFriendCell.m */; };
231EBB5D2B358C4C006F782E /* MewMainHomeGameTabModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 231EBB5C2B358C4C006F782E /* MewMainHomeGameTabModel.m */; };
232153DD2AF381E400B2FBC0 /* MovEncodeToMpegTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 232153DC2AF381E400B2FBC0 /* MovEncodeToMpegTool.m */; };
232153E02AF394BF00B2FBC0 /* XPPrivilegeCardVideoItemModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 232153DF2AF394BF00B2FBC0 /* XPPrivilegeCardVideoItemModel.m */; };
236FF06C2AF8892400BEB6EC /* XPClientH5UresModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 236FF06B2AF8892400BEB6EC /* XPClientH5UresModel.m */; };
@@ -198,6 +202,15 @@
237B8A162A973B7E005DB380 /* XPMineGameOrderItemPresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 237B8A152A973B7E005DB380 /* XPMineGameOrderItemPresenter.m */; };
237B8A1A2A973C54005DB380 /* Api+GameOrder.m in Sources */ = {isa = PBXBuildFile; fileRef = 237B8A192A973C54005DB380 /* Api+GameOrder.m */; };
237B94C32A98B46E007853E3 /* XPSessionMessageGameInfoView.m in Sources */ = {isa = PBXBuildFile; fileRef = 237B94C22A98B46E007853E3 /* XPSessionMessageGameInfoView.m */; };
23844FA72B3926A2002AD661 /* MewMainHomeMoreGameVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 23844FA62B3926A2002AD661 /* MewMainHomeMoreGameVC.m */; };
23844FAD2B39274F002AD661 /* MewMainHomeMoreGameHeadView.m in Sources */ = {isa = PBXBuildFile; fileRef = 23844FAC2B39274F002AD661 /* MewMainHomeMoreGameHeadView.m */; };
23844FB02B3927B3002AD661 /* MewMainHomeMoreGameHeadCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 23844FAF2B3927B3002AD661 /* MewMainHomeMoreGameHeadCell.m */; };
23844FB32B392A7B002AD661 /* MewMainHomeMoreGameCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 23844FB22B392A7B002AD661 /* MewMainHomeMoreGameCell.m */; };
23844FB62B3932D9002AD661 /* MewMainHomeMakeFriendModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 23844FB52B3932D9002AD661 /* MewMainHomeMakeFriendModel.m */; };
23844FB82B397C4A002AD661 /* kMewMainHomePlayVoice.svga in Resources */ = {isa = PBXBuildFile; fileRef = 23844FB72B397C4A002AD661 /* kMewMainHomePlayVoice.svga */; };
23844FBB2B39892B002AD661 /* MewMainHomeLittleGameInfoModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 23844FBA2B39892B002AD661 /* MewMainHomeLittleGameInfoModel.m */; };
23844FBE2B398F18002AD661 /* MewMainHomeMoreGameModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 23844FBD2B398F18002AD661 /* MewMainHomeMoreGameModel.m */; };
23844FC12B3A6DAA002AD661 /* MewMainHomeMakeFriendEmptyCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 23844FC02B3A6DAA002AD661 /* MewMainHomeMakeFriendEmptyCell.m */; };
23CEFB692AFB32BE00576D89 /* XPRoomAnimationTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 23CEFB682AFB32BE00576D89 /* XPRoomAnimationTool.m */; };
23E1708C2AED2E080039DE62 /* YYTextAsyncLayer+XPTextAsyncLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 23E1708B2AED2E080039DE62 /* YYTextAsyncLayer+XPTextAsyncLayer.m */; };
23F8BFF82A7A392000A36763 /* XPRoomMessagePrivilegeCardCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 23F8BFF72A7A392000A36763 /* XPRoomMessagePrivilegeCardCell.m */; };
@@ -1723,6 +1736,14 @@
231EBB4D2B341DE0006F782E /* MewMainHomeHotRoomModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewMainHomeHotRoomModel.m; sourceTree = "<group>"; };
231EBB4F2B3433B7006F782E /* MewMainHomeMenuDataModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewMainHomeMenuDataModel.h; sourceTree = "<group>"; };
231EBB502B3433B7006F782E /* MewMainHomeMenuDataModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewMainHomeMenuDataModel.m; sourceTree = "<group>"; };
231EBB522B352ADE006F782E /* MewMainHomeMakeFriendHeadView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewMainHomeMakeFriendHeadView.h; sourceTree = "<group>"; };
231EBB532B352ADE006F782E /* MewMainHomeMakeFriendHeadView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewMainHomeMakeFriendHeadView.m; sourceTree = "<group>"; };
231EBB552B3532E4006F782E /* MewMainHomeMakeFriendHeadCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewMainHomeMakeFriendHeadCell.h; sourceTree = "<group>"; };
231EBB562B3532E4006F782E /* MewMainHomeMakeFriendHeadCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewMainHomeMakeFriendHeadCell.m; sourceTree = "<group>"; };
231EBB582B355D9D006F782E /* MewMainHomeMakeFriendCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewMainHomeMakeFriendCell.h; sourceTree = "<group>"; };
231EBB592B355D9D006F782E /* MewMainHomeMakeFriendCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewMainHomeMakeFriendCell.m; sourceTree = "<group>"; };
231EBB5B2B358C4C006F782E /* MewMainHomeGameTabModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewMainHomeGameTabModel.h; sourceTree = "<group>"; };
231EBB5C2B358C4C006F782E /* MewMainHomeGameTabModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewMainHomeGameTabModel.m; sourceTree = "<group>"; };
232153DB2AF381E400B2FBC0 /* MovEncodeToMpegTool.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MovEncodeToMpegTool.h; sourceTree = "<group>"; };
232153DC2AF381E400B2FBC0 /* MovEncodeToMpegTool.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MovEncodeToMpegTool.m; sourceTree = "<group>"; };
232153DE2AF394BF00B2FBC0 /* XPPrivilegeCardVideoItemModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPPrivilegeCardVideoItemModel.h; sourceTree = "<group>"; };
@@ -1764,6 +1785,23 @@
237B8A192A973C54005DB380 /* Api+GameOrder.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "Api+GameOrder.m"; sourceTree = "<group>"; };
237B94C12A98B46E007853E3 /* XPSessionMessageGameInfoView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPSessionMessageGameInfoView.h; sourceTree = "<group>"; };
237B94C22A98B46E007853E3 /* XPSessionMessageGameInfoView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPSessionMessageGameInfoView.m; sourceTree = "<group>"; };
23844FA52B3926A2002AD661 /* MewMainHomeMoreGameVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewMainHomeMoreGameVC.h; sourceTree = "<group>"; };
23844FA62B3926A2002AD661 /* MewMainHomeMoreGameVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewMainHomeMoreGameVC.m; sourceTree = "<group>"; };
23844FAB2B39274F002AD661 /* MewMainHomeMoreGameHeadView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewMainHomeMoreGameHeadView.h; sourceTree = "<group>"; };
23844FAC2B39274F002AD661 /* MewMainHomeMoreGameHeadView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewMainHomeMoreGameHeadView.m; sourceTree = "<group>"; };
23844FAE2B3927B3002AD661 /* MewMainHomeMoreGameHeadCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewMainHomeMoreGameHeadCell.h; sourceTree = "<group>"; };
23844FAF2B3927B3002AD661 /* MewMainHomeMoreGameHeadCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewMainHomeMoreGameHeadCell.m; sourceTree = "<group>"; };
23844FB12B392A7B002AD661 /* MewMainHomeMoreGameCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewMainHomeMoreGameCell.h; sourceTree = "<group>"; };
23844FB22B392A7B002AD661 /* MewMainHomeMoreGameCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewMainHomeMoreGameCell.m; sourceTree = "<group>"; };
23844FB42B3932D9002AD661 /* MewMainHomeMakeFriendModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewMainHomeMakeFriendModel.h; sourceTree = "<group>"; };
23844FB52B3932D9002AD661 /* MewMainHomeMakeFriendModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewMainHomeMakeFriendModel.m; sourceTree = "<group>"; };
23844FB72B397C4A002AD661 /* kMewMainHomePlayVoice.svga */ = {isa = PBXFileReference; lastKnownFileType = file; path = kMewMainHomePlayVoice.svga; sourceTree = "<group>"; };
23844FB92B39892B002AD661 /* MewMainHomeLittleGameInfoModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewMainHomeLittleGameInfoModel.h; sourceTree = "<group>"; };
23844FBA2B39892B002AD661 /* MewMainHomeLittleGameInfoModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewMainHomeLittleGameInfoModel.m; sourceTree = "<group>"; };
23844FBC2B398F18002AD661 /* MewMainHomeMoreGameModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewMainHomeMoreGameModel.h; sourceTree = "<group>"; };
23844FBD2B398F18002AD661 /* MewMainHomeMoreGameModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewMainHomeMoreGameModel.m; sourceTree = "<group>"; };
23844FBF2B3A6DAA002AD661 /* MewMainHomeMakeFriendEmptyCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewMainHomeMakeFriendEmptyCell.h; sourceTree = "<group>"; };
23844FC02B3A6DAA002AD661 /* MewMainHomeMakeFriendEmptyCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewMainHomeMakeFriendEmptyCell.m; sourceTree = "<group>"; };
23CEFB672AFB32BE00576D89 /* XPRoomAnimationTool.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomAnimationTool.h; sourceTree = "<group>"; };
23CEFB682AFB32BE00576D89 /* XPRoomAnimationTool.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomAnimationTool.m; sourceTree = "<group>"; };
23E1708A2AED2E080039DE62 /* YYTextAsyncLayer+XPTextAsyncLayer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "YYTextAsyncLayer+XPTextAsyncLayer.h"; path = "xplan-ios/Appdelegate/YYTextAsyncLayer+XPTextAsyncLayer.h"; sourceTree = SOURCE_ROOT; };
@@ -4809,6 +4847,14 @@
231EBB4D2B341DE0006F782E /* MewMainHomeHotRoomModel.m */,
231EBB4F2B3433B7006F782E /* MewMainHomeMenuDataModel.h */,
231EBB502B3433B7006F782E /* MewMainHomeMenuDataModel.m */,
231EBB5B2B358C4C006F782E /* MewMainHomeGameTabModel.h */,
231EBB5C2B358C4C006F782E /* MewMainHomeGameTabModel.m */,
23844FB42B3932D9002AD661 /* MewMainHomeMakeFriendModel.h */,
23844FB52B3932D9002AD661 /* MewMainHomeMakeFriendModel.m */,
23844FB92B39892B002AD661 /* MewMainHomeLittleGameInfoModel.h */,
23844FBA2B39892B002AD661 /* MewMainHomeLittleGameInfoModel.m */,
23844FBC2B398F18002AD661 /* MewMainHomeMoreGameModel.h */,
23844FBD2B398F18002AD661 /* MewMainHomeMoreGameModel.m */,
);
path = MewHomeModel;
sourceTree = "<group>";
@@ -4833,6 +4879,8 @@
231EBB252B32E291006F782E /* MewMainHomePartyVC.m */,
231EBB272B32E380006F782E /* MewMainHomeMakeFriendVC.h */,
231EBB282B32E380006F782E /* MewMainHomeMakeFriendVC.m */,
23844FA52B3926A2002AD661 /* MewMainHomeMoreGameVC.h */,
23844FA62B3926A2002AD661 /* MewMainHomeMoreGameVC.m */,
);
path = MewHomeView;
sourceTree = "<group>";
@@ -4848,6 +4896,10 @@
231EBB2E2B32F0C7006F782E /* MewMainHomePartyHeadItemView.m */,
231EBB302B32F68E006F782E /* MewMainHomePartyHeadHotView.h */,
231EBB312B32F68E006F782E /* MewMainHomePartyHeadHotView.m */,
231EBB522B352ADE006F782E /* MewMainHomeMakeFriendHeadView.h */,
231EBB532B352ADE006F782E /* MewMainHomeMakeFriendHeadView.m */,
23844FAB2B39274F002AD661 /* MewMainHomeMoreGameHeadView.h */,
23844FAC2B39274F002AD661 /* MewMainHomeMoreGameHeadView.m */,
);
path = MewHomeSubViews;
sourceTree = "<group>";
@@ -4859,6 +4911,16 @@
231EBB372B33D825006F782E /* MewMainHomePartyCell.m */,
231EBB492B34112C006F782E /* MewMainHomePartyHeadHotCell.h */,
231EBB4A2B34112C006F782E /* MewMainHomePartyHeadHotCell.m */,
231EBB552B3532E4006F782E /* MewMainHomeMakeFriendHeadCell.h */,
231EBB562B3532E4006F782E /* MewMainHomeMakeFriendHeadCell.m */,
231EBB582B355D9D006F782E /* MewMainHomeMakeFriendCell.h */,
231EBB592B355D9D006F782E /* MewMainHomeMakeFriendCell.m */,
23844FBF2B3A6DAA002AD661 /* MewMainHomeMakeFriendEmptyCell.h */,
23844FC02B3A6DAA002AD661 /* MewMainHomeMakeFriendEmptyCell.m */,
23844FAE2B3927B3002AD661 /* MewMainHomeMoreGameHeadCell.h */,
23844FAF2B3927B3002AD661 /* MewMainHomeMoreGameHeadCell.m */,
23844FB12B392A7B002AD661 /* MewMainHomeMoreGameCell.h */,
23844FB22B392A7B002AD661 /* MewMainHomeMoreGameCell.m */,
);
path = MewHomeCell;
sourceTree = "<group>";
@@ -8241,6 +8303,7 @@
E8A1E45C276220B100B294CA /* Sources */ = {
isa = PBXGroup;
children = (
23844FB72B397C4A002AD661 /* kMewMainHomePlayVoice.svga */,
E8B2B5C029C9C95F00C7AD19 /* room_wish_gift_sendCelebrate.svga */,
1497CCE229C1E1FB0015D135 /* sailing_prize_cowry.svga */,
1497CCE329C1E1FB0015D135 /* sailing_prize.svga */,
@@ -10108,6 +10171,7 @@
E80EC86D28ACD84000D133C5 /* emoji_35@2x.png in Resources */,
1497CCE529C1E1FB0015D135 /* sailing_prize.svga in Resources */,
E80EC86528ACD84000D133C5 /* emoji_03@2x.png in Resources */,
23844FB82B397C4A002AD661 /* kMewMainHomePlayVoice.svga in Resources */,
E80EC85B28ACD84000D133C5 /* emoji_69@2x.png in Resources */,
E80EC8A128ACD84100D133C5 /* emoji_74@2x.png in Resources */,
E80EC8AF28ACD84100D133C5 /* emoj_s_pressed@2x.png in Resources */,
@@ -10500,6 +10564,7 @@
E8C1670928067DAA00ECB15C /* XPMineGuildSuperAdminSetViewController.m in Sources */,
E8E859DA28264C2300EE4857 /* SJXCSMIPHelper.m in Sources */,
E890BC04273CF0500007C46B /* XPGiftCountModel.m in Sources */,
23844FB62B3932D9002AD661 /* MewMainHomeMakeFriendModel.m in Sources */,
E855516A280599A7005F293F /* XPGuildEmptyCollectionViewCell.m in Sources */,
E899C68C275093B800E189E5 /* XPUserCardMicroItemModel.m in Sources */,
9B6E8573281AB9B20041A321 /* XPRoomInsideRecommendCell.m in Sources */,
@@ -10511,9 +10576,11 @@
E80EC80B28ACD84000D133C5 /* QInputBarViewConfiguration.m in Sources */,
231EBB2C2B32EFE3006F782E /* MewMainHomePartyHeadView.m in Sources */,
E880B39E278BD49E00A83B0D /* XPAcrossRoomPKViewController.m in Sources */,
23844FC12B3A6DAA002AD661 /* MewMainHomeMakeFriendEmptyCell.m in Sources */,
E8AC723D26F4B6AA007D6E91 /* XPLoginBindPhoneResultViewController.m in Sources */,
E800806527FD37A20055A8AB /* XPGuildHeaderView.m in Sources */,
9B2A12D52783EEC700CED41B /* XPNobleCenterTableHeadView.m in Sources */,
23844FA72B3926A2002AD661 /* MewMainHomeMoreGameVC.m in Sources */,
E8AB632728AE13210023B0D2 /* XPMonentsTopicListPresenter.m in Sources */,
9BEE3D11278584FE00C83219 /* XPNobleCenterEmptyView.m in Sources */,
E8D55C9D28113218006935A5 /* MessageMenuModel.m in Sources */,
@@ -10546,6 +10613,7 @@
E821513429C2C6DE0030D7D4 /* XPRoomMessageFilter.m in Sources */,
E8252FEE27687DF1002B3164 /* ActivityInfoModel.m in Sources */,
E84BF7D1277BFCDD00EF8877 /* RoomTagModel.m in Sources */,
231EBB5A2B355D9D006F782E /* MewMainHomeMakeFriendCell.m in Sources */,
E8AC723526F49939007D6E91 /* XPMineNotificaPresenter.m in Sources */,
E8A86E0727BA38DB001C21F9 /* NSData+RW.m in Sources */,
E80DE40A277568D300BE5BCB /* ThemeColor+FirstRecharge.m in Sources */,
@@ -10563,6 +10631,7 @@
189DD53426DE255300AB55B1 /* TabbarViewController.m in Sources */,
E81EF6E4279AB92E00FF3EDE /* LittleGameInfoModel.m in Sources */,
9BA3B40B293DCDFD0071DF1C /* XPVersionUpdateModel.m in Sources */,
23844FB02B3927B3002AD661 /* MewMainHomeMoreGameHeadCell.m in Sources */,
E87A26F927587C62002DDC7A /* XPHomeContainerPresenter.m in Sources */,
9B88E21228C6365B00D26FBA /* XPHomeSearchRecordCell.m in Sources */,
18EE401A2754BA9F00A452BF /* NIMMessageMaker.m in Sources */,
@@ -10678,6 +10747,7 @@
9BCB99A028F571B500466D64 /* XPMineCollectPartyRoomViewController.m in Sources */,
E81C27AE26EF39AB0031E639 /* AppDelegate+ThirdConfig.m in Sources */,
E8AB631028ADD92D0023B0D2 /* XPMonentsTopicRecommondViewController.m in Sources */,
23844FBB2B39892B002AD661 /* MewMainHomeLittleGameInfoModel.m in Sources */,
231EBB172B3298B8006F782E /* MewMainHomeViewController.m in Sources */,
E877A7F127842B2F00EFACED /* XPRoomDatingWebAlertView.m in Sources */,
E80016382804140D00D6D17A /* XPMineGuildIncomeStatisViewController.m in Sources */,
@@ -10734,6 +10804,7 @@
9B1B72AF280031F8003FACE9 /* XPAnchorPKSelectRoomView.m in Sources */,
E8D4824A278D1F73003C1D08 /* XPAcrossRoomPKInviteView.m in Sources */,
189DD73F26E21C3F00AB55B1 /* YYUtility+Carrier.m in Sources */,
23844FBE2B398F18002AD661 /* MewMainHomeMoreGameModel.m in Sources */,
E83A2A55282F5C50002AD58F /* XPEnterpriseRechargeFootView.m in Sources */,
E87AE7F9277AABE50037823A /* XPRoomTagListViewController.m in Sources */,
18E7B26926E8D5D60064BC9B /* XCCurrentVCStackManager.m in Sources */,
@@ -10871,6 +10942,7 @@
E8DBB70127B6501200AA285D /* XPLittleGameMiniStageView.m in Sources */,
E851E46227FF1314002F3ACB /* XPMineGuildEmptyTableViewCell.m in Sources */,
E8DD25DA295583920043C7D5 /* XPAnchorRandomPKRuleView.m in Sources */,
23844FB32B392A7B002AD661 /* MewMainHomeMoreGameCell.m in Sources */,
E83A2A52282F5BBA002AD58F /* XPEnterpriseChargeListCollectionViewCell.m in Sources */,
E8834E3B280012B60029CCC1 /* XPMineGuildRemoveMemberViewController.m in Sources */,
9B734F79288A9C4B00CBDAA9 /* XPMineGameTableViewCell.m in Sources */,
@@ -11044,6 +11116,7 @@
9B208A362779B50100F9E54A /* GiftNobleInfoModel.m in Sources */,
230497282A712623006D1F0C /* XPRoomSettingBackImageItemModel.m in Sources */,
E8C6FFDA2754BE81004DC9F0 /* ThemeColor+Home.m in Sources */,
231EBB5D2B358C4C006F782E /* MewMainHomeGameTabModel.m in Sources */,
E80A086227F2AC190027B30C /* RoomPKDetailInfoModel.m in Sources */,
E824545126F5CE6E00BE8163 /* XPMineModifPayPwdPresenter.m in Sources */,
E8C21A00294854DA00344FC5 /* AnchorLevelModel.m in Sources */,
@@ -11118,6 +11191,7 @@
E818E348286ECA4B005EDF68 /* XPMonentsPublishViewController.m in Sources */,
9B88E20C28C5EB8300D26FBA /* MessageContentRedPacketView.m in Sources */,
E800806827FD3B520055A8AB /* XPClanMenuView.m in Sources */,
23844FAD2B39274F002AD661 /* MewMainHomeMoreGameHeadView.m in Sources */,
E896EFAF2771AF0F00AD2CC1 /* XPMineFriendEmptyTableViewCell.m in Sources */,
E8E859E928264F4500EE4857 /* XPRoomTransferMusicViewController.m in Sources */,
18486213271EA9DA005FC5DC /* RtcManager.m in Sources */,
@@ -11171,12 +11245,14 @@
E880B3B5278C1FE400A83B0D /* XPAcrossRoomPKPresenter.m in Sources */,
186A534626FC6ED900D67B2C /* TTPopup.m in Sources */,
E81EF6E0279AB7D900FF3EDE /* XPCreateLittleGameCollectionViewCell.m in Sources */,
231EBB542B352ADE006F782E /* MewMainHomeMakeFriendHeadView.m in Sources */,
E8C167302806C01500ECB15C /* GuildSuperAdminInfoModel.m in Sources */,
9B4D449328F15765002572D5 /* XPGiftLuckyGiftBroadcastView.m in Sources */,
E81C278C26EAFAF60031E639 /* Base64.m in Sources */,
E8C1CD7027D894B800376F83 /* RoomFaceTitleItemModel.m in Sources */,
189DD73D26E21C3F00AB55B1 /* YYUtility+Device.m in Sources */,
187EEEDC26E89B32002833B2 /* BaseModel.m in Sources */,
231EBB572B3532E4006F782E /* MewMainHomeMakeFriendHeadCell.m in Sources */,
145C965229C30308009883AB /* XPRoomAnnouncementView.m in Sources */,
E878B85E283640A500E22DCF /* MonentsUnReadModel.m in Sources */,
E81366FC26F0D2980076364C /* UIButton+EnlargeTouchArea.m in Sources */,

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 236 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 339 B

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 375 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 617 B

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 348 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 519 B

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 658 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

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

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 417 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 624 B

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 907 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 406 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 616 B

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 184 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 254 B

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 421 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 773 B

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 815 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -45,4 +45,5 @@ if (@available(iOS 11.0, *)) {\
#import "NSString+Utils.h"
#import "YYUtility.h"
#import "XPHtmlUrl.h"
#import "XPEnum.h"
#endif /* Base_pch */

View File

@@ -91,7 +91,8 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic, copy) NSString * inRoomUid;
/// 是否在麦位,用在发现新朋友
@property (nonatomic, assign) BOOL inMic;
/// 是否空闲,用在发现新朋友
@property(nonatomic,assign) BOOL inOnline;
#pragma mark - 相亲房的字段
///是否为相亲模式VIP坑位
@property (nonatomic,assign) BOOL vipMic;

View File

@@ -22,7 +22,7 @@ NS_ASSUME_NONNULL_BEGIN
token:(NSString *)token
success:(void (^)(NSString *key, NSDictionary *resp))success
failure:(void (^)(NSNumber *resCode, NSString *message))failure;
+ (void)mew_downloadAudioWithFileName:(NSString *)fileName musicUrl:(NSString *)musicUrl mainFileName:(NSString *)mainFileName completion:(void (^) (BOOL isSuccess, NSString *editAudioPath))completion;
@end
NS_ASSUME_NONNULL_END

View File

@@ -7,7 +7,7 @@
#import "UploadFile.h"
#import <Qiniu/QiniuSDK.h>
#import <AFNetworking.h>
@implementation UploadFile
///
@@ -33,5 +33,20 @@
}
} option:nil];
}
+ (void)mew_downloadAudioWithFileName:(NSString *)fileName musicUrl:(NSString *)musicUrl mainFileName:(NSString *)mainFileName completion:(void (^) (BOOL isSuccess, NSString *editAudioPath))completion{
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:musicUrl]];
NSURLSessionDownloadTask *download = [manager downloadTaskWithRequest:request progress:^(NSProgress * _Nonnull downloadProgress) {
} destination:^NSURL * _Nonnull(NSURL * _Nonnull targetPath, NSURLResponse * _Nonnull response) {
NSString *filePath = [[[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) safeObjectAtIndex1:0] stringByAppendingPathComponent:mainFileName] stringByAppendingPathComponent:fileName];
return [NSURL fileURLWithPath:filePath];
} completionHandler:^(NSURLResponse * _Nonnull response, NSURL * _Nullable filePath, NSError * _Nullable error) {
if (!error) {
completion(YES, filePath.path);
} else {
completion(NO, nil);
}
}];
[download resume];
}
@end

View File

@@ -28,6 +28,10 @@ NS_ASSUME_NONNULL_BEGIN
+(NSString *)getCharmImageUrl:(NSString *)url;
+(NSString *)getWealthImageUrl:(NSString *)url;
+(NSInteger) getMonth:(long )time;
+ (NSInteger) getDay:(long) time;
+ (NSString *)calculateConstellationWithMonth:(long)time;
+ (NSString *)calculateAge:(long)time;
@end
NS_ASSUME_NONNULL_END

View File

@@ -175,4 +175,76 @@
}
return getUrl;
}
#pragma mark -
+(NSInteger) getMonth:(long )time
{
NSDate *date = [NSDate dateWithTimeIntervalSince1970:time/1000];
NSCalendar* calendar = [NSCalendar currentCalendar];
NSDateComponents* components = [calendar components:NSCalendarUnitMonth fromDate:date];
NSInteger month = components.month;
return month;
}
+ (NSInteger) getDay:(long) time
{
NSDate *date = [NSDate dateWithTimeIntervalSince1970:time/1000];
NSCalendar* calendar = [NSCalendar currentCalendar];
NSDateComponents* components = [calendar components:NSCalendarUnitDay fromDate:date];
NSInteger day = components.day;
return day;
}
+ (NSString *)calculateConstellationWithMonth:(long)time
{
NSString *astroString = @"魔羯水瓶双鱼白羊金牛双子巨蟹狮子处女天秤天蝎射手魔羯";
NSString *astroFormat = @"102123444543";
NSString *result;
NSInteger month = [self getMonth:time];
NSInteger day = [self getDay:time];
if (month<1 || month>12 || day<1 || day>31){
return @"错误日期格式!";
}
if(month==2 && day>29)
{
return @"错误日期格式!!";
}else if(month==4 || month==6 || month==9 || month==11) {
if (day>30) {
return @"错误日期格式!!!";
}
}
result=[NSString stringWithFormat:@"%@",[astroString substringWithRange:NSMakeRange(month*2-(day < [[astroFormat substringWithRange:NSMakeRange((month-1), 1)] intValue] - (-19))*2,2)]];
return [NSString stringWithFormat:@"%@座",result];
}
+ (NSString *)calculateAge:(long)time {
NSDate *date = [NSDate dateWithTimeIntervalSince1970:time/1000];
NSCalendar *birthCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierISO8601];
NSDateComponents *birthCompomemts = [birthCalendar components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitWeekday | NSCalendarUnitDay fromDate:date];
NSInteger year = birthCompomemts.year;
NSInteger month = birthCompomemts.month;
NSInteger day = birthCompomemts.day;
NSLog(@"出生于%ld年%ld月%ld日", year, month, day);
NSDate *nowDate = [NSDate date];
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierISO8601];
NSDateComponents *compomemts = [calendar components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitWeekday | NSCalendarUnitDay fromDate:nowDate];
NSInteger nowYear = compomemts.year;
NSInteger nowMonth = compomemts.month;
NSInteger nowDay = compomemts.day;
NSLog(@"今天是%ld年%ld月%ld日", nowYear, nowMonth, nowDay);
//
NSInteger userAge = nowYear - year - 1;
if ((nowMonth > month) || (nowMonth == month && nowDay >= day)) {
userAge++;
}
NSLog(@"用户年龄是%ld",userAge);
return [NSString stringWithFormat:@"%ld", userAge];
}
@end

View File

@@ -29,7 +29,25 @@ NS_ASSUME_NONNULL_BEGIN
/// @param completion 完成
/// @param uid 用户的uid
/// @param rid 进入的类型的id
+ (void)mew_RequestMainHomePickResource:(HttpRequestHelperCompletion)completion uid:(NSString *)uid rid:(NSString *)rid;
+ (void)mew_RequestMainHomePickResource:(HttpRequestHelperCompletion)completion uid:(NSString *)uid rid:(NSString *)rid type:(NSString *)type;
/// 发现新朋友列表
/// @param complection 完成
/// @param gender 性别. 1:男性 2:女性 null:不限定
+ (void)mew_RequestMainHomeNewFriendListcomplection:(HttpRequestHelperCompletion)complection gender:(NSString *)gender gameId:(NSString *)gameId;
///首页游戏点单分类
+(void)mew_RequestMainHomeGameTabList:(HttpRequestHelperCompletion)complection;
///,大神带飞
+(void)mew_RequsetMainHomeFriendMahogany:(HttpRequestHelperCompletion)complection;
/// 一键匹配
/// @param completion 完成
+ (void)mew_RequsetMainHomeFriendChatPick:(HttpRequestHelperCompletion)completion;
/// 获取小游戏列表
/// @param completion 完成
+ (void)mew_RequsetMainHomeLittleGameList:(HttpRequestHelperCompletion)completion;
///获取游戏列表用户
+(void)mew_RequsetMainHomeGameFriend:(HttpRequestHelperCompletion)completion;
///大神推荐
+(void)mew_RequestMainHomeFriendMahogany:(HttpRequestHelperCompletion)completion;
@end
NS_ASSUME_NONNULL_END

View File

@@ -35,10 +35,44 @@
/// @param completion
/// @param uid uid
/// @param rid id
+ (void)mew_RequestMainHomePickResource:(HttpRequestHelperCompletion)completion uid:(NSString *)uid rid:(NSString *)rid {
+ (void)mew_RequestMainHomePickResource:(HttpRequestHelperCompletion)completion uid:(NSString *)uid rid:(NSString *)rid type:(NSString *)type{
NSMutableDictionary * pararms = [NSMutableDictionary dictionary];
[pararms safeSetObject:uid forKey:@"uid"];
[pararms safeSetObject:rid forKey:@"id"];
[pararms safeSetObject:type forKey:@"type"];
[HttpRequestHelper request:@"home/pickResource" method:HttpRequestHelperMethodGET params:pararms completion:completion];
}
///
/// @param complection
/// @param gender . 1: 2: null:
+ (void)mew_RequestMainHomeNewFriendListcomplection:(HttpRequestHelperCompletion)complection gender:(NSString *)gender gameId:(NSString *)gameId{
[self makeRequest:@"home/newFriend" method:HttpRequestHelperMethodGET completion:complection, __FUNCTION__, gender,gameId, nil];
}
///
+(void)mew_RequestMainHomeGameTabList:(HttpRequestHelperCompletion)complection{
[self makeRequest:@"home/game/tab/list" method:HttpRequestHelperMethodGET completion:complection, __FUNCTION__, nil];
}
///
+(void)mew_RequsetMainHomeFriendMahogany:(HttpRequestHelperCompletion)complection{
[self makeRequest:@"home/mahogany" method:HttpRequestHelperMethodGET completion:complection, __FUNCTION__, nil];
}
///
/// @param completion
+ (void)mew_RequsetMainHomeFriendChatPick:(HttpRequestHelperCompletion)completion {
[self makeRequest:@"home/chat/pick" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, nil];
}
///
/// @param completion
+ (void)mew_RequsetMainHomeLittleGameList:(HttpRequestHelperCompletion)completion {
[self makeRequest:@"miniGame/record/miniGameList" method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, nil];
}
///
+(void)mew_RequsetMainHomeGameFriend:(HttpRequestHelperCompletion)completion{
[self makeRequest:@"home/game" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, nil];
}
///
+(void)mew_RequestMainHomeFriendMahogany:(HttpRequestHelperCompletion)completion{
[self makeRequest:@"home/mahogany" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, nil];
}
@end

View File

@@ -15,6 +15,18 @@ NS_ASSUME_NONNULL_BEGIN
- (void)mew_requestMainHomeGiftRecordList;
//获取热门房间
-(void)mew_requestMainHomePersonalRoomList:(NSString *)uid;
/// 发现新朋友
- (void)mew_requestMainHomeNewFriendListWithGender:(nullable NSString *)gender gameId:(nullable NSString *)gameId;
/// 一键匹配
-(void)mew_getMainHomeFriendChatPickData;
//获取游戏
-(void)mew_requsetMainHomeGameTabList;
///获取小游戏列表
-(void)mew_getMainHomeLittleGameList;
///获取游戏列表用户
-(void)mew_getMainHomeGameFriendList;
///大神推荐
-(void)mew_RequestMainHomeFriendMahoganyList;
@end
NS_ASSUME_NONNULL_END

View File

@@ -13,6 +13,10 @@
#import "MewMainHomeProtocol.h"
#import "MewMainHomeGiftRecordModel.h"
#import "MewMainHomeHotRoomModel.h"
#import "MewMainHomeMakeFriendModel.h"
#import "MewMainHomeGameTabModel.h"
#import "MewMainHomeLittleGameInfoModel.h"
#import "MewMainHomeMoreGameModel.h"
@implementation MewHomeManager
///
- (void)mew_requestMainHomeTopDataList {
@@ -42,4 +46,75 @@
[[self getView]mew_getHomePersonalRoomListFail];
} showLoading:NO errorToast:NO] uid:uid];
}
///
- (void)mew_requestMainHomeNewFriendListWithGender:(nullable NSString *)gender gameId:(nullable NSString *)gameId{
[Api mew_RequestMainHomeNewFriendListcomplection:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
NSArray * array = [MewMainHomeMakeFriendModel modelsWithArray:data.data];
[[self getView] mew_getNewFriendListSuccess:array gameId:gameId];
}fail:^(NSInteger code, NSString * _Nullable msg) {
[[self getView] mew_getNewFriendListFailWithGameId:gameId];
}] gender:gender gameId:gameId];
}
///
-(void)mew_requsetMainHomeGameTabList{
[Api mew_RequestMainHomeGameTabList:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
NSArray *list = [MewMainHomeGameTabModel modelsWithArray:data.data];
[[self getView]mew_getMainHomeGameTabList:list];
} fail:^(NSInteger code, NSString * _Nullable msg) {
}]];
}
/////
//-(void)mew_requsetMainHomeFriendMahoganyData{
// [Api mew_RequsetMainHomeFriendMahogany:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
// if (data.data) {
// NSString *uid = [NSString stringWithFormat:@"%@",data.data];
// [[self getView] homeChatPickSuccess:uid];
// }else{
// [[self getView] homeChatPickFail:data.message];
// }
// } fail:^(NSInteger code, NSString * _Nullable msg) {
//
// }]];
//}
///
-(void)mew_getMainHomeFriendChatPickData{
[Api mew_RequsetMainHomeFriendChatPick:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
if (data.data) {
NSString *uid = [NSString stringWithFormat:@"%@",data.data];
[[self getView] mew_getMainHomeFriendChatPickDataSuccess:uid];
}else{
[[self getView] mew_getMainHomeFriendChatPickDataFail:data.message];
}
}fail:^(NSInteger code, NSString * _Nullable msg) {
[[self getView] mew_getMainHomeFriendChatPickDataFail:msg];
} showLoading:YES errorToast:YES]];
}
-(void)mew_getMainHomeLittleGameList{
[Api mew_RequsetMainHomeLittleGameList:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
NSArray *list = [MewMainHomeLittleGameInfoModel modelsWithArray:data.data];
[[self getView]mew_getMainHomeLittleGameListSuccess:list];
} fail:^(NSInteger code, NSString * _Nullable msg) {
}errorToast:YES]];
}
///
-(void)mew_getMainHomeGameFriendList{
[Api mew_RequsetMainHomeGameFriend:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
NSArray *list = [MewMainHomeHotRoomModel modelsWithArray:data.data[@"playRooms"]];
[[self getView]mew_getMainHomeGameFriendListSuccess:list];
} fail:^(NSInteger code, NSString * _Nullable msg) {
} showLoading:YES errorToast:YES]];
}
///
-(void)mew_RequestMainHomeFriendMahoganyList{
[Api mew_RequestMainHomeFriendMahogany:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
NSArray *list = [MewMainHomeMakeFriendModel modelsWithArray:data.data];
[[self getView]mew_RequestMainHomeFriendMahoganyListSuccess:list];
} fail:^(NSInteger code, NSString * _Nullable msg) {
}]];
}
@end

View File

@@ -0,0 +1,20 @@
//
// MewMainHomeGameTabModel.h
// xplan-ios
//
// Created by duoban on 2023/12/22.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface MewMainHomeGameTabModel : NSObject
@property(nonatomic,copy) NSString *gameId;
@property(nonatomic,copy) NSString *onClick;
@property(nonatomic,copy) NSString *onUnclick;
@property(nonatomic,assign) BOOL isOnClick;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,12 @@
//
// MewMainHomeGameTabModel.m
// xplan-ios
//
// Created by duoban on 2023/12/22.
//
#import "MewMainHomeGameTabModel.h"
@implementation MewMainHomeGameTabModel
@end

View File

@@ -11,6 +11,8 @@
NS_ASSUME_NONNULL_BEGIN
@class MewMainHomeHotMicUserModel;
@interface MewMainHomeHotRoomModel : NSObject
@property(nonatomic,copy) NSString *mgId;
@property(nonatomic,assign) int state;
///头像
@property (nonatomic,copy) NSString *avatar;
///在线人数

View File

@@ -0,0 +1,23 @@
//
// MewMainHomeLittleGameInfoModel.h
// xplan-ios
//
// Created by duoban on 2023/12/25.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface MewMainHomeLittleGameInfoModel : NSObject
///游戏ID
@property (nonatomic, copy) NSString *mgId;
///名称
@property (nonatomic, copy) NSString *name;
///封面
@property (nonatomic, copy) NSString *pic;
///是否选择
@property (nonatomic,assign) BOOL isSelect;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,12 @@
//
// MewMainHomeLittleGameInfoModel.m
// xplan-ios
//
// Created by duoban on 2023/12/25.
//
#import "MewMainHomeLittleGameInfoModel.h"
@implementation MewMainHomeLittleGameInfoModel
@end

View File

@@ -0,0 +1,38 @@
//
// MewMainHomeMakeFriendModel.h
// xplan-ios
//
// Created by duoban on 2023/12/25.
//
#import <Foundation/Foundation.h>
#import "UserGameInfoVo.h"
NS_ASSUME_NONNULL_BEGIN
@class MewMainHomeMakeFriendCardModel,UserGameInfoVo;
@interface MewMainHomeMakeFriendModel : NSObject
///头像
@property(nonatomic,copy) NSString *avatar;
///出生日期
@property (nonatomic,assign) long birth;
@property (nonatomic , assign) GenderType gender;
@property(nonatomic,assign) int inMic;
@property(nonatomic,assign) int inOnline;
@property(nonatomic,copy) NSString *inRoomUid;
@property(nonatomic,copy) NSString *nick;
@property(nonatomic,copy) NSString *roomTitle;
@property(nonatomic,copy) NSString *uid;
@property(nonatomic,strong) MewMainHomeMakeFriendCardModel *voiceCard;
@property(nonatomic,assign) int lock;
///首页点单游戏信息
@property(nonatomic,strong) UserGameInfoVo *userGamePartnerVo;
@property(nonatomic,copy) NSString *playTime;
@property(nonatomic,copy) NSString *playUrl;
@end
@interface MewMainHomeMakeFriendCardModel : NSObject
@property(nonatomic,copy) NSString *cardId;
@property(nonatomic,copy) NSString *icon;
@property(nonatomic,copy) NSString *name;
@property(nonatomic,copy) NSArray *propVals;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,32 @@
//
// MewMainHomeMakeFriendModel.m
// xplan-ios
//
// Created by duoban on 2023/12/25.
//
#import "MewMainHomeMakeFriendModel.h"
@implementation MewMainHomeMakeFriendModel
- (NSString *)playUrl{
if(self.voiceCard.propVals.count == 2){
return self.voiceCard.propVals.firstObject;
}
return @"";
}
- (NSString *)playTime{
if(self.voiceCard.propVals.count == 2){
return self.voiceCard.propVals[1];
}
return @"";
}
@end
@implementation MewMainHomeMakeFriendCardModel
@end

View File

@@ -26,7 +26,11 @@ typedef NS_ENUM(NSInteger, MewMainHomeMenuInfoModelType) {
NS_ASSUME_NONNULL_BEGIN
@interface MewMainHomeMenuInfoModel : NSObject
@property(nonatomic,assign) BOOL isOneClickMatching;///是否是一键匹配
///是否更多游戏
@property(nonatomic,assign) BOOL isMorn;
///是否是游戏
@property(nonatomic,assign) BOOL isGame;
///ID 映射字段
@property (nonatomic,copy) NSString *hid;
///显示的图片

View File

@@ -0,0 +1,23 @@
//
// MewMainHomeMoreGameModel.h
// xplan-ios
//
// Created by duoban on 2023/12/25.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface MewMainHomeMoreGameModel : NSObject
@property(nonatomic,assign) BOOL isShow;
@property(nonatomic,copy) NSString *mgId;
@property(nonatomic,copy) NSString *mgIdStr;
@property(nonatomic,copy) NSString *micNum;
@property(nonatomic,copy) NSString *name;
@property(nonatomic,copy) NSString *pic;
@property(nonatomic,copy) NSString *remark;
@property(nonatomic,assign) NSString *seq;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,12 @@
//
// MewMainHomeMoreGameModel.m
// xplan-ios
//
// Created by duoban on 2023/12/25.
//
#import "MewMainHomeMoreGameModel.h"
@implementation MewMainHomeMoreGameModel
@end

View File

@@ -22,6 +22,23 @@ NS_ASSUME_NONNULL_BEGIN
-(void)mew_getHomePersonalRoomListSuccess:(NSArray *)list;
//获取热门房间失败
-(void)mew_getHomePersonalRoomListFail;
/// 发现新朋友成功
-(void)mew_getNewFriendListSuccess:(NSArray *)list gameId:(nullable NSString *)gameId;
/// 发现新朋友失败
-(void)mew_getNewFriendListFailWithGameId:(nullable NSString *)gameId;
///首页游戏点单分类
-(void)mew_getMainHomeGameTabList:(NSArray *)list;
///大神带飞
////// 一键匹配成功
-(void)mew_getMainHomeFriendChatPickDataSuccess:(NSString *)uid;
////// 一键匹配失败
-(void)mew_getMainHomeFriendChatPickDataFail:(NSString *)msg;
///得到小游戏列表成功
-(void)mew_getMainHomeLittleGameListSuccess:(NSArray *)list;
///获取游戏列表用户成功
-(void)mew_getMainHomeGameFriendListSuccess:(NSArray *)list;
///获取大神推荐成功
-(void)mew_RequestMainHomeFriendMahoganyListSuccess:(NSArray *)list;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,29 @@
//
// MewMainHomeMakeFriendCell.h
// xplan-ios
//
// Created by duoban on 2023/12/22.
//
#import <UIKit/UIKit.h>
#import "MewMainHomeMakeFriendModel.h"
@class MewMainHomeMakeFriendModel,MewMainHomeMakeFriendCell;
NS_ASSUME_NONNULL_BEGIN
@protocol MewMainHomeMakeFriendCellDelegate <NSObject>
///点击播放声音
-(void)mew_clickPlayVoiceActionWithCell:(MewMainHomeMakeFriendCell *)cell model:(MewMainHomeMakeFriendModel *)model isPlay:(BOOL)isPlay;
///点击房间
-(void)mew_clickRoomBtnActionWithModel:(MewMainHomeMakeFriendModel *)model;
///点击头像
-(void)mew_clickAvatarBtnActionWithModel:(MewMainHomeMakeFriendModel *)model;
@end
@interface MewMainHomeMakeFriendCell : UICollectionViewCell
@property(nonatomic,strong) MewMainHomeMakeFriendModel *friendModel;
@property(nonatomic,weak) id<MewMainHomeMakeFriendCellDelegate>delegate;
///声音卡倒计时
-(void)mew_setPlayVoiceTime:(NSInteger)time;
///声音卡时svga是否播放动画
-(void)mew_setPlayVoiceStatus:(BOOL)isPlay;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,487 @@
//
// MewMainHomeMakeFriendCell.m
// xplan-ios
//
// Created by duoban on 2023/12/22.
//
#import "MewMainHomeMakeFriendCell.h"
#import <SDWebImageFLPlugin/SDWebImageFLPlugin.h>
#import <SVGA.h>
#import <MarqueeLabel.h>
#import "MewMainHomeMakeFriendModel.h"
@interface MewMainHomeMakeFriendCell()
///
@property(nonatomic,strong) NetImageView *mewRoomImageView;
///线
@property(nonatomic,strong) UIView *mewOnLineView;
///线
@property(nonatomic,strong) UILabel *mewOnLineTitleView;
///线绿
@property(nonatomic,strong) UIView *mewOnLinePiontView;
///线
@property(nonatomic,strong) FLAnimatedImageView *mewOnLineGifView;
///
@property(nonatomic,strong) UIImageView *mewPlayView;
///
@property(nonatomic,strong) UIButton *mewPlayBtn;
///
@property(nonatomic,strong) UIImageView *mewPlayImageView;
///
@property(nonatomic,strong) SVGAParser *mewPlayParser;
@property(nonatomic,strong) SVGAImageView *mewPlaySvgaView;
///
@property(nonatomic,strong) UILabel *mewPlayTimeView;
///
@property(nonatomic,strong) UIView *mewBgTitleView;
///
@property(nonatomic,strong) UILabel *mewNameView;
///
@property(nonatomic,strong) UILabel *mewConstellationView;
///
@property(nonatomic,strong) UIImageView *mewBgRoomView;
///
@property(nonatomic,strong) UIButton *mewRoomBtn;
///
@property(nonatomic,strong) MarqueeLabel *mewRoomNameView;
///
@property(nonatomic,strong) UIImageView *mewPlayerView;
///
@property(nonatomic,strong) UIView *mewBgGameView;
///
@property(nonatomic,strong) NetImageView *mewGameIcon;
///
@property(nonatomic,strong) UILabel *mewGameTitleView;
@end
@implementation MewMainHomeMakeFriendCell
-(instancetype)initWithFrame:(CGRect)frame{
self = [super initWithFrame:frame];
if(self){
[self installUI];
[self installConstraints];
}
return self;
}
-(void)installUI{
[self.contentView addSubview:self.mewRoomImageView];
[self.contentView addSubview:self.mewPlayerView];
[self.contentView addSubview:self.mewOnLineView];
[self.mewOnLineView addSubview:self.mewOnLinePiontView];
[self.mewOnLineView addSubview:self.mewOnLineGifView];
[self.mewOnLineView addSubview:self.mewOnLineTitleView];
[self.contentView addSubview:self.mewPlayView];
[self.mewPlayView addSubview:self.mewPlayBtn];
[self.mewPlayView addSubview:self.mewPlaySvgaView];
[self.mewPlayView addSubview:self.mewPlayImageView];
[self.mewPlayView addSubview:self.mewPlayTimeView];
[self.contentView addSubview:self.mewBgGameView];
[self.mewBgGameView addSubview:self.mewGameIcon];
[self.mewBgGameView addSubview:self.mewGameTitleView];
[self.contentView addSubview:self.mewBgTitleView];
[self.mewBgTitleView addSubview:self.mewNameView];
[self.mewBgTitleView addSubview:self.mewConstellationView];
[self.mewBgTitleView addSubview:self.mewBgRoomView];
[self.mewBgRoomView addSubview:self.mewRoomBtn];
[self.mewBgRoomView addSubview:self.mewRoomNameView];
@kWeakify(self);
[self.mewPlayParser parseWithNamed:@"kMewMainHomePlayVoice" inBundle:nil completionBlock:^(SVGAVideoEntity * _Nonnull videoItem) {
@kStrongify(self);
self.mewPlaySvgaView.loops = INT_MAX;
self.mewPlaySvgaView.clearsAfterStop = NO;
self.mewPlaySvgaView.videoItem = videoItem;
[self.mewPlaySvgaView startAnimation];
} failureBlock:^(NSError * _Nullable error) {
}];
}
-(void)installConstraints{
[self.mewRoomImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.contentView);
}];
[self.mewPlayerView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.mas_equalTo(kGetScaleWidth(6));
make.top.mas_equalTo(kGetScaleWidth(5));
make.width.mas_equalTo(kGetScaleWidth(48));
make.height.mas_equalTo(kGetScaleWidth(16));
}];
[self.mewOnLineView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(kGetScaleWidth(50));
make.height.mas_equalTo(kGetScaleWidth(17));
make.top.trailing.equalTo(self.contentView).inset(kGetScaleWidth(4));
}];
[self.mewOnLineGifView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(kGetScaleWidth(10));
make.height.mas_equalTo(kGetScaleWidth(9));
make.leading.mas_equalTo(kGetScaleWidth(5));
make.centerY.equalTo(self.mewOnLineView);
}];
[self.mewOnLineTitleView mas_makeConstraints:^(MASConstraintMaker *make) {
make.trailing.mas_equalTo(-kGetScaleWidth(5));
make.centerY.equalTo(self.mewOnLineView);
}];
[self.mewOnLinePiontView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.height.mas_equalTo(kGetScaleWidth(5));
make.leading.mas_equalTo(kGetScaleWidth(5));
make.centerY.equalTo(self.mewOnLineView);
}];
[self.mewPlayView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(kGetScaleWidth(62));
make.height.mas_equalTo(kGetScaleWidth(18));
make.leading.mas_equalTo(kGetScaleWidth(6));
make.top.mas_equalTo(kGetScaleWidth(108));
}];
[self.mewPlayBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.height.mas_equalTo(kGetScaleWidth(16));
make.leading.mas_equalTo(kGetScaleWidth(1));
make.centerY.equalTo(self.mewPlayView);
}];
[self.mewPlaySvgaView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.mas_equalTo(kGetScaleWidth(18));
make.width.mas_equalTo(kGetScaleWidth(22));
make.height.mas_equalTo(kGetScaleWidth(10));
make.centerY.equalTo(self.mewPlayView);
}];
[self.mewPlayImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.mewPlaySvgaView);
}];
[self.mewPlayTimeView mas_makeConstraints:^(MASConstraintMaker *make) {
make.height.mas_equalTo(kGetScaleWidth(12));
make.leading.mas_equalTo(kGetScaleWidth(41));
make.centerY.equalTo(self.mewPlayView);
}];
[self.mewBgGameView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_greaterThanOrEqualTo(kGetScaleWidth(10));
make.height.mas_equalTo(kGetScaleWidth(13));
make.trailing.mas_equalTo(-kGetScaleWidth(4));
make.centerY.equalTo(self.mewPlayView);
}];
[self.mewGameIcon mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.height.mas_equalTo(kGetScaleWidth(15));
make.leading.mas_equalTo(kGetScaleWidth(-1));
make.centerY.equalTo(self.mewBgGameView);
}];
[self.mewGameTitleView mas_makeConstraints:^(MASConstraintMaker *make) {
make.trailing.mas_equalTo(-kGetScaleWidth(4));
make.centerY.equalTo(self.mewBgGameView);
make.leading.mas_equalTo(kGetScaleWidth(15));
}];
[self.mewBgTitleView mas_makeConstraints:^(MASConstraintMaker *make) {
make.bottom.leading.trailing.mas_equalTo(0);
make.height.mas_equalTo(kGetScaleWidth(54));
}];
[self.mewConstellationView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(kGetScaleWidth(39));
make.height.mas_equalTo(kGetScaleWidth(15));
make.trailing.mas_equalTo(-kGetScaleWidth(8));
make.top.mas_equalTo(kGetScaleWidth(9));
}];
[self.mewNameView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.top.mas_equalTo(kGetScaleWidth(8));
make.height.mas_equalTo(kGetScaleWidth(17));
make.trailing.equalTo(self.mewConstellationView.mas_leading).mas_offset(-kGetScaleWidth(5));
}];
[self.mewBgRoomView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.mas_equalTo(kGetScaleWidth(6));
make.top.mas_equalTo(kGetScaleWidth(28));
make.trailing.mas_equalTo(-kGetScaleWidth(9));
make.height.mas_equalTo(kGetScaleWidth(18));
}];
[self.mewRoomBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.height.mas_equalTo(kGetScaleWidth(14));
make.leading.mas_equalTo(kGetScaleWidth(6));
make.centerY.equalTo(self.mewBgRoomView);
}];
[self.mewRoomNameView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.mas_equalTo(kGetScaleWidth(22));
make.trailing.mas_equalTo(-kGetScaleWidth(6));
make.centerY.equalTo(self.mewBgRoomView);
}];
}
-(void)mew_clickPlayVoiceAction{
self.mewPlayBtn.selected = !self.mewPlayBtn.selected;
_mewPlaySvgaView.hidden = !self.mewPlayBtn.selected;
_mewPlayImageView.hidden = self.mewPlayBtn.selected;
if(self.delegate && [self.delegate respondsToSelector:@selector(mew_clickPlayVoiceActionWithCell:model:isPlay:)]){
[self.delegate mew_clickPlayVoiceActionWithCell:self model:self.friendModel isPlay:self.mewPlayBtn.selected];
}
}
///
-(void)mew_setPlayVoiceTime:(NSInteger)time{
_mewPlayTimeView.text = [NSString stringWithFormat:@"%@\"",@(time).stringValue];
}
///svga
-(void)mew_setPlayVoiceStatus:(BOOL)isPlay{
_mewPlayBtn.selected = isPlay;
_mewPlaySvgaView.hidden = !isPlay;
_mewPlayImageView.hidden = isPlay;
if(_friendModel.voiceCard != nil){
_mewPlayTimeView.text = [NSString stringWithFormat:@"%@\"",_friendModel.playTime];
}
}
-(void)mew_clickRoomBtnAction{
if(self.delegate && [self.delegate respondsToSelector:@selector(mew_clickRoomBtnActionWithModel:)]){
[self.delegate mew_clickRoomBtnActionWithModel:self.friendModel];
}
}
-(void)mew_clickAvatarBtnAction{
if(self.delegate && [self.delegate respondsToSelector:@selector(mew_clickAvatarBtnActionWithModel:)]){
[self.delegate mew_clickAvatarBtnActionWithModel:self.friendModel];
}
}
-(void)setFriendModel:(MewMainHomeMakeFriendModel *)friendModel{
_friendModel = friendModel;
_mewRoomImageView.image = nil;
[_mewRoomImageView loadImageWithUrl:_friendModel.avatar completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) {
self.mewRoomImageView.image = image;
}];
NSString *nick = _friendModel.nick;
self.mewNameView.text = nick;
if (!_friendModel.birth) {
_friendModel.birth = -28800000; //1970/01/01
}
self.mewConstellationView.text = [NSString calculateConstellationWithMonth:_friendModel.birth];
self.mewOnLineView.hidden = YES;
self.mewOnLineGifView.hidden = YES;
self.mewOnLinePiontView.hidden = YES;
if (_friendModel.inRoomUid.length == 0) {
if(_friendModel.inOnline == YES){
self.mewOnLineView.hidden = NO;
self.mewOnLinePiontView.hidden = NO;
self.mewOnLineTitleView.text = @"空闲中";
}
}else{
self.mewOnLineView.hidden = NO;
self.mewOnLineGifView.hidden = NO;
self.mewOnLineTitleView.text = @"直播中";
}
_mewBgGameView.hidden = YES;
_mewPlayerView.hidden = YES;
if(_friendModel.userGamePartnerVo){
_mewPlayerView.hidden = NO;
_mewBgGameView.hidden = NO;
_mewGameIcon.image = nil;
[_mewGameIcon loadImageWithUrl:_friendModel.userGamePartnerVo.firstLogo completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) {
self.mewGameIcon.image = image;
}];
NSString *gameName = @"";
if(_friendModel.userGamePartnerVo.firstGameName.length > 0 && _friendModel.userGamePartnerVo.secondGameName.length > 0){
gameName = [NSString stringWithFormat:@"%@%@",_friendModel.userGamePartnerVo.firstGameName,_friendModel.userGamePartnerVo.secondGameName];
}else if(_friendModel.userGamePartnerVo.firstGameName.length > 0){
gameName = _friendModel.userGamePartnerVo.firstGameName;
}else if(_friendModel.userGamePartnerVo.secondGameName.length > 0){
gameName = _friendModel.userGamePartnerVo.secondGameName;
}
_mewGameTitleView.text = gameName;
}
_mewPlayView.hidden = YES;
if(_friendModel.voiceCard != nil){
_mewPlayView.hidden = NO;
_mewPlayTimeView.text = [NSString stringWithFormat:@"%@\"",_friendModel.playTime];
}
_mewBgRoomView.hidden = YES;
if(_friendModel.roomTitle.length > 0){
_mewBgRoomView.hidden = NO;
_mewRoomNameView.text = _friendModel.roomTitle;
}
}
#pragma mark -
- (NetImageView *)mewRoomImageView{
if(!_mewRoomImageView){
NetImageConfig *config = [[NetImageConfig alloc]init];
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_mewRoomImageView = [[NetImageView alloc]initWithConfig:config];
_mewRoomImageView.contentMode = UIViewContentModeScaleAspectFill;
_mewRoomImageView.clipsToBounds = YES ;
_mewRoomImageView.layer.cornerRadius = kGetScaleWidth(12);
_mewRoomImageView.layer.masksToBounds = YES;
[_mewBgTitleView setCornerWithLeftTopCorner:kGetScaleWidth(12) rightTopCorner:kGetScaleWidth(12) bottomLeftCorner:kGetScaleWidth(12) bottomRightCorner:kGetScaleWidth(12) size:CGSizeMake(kGetScaleWidth(168), kGetScaleWidth(184))];
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(mew_clickAvatarBtnAction)];
_mewRoomImageView.userInteractionEnabled = YES;
[_mewRoomImageView addGestureRecognizer:tap];
}
return _mewRoomImageView;
}
- (UIView *)mewOnLineView{
if(!_mewOnLineView){
_mewOnLineView = [UIView new];
_mewOnLineView.backgroundColor = UIColorRGBAlpha(0x000000, 0.3);
_mewOnLineView.layer.cornerRadius = kGetScaleWidth(17)/2;
_mewOnLineView.layer.masksToBounds = YES;
}
return _mewOnLineView;
}
- (UILabel *)mewOnLineTitleView{
if(!_mewOnLineTitleView){
_mewOnLineTitleView = [UILabel labelInitWithText:@"" font:kFontRegular(9) textColor:[UIColor whiteColor]];
}
return _mewOnLineTitleView;
}
- (UIView *)mewOnLinePiontView{
if(!_mewOnLinePiontView){
_mewOnLinePiontView = [UIView new];
_mewOnLinePiontView.backgroundColor = UIColorFromRGB(0x4DFF91);
_mewOnLinePiontView.layer.cornerRadius = kGetScaleWidth(5)/2;
_mewOnLinePiontView.layer.masksToBounds = YES;
}
return _mewOnLinePiontView;
}
- (FLAnimatedImageView *)mewOnLineGifView{
if(!_mewOnLineGifView){
_mewOnLineGifView = [FLAnimatedImageView new];
NSData *localData = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"mew_main_home_heat.gif" ofType:nil]];
FLAnimatedImage *animatedImage = [FLAnimatedImage animatedImageWithGIFData:localData];
_mewOnLineGifView.animatedImage = animatedImage;
}
return _mewOnLineGifView;
}
- (SVGAParser *)mewPlayParser{
if(!_mewPlayParser){
_mewPlayParser = [SVGAParser new];
}
return _mewPlayParser;
}
- (SVGAImageView *)mewPlaySvgaView {
if (_mewPlaySvgaView == nil) {
_mewPlaySvgaView = [[SVGAImageView alloc]init];
_mewPlaySvgaView.contentMode = UIViewContentModeScaleToFill;
_mewPlaySvgaView.hidden = YES;
_mewPlaySvgaView.backgroundColor = [UIColor clearColor];
}
return _mewPlaySvgaView;
}
- (UIImageView *)mewPlayImageView{
if(!_mewPlayImageView){
_mewPlayImageView = [UIImageView new];
_mewPlayImageView.image = kImage(@"mew_main_home_friend_cell_play_icom_bg");
}
return _mewPlayImageView;
}
- (UIImageView *)mewPlayView{
if(!_mewPlayView){
_mewPlayView = [UIImageView new];
_mewPlayView.image = kImage(@"mew_main_home_friend_cell_play_bg");
_mewPlayView.userInteractionEnabled = YES;
}
return _mewPlayView;
}
- (UIButton *)mewPlayBtn{
if(!_mewPlayBtn){
_mewPlayBtn = [UIButton new];
[_mewPlayBtn setEnlargeEdgeWithTop:10 right:10 bottom:10 left:10];
[_mewPlayBtn setBackgroundImage:kImage(@"mew_main_home_friend_cell_no_play") forState:UIControlStateNormal];
[_mewPlayBtn setBackgroundImage:kImage(@"mew_main_home_friend_cell_play") forState:UIControlStateSelected];
[_mewPlayBtn addTarget:self action:@selector(mew_clickPlayVoiceAction) forControlEvents:UIControlEventTouchUpInside];
}
return _mewPlayBtn;
}
- (UILabel *)mewPlayTimeView{
if(!_mewPlayTimeView){
_mewPlayTimeView = [UILabel labelInitWithText:@"0\"" font:kFontMedium(10) textColor:UIColorFromRGB(0x2B2D33)];
}
return _mewPlayTimeView;
}
- (UIView *)mewBgTitleView{
if(!_mewBgTitleView){
_mewBgTitleView = [UIView new];
_mewBgTitleView.backgroundColor = [UIColor whiteColor];
[_mewBgTitleView setCornerWithLeftTopCorner:0 rightTopCorner:kGetScaleWidth(12) bottomLeftCorner:kGetScaleWidth(12) bottomRightCorner:kGetScaleWidth(12) size:CGSizeMake(kGetScaleWidth(168), kGetScaleWidth(54))];
}
return _mewBgTitleView;
}
- (UILabel *)mewNameView{
if(!_mewNameView){
_mewNameView = [UILabel labelInitWithText:@"" font:kFontMedium(12) textColor:UIColorFromRGB(0x2B2D33)];
}
return _mewNameView;
}
- (UILabel *)mewConstellationView{
if(!_mewConstellationView){
_mewConstellationView = [UILabel labelInitWithText:@"" font:kFontRegular(8) textColor:UIColorFromRGB(0x9168FA)];
_mewConstellationView.backgroundColor = UIColorRGBAlpha(0x9168FA, 0.2);
_mewConstellationView.textAlignment = NSTextAlignmentCenter;
_mewConstellationView.layer.cornerRadius = kGetScaleWidth(15)/2;
_mewConstellationView.layer.masksToBounds = YES;
}
return _mewConstellationView;
}
- (UIView *)mewBgRoomView{
if(!_mewBgRoomView){
_mewBgRoomView = [UIImageView new];
_mewBgRoomView.image = kImage(@"mew_main_home_friend_cell_room_bg");
_mewBgRoomView.userInteractionEnabled = YES;
}
return _mewBgRoomView;
}
- (UIButton *)mewRoomBtn{
if(!_mewRoomBtn){
_mewRoomBtn = [UIButton new];
[_mewRoomBtn setBackgroundImage:kImage(@"mew_main_home_friend_cell_room") forState:UIControlStateNormal];
[_mewRoomBtn addTarget:self action:@selector(mew_clickRoomBtnAction) forControlEvents:UIControlEventTouchUpInside];
}
return _mewRoomBtn;
}
- (UILabel *)mewRoomNameView{
if(!_mewRoomNameView){
_mewRoomNameView = [[MarqueeLabel alloc] init];
_mewRoomNameView.scrollDuration = 8.0;
_mewRoomNameView.fadeLength = 6.0f;
_mewRoomNameView.font = kFontRegular(10);
_mewRoomNameView.textColor = UIColorFromRGB(0x696D7A);
}
return _mewRoomNameView;
}
- (UIView *)mewBgGameView{
if(!_mewBgGameView){
_mewBgGameView = [UIView new];
_mewBgGameView.backgroundColor = UIColorRGBAlpha(0x000000, 0.3);
_mewBgGameView.layer.cornerRadius = kGetScaleWidth(13)/2;
_mewBgGameView.layer.masksToBounds = YES;
}
return _mewBgGameView;
}
- (NetImageView *)mewGameIcon{
if(!_mewGameIcon){
NetImageConfig *config = [NetImageConfig new];
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_mewGameIcon = [[NetImageView alloc]initWithConfig:config];
}
return _mewGameIcon;
}
-(UILabel *)mewGameTitleView{
if(!_mewGameTitleView){
_mewGameTitleView = [UILabel labelInitWithText:@"" font:kFontMedium(7) textColor:[UIColor whiteColor]];
}
return _mewGameTitleView;
}
- (UIImageView *)mewPlayerView{
if(!_mewPlayerView){
_mewPlayerView = [UIImageView new];
_mewPlayerView.image = kImage(@"mew_main_home_friend_cell_player");
}
return _mewPlayerView;
}
@end

View File

@@ -0,0 +1,16 @@
//
// MewMainHomeMakeFriendEmptyCell.h
// xplan-ios
//
// Created by duoban on 2023/12/26.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface MewMainHomeMakeFriendEmptyCell : UICollectionViewCell
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,97 @@
//
// MewMainHomeMakeFriendEmptyCell.m
// xplan-ios
//
// Created by duoban on 2023/12/26.
//
#import "MewMainHomeMakeFriendEmptyCell.h"
@interface MewMainHomeMakeFriendEmptyCell()
@property(nonatomic,strong) UIImageView *mewIconView;
@property(nonatomic,strong) UILabel *mewTitleView;
@property(nonatomic,strong) UIView *mewHintBgView;
@property(nonatomic,strong) UIView *mewLineView;
@property(nonatomic,strong) UILabel *mewHintTextView;
@end
@implementation MewMainHomeMakeFriendEmptyCell
-(instancetype)initWithFrame:(CGRect)frame{
self = [super initWithFrame:frame];
if(self){
[self installUI];
[self installConstraints];
}
return self;
}
-(void)installUI{
[self.contentView addSubview:self.mewIconView];
[self.contentView addSubview:self.mewTitleView];
[self.contentView addSubview:self.mewHintBgView];
[self.mewHintBgView addSubview:self.mewLineView];
[self.mewHintBgView addSubview:self.mewHintTextView];
}
-(void)installConstraints{
[self.mewIconView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(kGetScaleWidth(159));
make.height.mas_equalTo(kGetScaleWidth(138));
make.top.mas_equalTo(kGetScaleWidth(14));
make.centerX.equalTo(self.contentView);
}];
[self.mewTitleView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.mewIconView.mas_bottom).mas_offset(kGetScaleWidth(3));
make.centerX.equalTo(self.contentView);
make.height.mas_equalTo(kGetScaleWidth(20));
}];
[self.mewHintBgView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.mewTitleView.mas_bottom).mas_offset(kGetScaleWidth(28));
make.height.mas_equalTo(kGetScaleWidth(48));
make.leading.trailing.equalTo(self.contentView).inset(kGetScaleWidth(0));
}];
[self.mewLineView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.trailing.equalTo(self.contentView).inset(kGetScaleWidth(28));
make.height.mas_equalTo(kGetScaleWidth(1));
make.centerY.equalTo(self.mewHintBgView);
}];
[self.mewHintTextView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(kGetScaleWidth(96));
make.center.equalTo(self.mewHintBgView);
make.height.mas_equalTo(kGetScaleWidth(20));
}];
}
#pragma mark -
- (UIImageView *)mewIconView{
if(!_mewIconView){
_mewIconView = [UIImageView new];
_mewIconView.image = kImage(@"mew_main_home_friend_empty_icon");
}
return _mewIconView;
}
- (UILabel *)mewTitleView{
if(!_mewTitleView){
_mewTitleView = [UILabel labelInitWithText:@"暂未找到合适的伙伴" font:kFontRegular(14) textColor:UIColorFromRGB(0x696D7A)];
}
return _mewTitleView;
}
- (UIView *)mewHintBgView{
if(!_mewHintBgView){
_mewHintBgView = [UIView new];
_mewHintBgView.backgroundColor = [UIColor whiteColor];
}
return _mewHintBgView;
}
- (UIView *)mewLineView{
if(!_mewLineView){
_mewLineView = [UIView new];
_mewLineView.backgroundColor = UIColorFromRGB(0xE9EBF2);
}
return _mewLineView;
}
- (UILabel *)mewHintTextView{
if(!_mewHintTextView){
_mewHintTextView = [UILabel labelInitWithText:@"大神推荐" font:kFontMedium(14) textColor:UIColorFromRGB(0x2B2D33)];
_mewHintTextView.textAlignment = NSTextAlignmentCenter;
_mewHintTextView.backgroundColor = [UIColor whiteColor];
}
return _mewHintTextView;
}
@end

View File

@@ -0,0 +1,16 @@
//
// MewMainHomeMakeFriendHeadCell.h
// xplan-ios
//
// Created by duoban on 2023/12/22.
//
#import <UIKit/UIKit.h>
#import "MewMainHomeGameTabModel.h"
NS_ASSUME_NONNULL_BEGIN
@interface MewMainHomeMakeFriendHeadCell : UICollectionViewCell
@property(nonatomic,strong) MewMainHomeGameTabModel *tabModel;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,66 @@
//
// MewMainHomeMakeFriendHeadCell.m
// xplan-ios
//
// Created by duoban on 2023/12/22.
//
#import "MewMainHomeMakeFriendHeadCell.h"
@interface MewMainHomeMakeFriendHeadCell()
@property(nonatomic,strong) NetImageView *mewUnclickView;
@property(nonatomic,strong) NetImageView *mewClickView;
@end
@implementation MewMainHomeMakeFriendHeadCell
-(instancetype)initWithFrame:(CGRect)frame{
self = [super initWithFrame:frame];
if(self){
[self installUI];
[self installConstraints];
}
return self;
}
-(void)installUI{
[self.contentView addSubview:self.mewUnclickView];
[self.contentView addSubview:self.mewClickView];
}
-(void)installConstraints{
[self.mewClickView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.contentView);
}];
[self.mewUnclickView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.contentView);
}];
}
- (void)setTabModel:(MewMainHomeGameTabModel *)tabModel{
_tabModel = tabModel;
self.mewClickView.image = nil;
self.mewUnclickView.image = nil;
self.mewClickView.hidden = !_tabModel.isOnClick;
self.mewUnclickView.hidden = _tabModel.isOnClick;
[self.mewClickView loadImageWithUrl:_tabModel.onClick completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) {
self.mewClickView.image = image;
}];
[self.mewUnclickView loadImageWithUrl:_tabModel.onUnclick completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) {
self.mewUnclickView.image = image;
}];
}
#pragma mark -
- (NetImageView *)mewUnclickView{
if(!_mewUnclickView){
NetImageConfig *config = [NetImageConfig new];
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_mewUnclickView = [[NetImageView alloc]initWithConfig:config];
}
return _mewUnclickView;
}
- (NetImageView *)mewClickView{
if(!_mewClickView){
NetImageConfig *config = [NetImageConfig new];
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_mewClickView = [[NetImageView alloc]initWithConfig:config];
}
return _mewClickView;
}
@end

View File

@@ -0,0 +1,16 @@
//
// MewMainHomeMoreGameCell.h
// xplan-ios
//
// Created by duoban on 2023/12/25.
//
#import <UIKit/UIKit.h>
#import "MewMainHomeHotRoomModel.h"
NS_ASSUME_NONNULL_BEGIN
@interface MewMainHomeMoreGameCell : UICollectionViewCell
@property(nonatomic,strong) MewMainHomeHotRoomModel *moreGameModel;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,187 @@
//
// MewMainHomeMoreGameCell.m
// xplan-ios
//
// Created by duoban on 2023/12/25.
//
#import "MewMainHomeMoreGameCell.h"
@interface MewMainHomeMoreGameCell()
@property(nonatomic,strong) NetImageView *mewBgImageView;
@property(nonatomic,strong) NetImageView *mewIconView;
@property(nonatomic,strong) UILabel *mewTitleView;
@property(nonatomic,strong) UILabel *mewSubView;
@property(nonatomic,strong) UIImageView *mewHotView;
@property(nonatomic,strong) UILabel *mewHotNumView;
@property(nonatomic,strong) UIView *mewMicNumBgView;
@end
@implementation MewMainHomeMoreGameCell
-(instancetype)initWithFrame:(CGRect)frame{
self = [super initWithFrame:frame];
if(self){
[self installUI];
[self installConstraints];
for (int i = 0; i < 5; i++) {
NetImageConfig *config = [NetImageConfig new];
config.placeHolder = i == 4 ? kImage(@"mew_main_home_more_game_add"):kImage(@"mew_main_home_more_game_mic");
NetImageView *imageView = [[NetImageView alloc]initWithConfig:config];
[self.mewMicNumBgView addSubview:imageView];
imageView.tag = 99+i;
imageView.layer.cornerRadius = kGetScaleWidth(18)/2;
imageView.layer.masksToBounds = YES;
imageView.layer.borderWidth = 0;
imageView.layer.borderColor = [UIColor whiteColor].CGColor;
CGFloat x = kGetScaleWidth(6) + i * kGetScaleWidth(12);
[imageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.mas_equalTo(x);
make.width.height.mas_equalTo(kGetScaleWidth(18));
make.centerY.equalTo(self.mewMicNumBgView);
}];
}
}
return self;
}
-(void)installUI{
[self.contentView addSubview:self.mewBgImageView];
[self.contentView addSubview:self.mewIconView];
[self.contentView addSubview:self.mewTitleView];
[self.contentView addSubview:self.mewSubView];
[self.contentView addSubview:self.mewHotView];
[self.contentView addSubview:self.mewHotNumView];
[self.contentView addSubview:self.mewMicNumBgView];
}
-(void)installConstraints{
[self.mewBgImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.contentView);
}];
[self.mewIconView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.height.mas_equalTo(kGetScaleWidth(40));
make.leading.mas_equalTo(kGetScaleWidth(8));
make.top.mas_equalTo(kGetScaleWidth(12));
}];
[self.mewTitleView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.mas_equalTo(kGetScaleWidth(52));
make.centerY.equalTo(self.mewIconView);
make.height.mas_equalTo(kGetScaleWidth(20));
make.trailing.mas_equalTo(-kGetScaleWidth(9));
}];
[self.mewSubView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.mas_equalTo(kGetScaleWidth(12));
make.top.mas_equalTo(kGetScaleWidth(62));
make.trailing.mas_equalTo(-kGetScaleWidth(9));
}];
[self.mewHotNumView mas_makeConstraints:^(MASConstraintMaker *make) {
make.trailing.mas_equalTo(-kGetScaleWidth(10));
make.height.mas_equalTo(kGetScaleWidth(14));
make.bottom.mas_equalTo(-kGetScaleWidth(14));
}];
[self.mewHotView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.height.mas_equalTo(kGetScaleWidth(12));
make.centerY.equalTo(self.mewHotNumView);
make.trailing.equalTo(self.mewHotNumView.mas_leading).mas_offset(-kGetScaleWidth(1));
}];
[self.mewMicNumBgView mas_makeConstraints:^(MASConstraintMaker *make) {
make.height.mas_equalTo(kGetScaleWidth(22));
make.width.mas_equalTo(kGetScaleWidth(78));
make.leading.mas_equalTo(kGetScaleWidth(10));
make.centerY.equalTo(self.mewHotView);
}];
}
-(void)setMoreGameModel:(MewMainHomeHotRoomModel *)moreGameModel{
_moreGameModel = moreGameModel;
_mewBgImageView.image = nil;
[_mewBgImageView loadImageWithUrl:_moreGameModel.backgroundPic completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) {
self.mewBgImageView.image = image;
}];
_mewIconView.image = nil;
[_mewIconView loadImageWithUrl:_moreGameModel.avatar completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) {
self.mewIconView.image = image;
}];
_mewTitleView.text = _moreGameModel.title;
_mewHotNumView.text = @(_moreGameModel.onlineNum).stringValue;
if(_moreGameModel.mgId == nil){
_mewSubView.text = @"扩列交友";
}else{
_mewSubView.text = _moreGameModel.state == 1 ? @"游戏进行中,立即围观":@"游戏未开始,等待加入";
}
for (int i = 0; i < 5; i++) {
NetImageView *imageView = [self.mewMicNumBgView viewWithTag:99+i];
if(i < _moreGameModel.micUsers.count){
MewMainHomeHotMicUserModel *userModel = [_moreGameModel.micUsers safeObjectAtIndex1:i];
imageView.image = nil;
[imageView loadImageWithUrl:userModel.avatar completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) {
imageView.image = image;
}];
imageView.layer.borderWidth = 1;
}else{
imageView.image = i == 4 ? kImage(@"mew_main_home_more_game_add"):kImage(@"mew_main_home_more_game_mic");
imageView.layer.borderWidth = 0;
}
}
}
#pragma mark -
- (NetImageView *)mewBgImageView{
if(!_mewBgImageView){
NetImageConfig *config = [NetImageConfig new];
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_mewBgImageView = [[NetImageView alloc]initWithConfig:config];
_mewBgImageView.contentMode = UIViewContentModeScaleAspectFill;
_mewBgImageView.clipsToBounds = YES ;
_mewBgImageView.layer.cornerRadius = kGetScaleWidth(12);
_mewBgImageView.layer.masksToBounds = YES;
}
return _mewBgImageView;
}
- (NetImageView *)mewIconView{
if(!_mewIconView){
NetImageConfig *config = [[NetImageConfig alloc]init];
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_mewIconView = [[NetImageView alloc]initWithConfig:config];
_mewIconView.layer.cornerRadius = kGetScaleWidth(40)/2;
_mewIconView.layer.masksToBounds = YES;
}
return _mewIconView;
}
- (UILabel *)mewTitleView{
if(!_mewTitleView){
_mewTitleView = [UILabel labelInitWithText:@"" font:kFontMedium(14) textColor:UIColorFromRGB(0x2B2D33)];
}
return _mewTitleView;
}
- (UILabel *)mewSubView{
if(!_mewSubView){
_mewSubView = [UILabel labelInitWithText:@"" font:kFontRegular(11) textColor:UIColorFromRGB(0x696D7A)];
}
return _mewSubView;
}
- (UILabel *)mewHotNumView{
if(!_mewHotNumView){
_mewHotNumView = [UILabel labelInitWithText:@"0" font:kFontBold(11) textColor:UIColorFromRGB(0x696D7A)];
}
return _mewHotNumView;
}
- (UIImageView *)mewHotView{
if(!_mewHotView){
_mewHotView = [UIImageView new];
_mewHotView.image = kImage(@"mew_main_home_more_game_hot");
}
return _mewHotView;
}
- (UIView *)mewMicNumBgView{
if(!_mewMicNumBgView){
_mewMicNumBgView = [UIView new];
_mewMicNumBgView.backgroundColor = [UIColor colorWithWhite:1 alpha:0.6];
_mewMicNumBgView.layer.cornerRadius = kGetScaleWidth(22)/2;
_mewMicNumBgView.layer.masksToBounds = YES;
_mewMicNumBgView.layer.borderWidth = 0.5;
_mewMicNumBgView.layer.borderColor = [UIColor whiteColor].CGColor;
}
return _mewMicNumBgView;
}
@end

View File

@@ -0,0 +1,16 @@
//
// MewMainHomeMoreGameHeadCell.h
// xplan-ios
//
// Created by duoban on 2023/12/25.
//
#import <UIKit/UIKit.h>
#import "MewMainHomeLittleGameInfoModel.h"
NS_ASSUME_NONNULL_BEGIN
@interface MewMainHomeMoreGameHeadCell : UICollectionViewCell
@property(nonatomic,strong) MewMainHomeLittleGameInfoModel *gameModel;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,52 @@
//
// MewMainHomeMoreGameHeadCell.m
// xplan-ios
//
// Created by duoban on 2023/12/25.
//
#import "MewMainHomeMoreGameHeadCell.h"
@interface MewMainHomeMoreGameHeadCell()
@property(nonatomic,strong) NetImageView *imageView;
@end
@implementation MewMainHomeMoreGameHeadCell
-(instancetype)initWithFrame:(CGRect)frame{
self = [super initWithFrame:frame];
if(self){
[self installUI];
[self installConstraints];
}
return self;
}
-(void)installUI{
[self.contentView addSubview:self.imageView];
}
-(void)installConstraints{
[self.imageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.contentView);
}];
}
-(void)setGameModel:(MewMainHomeLittleGameInfoModel *)gameModel{
_gameModel = gameModel;
if([_gameModel.mgId isEqualToString:@"-9999"]){
_imageView.image = kImage(@"mew_main_home_more_game_friend");
return;
}
_imageView.image = nil;
[_imageView loadImageWithUrl:_gameModel.pic completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) {
self.imageView.image = image;
}];
}
#pragma mark -
- (NetImageView *)imageView{
if(!_imageView){
NetImageConfig *config = [NetImageConfig new];
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_imageView = [[NetImageView alloc]initWithConfig:config];
_imageView.contentMode = UIViewContentModeScaleAspectFill;
_imageView.clipsToBounds = YES ;
}
return _imageView;
}
@end

View File

@@ -65,7 +65,7 @@
-(void)installUI{
[self.contentView addSubview:self.mewBgImageView];
[self.mewBgImageView addSubview:self.mewMaskView];
[self.mewBgImageView addSubview:self.mewTopOneView];
[self.contentView addSubview:self.mewTopOneView];
[self.contentView addSubview:self.mewTagView];
[self.mewTagView addSubview:self.mewHeatGifView];
[self.contentView addSubview:self.mewPKImageView];
@@ -108,10 +108,14 @@
}
-(void)installConstraints{
[self.mewBgImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.contentView);
make.centerX.equalTo(self.contentView);
make.bottom.equalTo(self.contentView).mas_offset(-kGetScaleWidth(2));
make.width.mas_equalTo(kGetScaleWidth(168));
make.height.mas_equalTo(kGetScaleWidth(164));
}];
[self.mewTopOneView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.mewBgImageView);
make.edges.equalTo(self.contentView);
}];
[self.mewMaskView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.mewBgImageView);
@@ -212,6 +216,7 @@
- (NetImageView *)mewTopOneView{
if(!_mewTopOneView){
_mewTopOneView = [NetImageView new];
}
return _mewTopOneView;
}

View File

@@ -90,7 +90,7 @@
[self.mewGiftView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.equalTo(self.mewReceiverTextView.mas_trailing).mas_offset(kGetScaleWidth(4));
make.centerY.equalTo(self);
make.width.mas_lessThanOrEqualTo(kGetScaleWidth(78));
}];
[self.mewGiftImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.equalTo(self.mewGiftView.mas_trailing).mas_offset(kGetScaleWidth(2));

View File

@@ -0,0 +1,35 @@
//
// MewMainHomeMakeFriendHeadView.h
// xplan-ios
//
// Created by duoban on 2023/12/22.
//
#import <UIKit/UIKit.h>
#import "MewMainHomeMenuInfoModel.h"
#import "MewMainHomeGameTabModel.h"
typedef enum : NSUInteger {
MewMainHomeMakeFriendHeadViewTyep_Game_Select,
MewMainHomeMakeFriendHeadViewTyep_Game_No_Select,
MewMainHomeMakeFriendHeadViewTyep_Change,
MewMainHomeMakeFriendHeadViewTyep_Sex,
} MewMainHomeMakeFriendHeadViewType;
NS_ASSUME_NONNULL_BEGIN
@protocol MewMainHomeMakeFriendHeadViewDelegate <NSObject>
///大神带飞
-(void)mew_selectGodFlightAction:(MewMainHomeMenuInfoModel *_Nullable)menuInfo;
///一键匹配
-(void)mew_selectOneClickMatchingAction:(MewMainHomeMenuInfoModel *_Nullable)menuInfo;
///选择游戏
-(void)mew_selectGameFriendAction:(MewMainHomeGameTabModel *_Nullable)gameInfo type:(MewMainHomeMakeFriendHeadViewType)type sender:(UILabel *_Nullable)sender;
@end
@interface MewMainHomeMakeFriendHeadView : UICollectionReusableView
@property(nonatomic,assign) BOOL isNoChooseSex;
@property(nonatomic,strong) NSMutableArray *mewGameList;
@property(nonatomic,strong) MewMainHomeMenuInfoModel *mewMeunInfo;
@property(nonatomic,weak) id<MewMainHomeMakeFriendHeadViewDelegate>delegate;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,306 @@
//
// MewMainHomeMakeFriendHeadView.m
// xplan-ios
//
// Created by duoban on 2023/12/22.
//
#import "MewMainHomeMakeFriendHeadView.h"
#import "MewMainHomeMakeFriendHeadCell.h"
@interface MewMainHomeMakeFriendHeadView()<UICollectionViewDelegate,UICollectionViewDataSource>
///
@property(nonatomic,strong) NetImageView *mewMahoganyView;
///
@property(nonatomic,strong) NetImageView *mewMatchingView;
@property(nonatomic,strong) UICollectionView *mewCollectionView;
///
@property(nonatomic,strong) UIView *mewChangeBGView;
@property(nonatomic,strong) UILabel *mewChangeTextView;
@property(nonatomic,strong) UIImageView *mewChangeImage;
@property(nonatomic,strong) UIButton *mewChangeBtn;
//
@property(nonatomic,strong) UIView *mewSelecteBGView;
@property(nonatomic,strong) UILabel *mewSelecteTextView;
@property(nonatomic,strong) UIButton *mewSelecteBtn;
@property(nonatomic,strong) UIImageView *mewSelecteImage;
@property(nonatomic,strong) UILabel *mewTitleView;
@end
@implementation MewMainHomeMakeFriendHeadView
-(instancetype)initWithFrame:(CGRect)frame{
self = [super initWithFrame:frame];
if(self){
[self installUI];
[self installConstraints];
}
return self;
}
-(void)installUI{
self.backgroundColor = [UIColor clearColor];
[self addSubview:self.mewMahoganyView];
[self addSubview:self.mewMatchingView];
[self addSubview:self.mewCollectionView];
[self addSubview:self.mewTitleView];
[self addSubview:self.mewChangeBGView];
[self addSubview:self.mewSelecteBGView];
[self.mewChangeBGView addSubview:self.mewChangeTextView];
[self.mewChangeBGView addSubview:self.mewChangeImage];
[self.mewChangeBGView addSubview:self.mewChangeBtn];
[self.mewSelecteBGView addSubview:self.mewSelecteTextView];
[self.mewSelecteBGView addSubview:self.mewSelecteImage];
[self.mewSelecteBGView addSubview:self.mewSelecteBtn];
}
-(void)installConstraints{
[self.mewMahoganyView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.mas_equalTo(kGetScaleWidth(15));
make.top.mas_equalTo(kGetScaleWidth(10));
make.width.mas_equalTo(kGetScaleWidth(171));
make.height.mas_equalTo(kGetScaleWidth(68));
}];
[self.mewMatchingView mas_makeConstraints:^(MASConstraintMaker *make) {
make.trailing.mas_equalTo(-kGetScaleWidth(15));
make.top.mas_equalTo(kGetScaleWidth(10));
make.width.mas_equalTo(kGetScaleWidth(171));
make.height.mas_equalTo(kGetScaleWidth(68));
}];
[self.mewCollectionView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.trailing.equalTo(self).inset(kGetScaleWidth(0));
make.top.equalTo(self.mewMahoganyView.mas_bottom).mas_offset(kGetScaleWidth(6));
make.height.mas_equalTo(kGetScaleWidth(69));
}];
[self.mewTitleView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.mewCollectionView.mas_bottom).mas_offset(kGetScaleWidth(20));
make.height.mas_equalTo(kGetScaleWidth(22));
make.leading.mas_equalTo(kGetScaleWidth(18));
}];
[self.mewSelecteBGView mas_makeConstraints:^(MASConstraintMaker *make) {
make.trailing.mas_equalTo(-kGetScaleWidth(15));
make.width.mas_equalTo(kGetScaleWidth(52));
make.height.mas_equalTo(kGetScaleWidth(22));
make.top.equalTo(self.mewCollectionView.mas_bottom).mas_offset(kGetScaleWidth(20));
}];
[self.mewChangeBGView mas_makeConstraints:^(MASConstraintMaker *make) {
make.trailing.mas_equalTo(-kGetScaleWidth(73));
make.width.mas_equalTo(kGetScaleWidth(64));
make.height.mas_equalTo(kGetScaleWidth(22));
make.top.equalTo(self.mewCollectionView.mas_bottom).mas_offset(kGetScaleWidth(20));
}];
[self.mewSelecteImage mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.height.mas_equalTo(kGetScaleWidth(14));
make.centerY.equalTo(self.mewSelecteBGView);
make.trailing.mas_equalTo(-kGetScaleWidth(7));
}];
[self.mewSelecteTextView mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerY.equalTo(self.mewSelecteBGView);
make.trailing.mas_equalTo(-kGetScaleWidth(22));
}];
[self.mewSelecteBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.mewSelecteBGView);
}];
[self.mewChangeImage mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.height.mas_equalTo(kGetScaleWidth(14));
make.trailing.mas_equalTo(-kGetScaleWidth(7));
make.centerY.equalTo(self.mewChangeBGView);
}];
[self.mewChangeTextView mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerY.equalTo(self.mewChangeBGView);
make.trailing.mas_equalTo(-kGetScaleWidth(22));
}];
[self.mewChangeBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.mewChangeBGView);
}];
}
-(void)setMewMeunInfo:(MewMainHomeMenuInfoModel *)mewMeunInfo{
_mewMeunInfo = mewMeunInfo;
_mewMahoganyView.image = nil;
[_mewMahoganyView loadImageWithUrl:_mewMeunInfo.icon completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) {
self.mewMahoganyView.image = image;
}];
}
-(void)setMewGameList:(NSMutableArray *)mewGameList{
_mewGameList = mewGameList;
[self.mewCollectionView reloadData];
}
#pragma mark- UICollectionViewDelegate,UICollectionViewDataSource
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{
return self.mewGameList.count;
}
-(__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
MewMainHomeMakeFriendHeadCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([MewMainHomeMakeFriendHeadCell class]) forIndexPath:indexPath];
cell.tabModel = [self.mewGameList safeObjectAtIndex1:indexPath.row];
return cell;
}
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{
MewMainHomeGameTabModel *tapModel = [self.mewGameList safeObjectAtIndex1:indexPath.row];
if(tapModel.isOnClick == YES){
tapModel.isOnClick = NO;
}else{
for (MewMainHomeGameTabModel *obj in self.mewGameList) {
obj.isOnClick = NO;
}
tapModel.isOnClick = YES;
}
[self.mewCollectionView reloadData];
MewMainHomeMakeFriendHeadViewType type = type = tapModel.isOnClick == YES ? MewMainHomeMakeFriendHeadViewTyep_Game_Select: MewMainHomeMakeFriendHeadViewTyep_Game_No_Select;
if(self.delegate && [self.delegate respondsToSelector:@selector(mew_selectGameFriendAction:type:sender:)]){
[self.delegate mew_selectGameFriendAction:tapModel type:type sender:nil];
}
}
-(void)mew_clickMahoganyAction{
if(self.delegate && [self.delegate respondsToSelector:@selector(mew_selectGodFlightAction:)]){
[self.delegate mew_selectGodFlightAction:self.mewMeunInfo];
}
}
-(void)mew_clickMatchingAction{
MewMainHomeMenuInfoModel *infoModel = [MewMainHomeMenuInfoModel new];
infoModel.isOneClickMatching = YES;
if(self.delegate && [self.delegate respondsToSelector:@selector(mew_selectOneClickMatchingAction:)]){
[self.delegate mew_selectOneClickMatchingAction:infoModel];
}
}
-(void)setIsNoChooseSex:(BOOL)isNoChooseSex{
_isNoChooseSex = isNoChooseSex;
self.mewSelecteBtn.selected = !self.mewSelecteBtn.selected;
if(self.mewSelecteBtn.selected){
self.mewSelecteImage.transform = CGAffineTransformMakeRotation(M_PI);
}else{
self.mewSelecteImage.transform = CGAffineTransformIdentity;
}
}
-(void)mew_clickChangeBtnAction{
[UIView animateWithDuration:0.5 animations:^{
self.mewChangeImage.transform = CGAffineTransformMakeRotation(M_PI);
}completion:^(BOOL finished) {
self.mewChangeImage.transform = CGAffineTransformIdentity;
}];
if(self.delegate && [self.delegate respondsToSelector:@selector(mew_selectGameFriendAction:type:sender:)]){
[self.delegate mew_selectGameFriendAction:nil type:MewMainHomeMakeFriendHeadViewTyep_Change sender:nil];
}
}
-(void)mew_clickSelecteBtnAction{
self.mewSelecteBtn.selected = !self.mewSelecteBtn.selected;
if(self.mewSelecteBtn.selected){
self.mewSelecteImage.transform = CGAffineTransformMakeRotation(M_PI);
}else{
self.mewSelecteImage.transform = CGAffineTransformIdentity;
}
if(self.delegate && [self.delegate respondsToSelector:@selector(mew_selectGameFriendAction:type:sender:)]){
[self.delegate mew_selectGameFriendAction:nil type:MewMainHomeMakeFriendHeadViewTyep_Sex sender:self.mewSelecteTextView];
}
}
#pragma mark -
- (NetImageView *)mewMahoganyView{
if(!_mewMahoganyView){
NetImageConfig *config = [NetImageConfig new];
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_mewMahoganyView = [[NetImageView alloc]initWithConfig:config];
_mewMahoganyView.contentMode = UIViewContentModeScaleAspectFill;
_mewMahoganyView.clipsToBounds = YES ;
_mewMahoganyView.layer.cornerRadius = kGetScaleWidth(10);
_mewMahoganyView.layer.masksToBounds = YES;
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(mew_clickMahoganyAction)];
_mewMahoganyView.userInteractionEnabled = YES;
[_mewMahoganyView addGestureRecognizer:tap];
}
return _mewMahoganyView;
}
- (NetImageView *)mewMatchingView{
if(!_mewMatchingView){
NetImageConfig *config = [NetImageConfig new];
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_mewMatchingView = [[NetImageView alloc]initWithConfig:config];
_mewMatchingView.image = kImage(@"mew_main_home_friend_head_matching");
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(mew_clickMatchingAction)];
_mewMatchingView.userInteractionEnabled = YES;
[_mewMatchingView addGestureRecognizer:tap];
}
return _mewMatchingView;
}
- (UICollectionView *)mewCollectionView{
if(!_mewCollectionView){
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc]init];
layout.itemSize = CGSizeMake(kGetScaleWidth(86), kGetScaleWidth(69));
layout.sectionInset = UIEdgeInsetsMake(0, kGetScaleWidth(12), 0, kGetScaleWidth(12));
layout.minimumLineSpacing = 0;
layout.minimumInteritemSpacing = 0;
_mewCollectionView = [[UICollectionView alloc]initWithFrame:CGRectZero collectionViewLayout:layout];
_mewCollectionView.delegate = self;
_mewCollectionView.dataSource = self;
_mewCollectionView.backgroundColor = [UIColor clearColor];
[_mewCollectionView registerClass:[MewMainHomeMakeFriendHeadCell class] forCellWithReuseIdentifier:NSStringFromClass([MewMainHomeMakeFriendHeadCell class])];
}
return _mewCollectionView;
}
- (UIView *)mewChangeBGView{
if(!_mewChangeBGView){
_mewChangeBGView = [UIView new];
_mewChangeBGView.backgroundColor = UIColorRGBAlpha(0x000000, 0.06);
_mewChangeBGView.layer.cornerRadius = kGetScaleWidth(22)/2;
_mewChangeBGView.layer.masksToBounds = YES;
}
return _mewChangeBGView;
}
- (UILabel *)mewChangeTextView{
if(!_mewChangeTextView){
_mewChangeTextView = [UILabel labelInitWithText:@"换一换" font:kFontRegular(11) textColor:UIColorFromRGB(0x696D7A)];
}
return _mewChangeTextView;
}
- (UIImageView *)mewChangeImage{
if(!_mewChangeImage){
_mewChangeImage = [UIImageView new];
_mewChangeImage.image = kImage(@"mew_main_home_friend_head_change") ;
}
return _mewChangeImage;
}
- (UIButton *)mewChangeBtn{
if(!_mewChangeBtn){
_mewChangeBtn = [UIButton new];
_mewChangeBtn.yn_acceptEventInterval = 1;
[_mewChangeBtn addTarget:self action:@selector(mew_clickChangeBtnAction) forControlEvents:UIControlEventTouchUpInside];
}
return _mewChangeBtn;
}
- (UIView *)mewSelecteBGView{
if(!_mewSelecteBGView){
_mewSelecteBGView = [UIView new];
_mewSelecteBGView.backgroundColor = UIColorRGBAlpha(0x000000, 0.06);
_mewSelecteBGView.layer.cornerRadius = kGetScaleWidth(22)/2;
_mewSelecteBGView.layer.masksToBounds = YES;
}
return _mewSelecteBGView;
}
- (UILabel *)mewSelecteTextView{
if(!_mewSelecteTextView){
_mewSelecteTextView = [UILabel labelInitWithText:@"全部" font:kFontRegular(11) textColor:UIColorFromRGB(0x696D7A)];
}
return _mewSelecteTextView;
}
-(UIButton *)mewSelecteBtn{
if(!_mewSelecteBtn){
_mewSelecteBtn = [UIButton new];
[ _mewSelecteBtn addTarget:self action:@selector(mew_clickSelecteBtnAction) forControlEvents:UIControlEventTouchUpInside];
}
return _mewSelecteBtn;
}
- (UIImageView *)mewSelecteImage{
if(!_mewSelecteImage){
_mewSelecteImage = [UIImageView new];
_mewSelecteImage.image = kImage(@"mew_main_home_friend_head_selecte");
}
return _mewSelecteImage;
}
- (UILabel *)mewTitleView{
if(!_mewTitleView){
_mewTitleView = [UILabel labelInitWithText:@"玩伴推荐" font:kFontMedium(16) textColor:UIColorFromRGB(0x2B2D33)];
}
return _mewTitleView;
}
@end

View File

@@ -0,0 +1,22 @@
//
// MewMainHomeMoreGameHeadView.h
// xplan-ios
//
// Created by duoban on 2023/12/25.
//
#import <UIKit/UIKit.h>
#import "MewMainHomeLittleGameInfoModel.h"
NS_ASSUME_NONNULL_BEGIN
@protocol MewMainHomeMoreGameHeadViewDelegate <NSObject>
///选择游戏
-(void)mew_selectGameAction:(MewMainHomeLittleGameInfoModel *_Nullable)gameInfo;
@end
@interface MewMainHomeMoreGameHeadView : UICollectionReusableView
@property(nonatomic,strong) NSMutableArray *mewGameList;
@property(nonatomic,weak) id<MewMainHomeMoreGameHeadViewDelegate>delegate;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,71 @@
//
// MewMainHomeMoreGameHeadView.m
// xplan-ios
//
// Created by duoban on 2023/12/25.
//
#import "MewMainHomeMoreGameHeadView.h"
#import "MewMainHomeMoreGameHeadCell.h"
@interface MewMainHomeMoreGameHeadView()<UICollectionViewDelegate,UICollectionViewDataSource>
@property(nonatomic,strong) UICollectionView *mewCollectionView;
@end
@implementation MewMainHomeMoreGameHeadView
-(instancetype)initWithFrame:(CGRect)frame{
self = [super initWithFrame:frame];
if(self){
[self installUI];
[self installConstraints];
}
return self;
}
-(void)installUI{
[self addSubview:self.mewCollectionView];
}
-(void)installConstraints{
[self.mewCollectionView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self);
}];
}
-(void)setMewGameList:(NSMutableArray *)mewGameList{
_mewGameList = mewGameList;
[self.mewCollectionView reloadData];
}
#pragma mark- UICollectionViewDelegate,UICollectionViewDataSource
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{
return self.mewGameList.count;
}
-(__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
MewMainHomeMoreGameHeadCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([MewMainHomeMoreGameHeadCell class]) forIndexPath:indexPath];
cell.gameModel = [self.mewGameList safeObjectAtIndex1:indexPath.row];
return cell;
}
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{
MewMainHomeLittleGameInfoModel *model = [self.mewGameList safeObjectAtIndex1:indexPath.row];
if(model && self.delegate && [self.delegate respondsToSelector:@selector(mew_selectGameAction:)]){
[self.delegate mew_selectGameAction:model];
}
}
#pragma mark -
- (UICollectionView *)mewCollectionView{
if(!_mewCollectionView){
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc]init];
layout.itemSize = CGSizeMake(kGetScaleWidth(82), kGetScaleWidth(67));
layout.sectionInset = UIEdgeInsetsMake(0, kGetScaleWidth(10), 0, kGetScaleWidth(10));
layout.minimumLineSpacing = kGetScaleWidth(5);
layout.minimumInteritemSpacing = kGetScaleWidth(5);
layout.scrollDirection = UICollectionViewScrollDirectionHorizontal;
_mewCollectionView = [[UICollectionView alloc]initWithFrame:CGRectZero collectionViewLayout:layout];
_mewCollectionView.delegate = self;
_mewCollectionView.dataSource = self;
_mewCollectionView.showsVerticalScrollIndicator = NO;
_mewCollectionView.showsHorizontalScrollIndicator = NO;
_mewCollectionView.backgroundColor = [UIColor clearColor];
[_mewCollectionView registerClass:[MewMainHomeMoreGameHeadCell class] forCellWithReuseIdentifier:NSStringFromClass([MewMainHomeMoreGameHeadCell class])];
}
return _mewCollectionView;
}
@end

View File

@@ -29,6 +29,7 @@
NetImageConfig *config = [[NetImageConfig alloc]init];
config.placeHolder = [UIImageConstant defalutBannerPlaceholder];
NetImageView *imageView = [[NetImageView alloc]initWithConfig:config];
imageView.backgroundColor = [UIColor clearColor];
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(clickBtnAction:)];
[imageView addGestureRecognizer:tap];
imageView.userInteractionEnabled = YES;

View File

@@ -6,31 +6,284 @@
//
#import "MewMainHomeMakeFriendVC.h"
@interface MewMainHomeMakeFriendVC ()
#import "XPHomeListEmptyCollectionViewCell.h"
#import "MewMainHomeMakeFriendHeadView.h"
#import "MewHomeManager.h"
#import "MewMainHomeProtocol.h"
#import "MewMainHomeMenuInfoModel.h"
#import "MewMainHomeMakeFriendCell.h"
#import "XPWebViewController.h"
#import "Api+MewHomeApi.h"
#import "MewMainHomeMenuDataModel.h"
#import "XPRoomViewController.h"
#import "RoomInfoModel.h"
#import "Api+Room.h"
#import "XPLittleGameRoomOpenView.h"
#import "XPHomeRecommendOtherRoomView.h"
#import "SessionViewController.h"
#import "XPNewHomeFilterView.h"
#import "CountDownHelper.h"
#import "XPSkillCardPlayerManager.h"
#import "UploadFile.h"
#import "XPMineUserInfoViewController.h"
#import "MewMainHomeMakeFriendEmptyCell.h"
@interface MewMainHomeMakeFriendVC ()<MewMainHomeMakeFriendHeadViewDelegate,UICollectionViewDelegate,UICollectionViewDataSource,UICollectionViewDelegateFlowLayout,XPHomeRecommendOtherRoomViewDelegate,MewMainHomeMakeFriendCellDelegate,CountDownHelperDelegate>
@property(nonatomic,strong) UICollectionView *mewCollectionView;
@property(nonatomic,strong) NSMutableArray *mewFriendList;
@property(nonatomic,strong) NSMutableArray *mewRecommendList;
@property(nonatomic,strong) NSMutableArray *mewTabList;
@property (nonatomic, copy) void(^scrollCallback)(UIScrollView *scrollView);
@property(nonatomic,strong) MewMainHomeMenuInfoModel *mewMenuInfo;
@property(nonatomic,strong) MewMainHomeMakeFriendCell *mewPlayCell;
@property(nonatomic,copy) NSString *gameId;
///
@property (nonatomic, assign) NSInteger mewIndex;
@property(nonatomic,assign) BOOL isNoChooseSex;
///
@property (nonatomic,strong) NSString *mewSex;
@property(nonatomic,strong) CountDownHelper *mewDownHelper;
@end
@implementation MewMainHomeMakeFriendVC
@synthesize parentMode = _parentMode;
- (MewHomeManager *)createPresenter {
return [[MewHomeManager alloc] init];
}
- (BOOL)isHiddenNavBar {
return YES;
}
-(void)viewDidDisappear:(BOOL)animated{
[super viewDidAppear:animated];
[self.mewDownHelper stopCountDown];
[[XPSkillCardPlayerManager shareInstance] stopMusic];
if(self.mewPlayCell != nil){
[self.mewPlayCell mew_setPlayVoiceStatus:NO];
self.mewPlayCell = nil;
}
}
- (void)viewDidLoad {
[super viewDidLoad];
self.view.backgroundColor = [UIColor clearColor];
[self installUI];
[self installConstraints];
[self headerRefresh];
}
-(void)installUI{
[self.view addSubview:self.mewCollectionView];
}
-(void)installConstraints{
[self.mewCollectionView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.view);
}];
}
- (void)headerRefresh{
if (_parentMode) return;
if(self.mewPlayCell != nil){
if(self.delegate && [self.delegate respondsToSelector:@selector(mew_RefreshDataSucceed:)]){
[self.delegate mew_RefreshDataSucceed:self];
}
return;
}
[self.presenter mew_requestMainHomeTopDataList];
[self.presenter mew_requsetMainHomeGameTabList];
[self.presenter mew_requestMainHomeNewFriendListWithGender:self.mewSex gameId:self.gameId];
[self.presenter mew_RequestMainHomeFriendMahoganyList];
}
///
- (void)mew_RefreshFriendListData {
if (self.isViewLoaded && self.view.window) {
[self.presenter mew_requestMainHomeNewFriendListWithGender:self.mewSex gameId:self.gameId];
}
}
#pragma mark- MewMainHomeProtocol
///
-(void)mew_getHomeTopDataSuccess:(NSArray *)menuList{
for (MewMainHomeMenuInfoModel *obj in menuList) {
if(obj.posSeq == 5){
self.mewMenuInfo = obj;
break;
}
}
if(self.mewMenuInfo == nil)return;
if(self.mewPlayCell == nil){
[self.mewCollectionView reloadData];
}
}
///
-(void)mew_getHomeTopDataFail{
}
///
-(void)mew_getNewFriendListSuccess:(NSArray *)list gameId:(nullable NSString *)gameId{
[self hideHUD];
self.mewFriendList = [[NSMutableArray alloc]initWithArray:list];
if(self.mewPlayCell == nil){
[self.mewCollectionView reloadData];
}
if(self.delegate && [self.delegate respondsToSelector:@selector(mew_RefreshDataSucceed:)]){
[self.delegate mew_RefreshDataSucceed:self];
}
}
///
-(void)mew_getNewFriendListFailWithGameId:(nullable NSString *)gameId{
[self hideHUD];
if(self.delegate && [self.delegate respondsToSelector:@selector(mew_RefreshDataSucceed:)]){
[self.delegate mew_RefreshDataSucceed:self];
}
}
///
-(void)mew_RequestMainHomeFriendMahoganyListSuccess:(NSArray *)list{
self.mewRecommendList = [NSMutableArray arrayWithArray:list];
}
///
-(void)mew_getMainHomeGameTabList:(NSArray *)list{
if(self.mewTabList.count == 0){
self.mewTabList = [NSMutableArray arrayWithArray:list];
}else{
MewMainHomeGameTabModel *tabModel;
for (MewMainHomeGameTabModel *obj in self.mewTabList) {
if(obj.isOnClick == YES){
tabModel = obj;
break;
}
}
if(tabModel){
for (MewMainHomeGameTabModel *obj in list) {
if([obj.gameId isEqualToString:tabModel.gameId]){
obj.isOnClick = tabModel.isOnClick;
break;
}
}
}
self.mewTabList = [NSMutableArray arrayWithArray:list];
}
if(self.mewPlayCell == nil){
[self.mewCollectionView reloadData];
}
}
//////
-(void)mew_getMainHomeFriendChatPickDataSuccess:(NSString *)uid{
///
NSString *sessionId = uid;
NIMSession *session = [NIMSession session:sessionId type:NIMSessionTypeP2P];
SessionViewController *sessionVC = [[SessionViewController alloc] initWithSession:session];
sessionVC.isNOAstrictChat = YES;
[self.navigationController pushViewController:sessionVC animated:YES];
}
//////
-(void)mew_getMainHomeFriendChatPickDataFail:(NSString *)msg{
}
#pragma mark - MewMainHomeMakeFriendHeadViewDelegate
///
-(void)mew_selectGodFlightAction:(MewMainHomeMenuInfoModel *_Nullable)menuInfo{
if (menuInfo.resourceType == MewMainHomeMenuInfoModelType_H5) {
XPWebViewController * webVC = [[ XPWebViewController alloc] init];
webVC.url = menuInfo.resourceContent;
[self.navigationController pushViewController:webVC animated:YES];
}else {
NSString * uid = [AccountInfoStorage instance].getUid;
if (menuInfo.hid.length > 0 && uid.length > 0) {
[Api mew_RequestMainHomePickResource:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
if (code == 200) {
MewMainHomeMenuDataModel * sourceModel = [MewMainHomeMenuDataModel modelWithDictionary:data.data];
if (sourceModel.isPick) {
if([sourceModel.uid isEqualToString:[AccountInfoStorage instance].getUid]){
[self mew_clickMyRoom:sourceModel.uid];
return;
}
if (sourceModel.uid.integerValue > 0) {
[XPRoomViewController openRoom:sourceModel.uid fromNick:nil fromType:UserEnterRoomFromType_Home_Recommend fromUid:nil viewController:self];
}
} else {
XPHomeRecommendOtherRoomView * recommendView = [[XPHomeRecommendOtherRoomView alloc] init];
recommendView.delegate = self;
recommendView.roomInfo = sourceModel;
[TTPopup popupView:recommendView style:TTPopupStyleAlert];
}
} else {
[XCHUDTool showErrorWithMessage:msg];
}
} uid:uid rid:menuInfo.hid type:@"0"];
}
}
}
///
-(void)mew_selectOneClickMatchingAction:(MewMainHomeMenuInfoModel *_Nullable)menuInfo{
[self.presenter mew_getMainHomeFriendChatPickData];
}
///
-(void)mew_selectGameFriendAction:(MewMainHomeGameTabModel *_Nullable)gameInfo type:(MewMainHomeMakeFriendHeadViewType)type sender:(UILabel *_Nullable)sender{
if(type == MewMainHomeMakeFriendHeadViewTyep_Change){
[self mew_RefreshFriendListData];
}else if (type == MewMainHomeMakeFriendHeadViewTyep_Sex){
XPNewHomeFilterView *filterView = [[XPNewHomeFilterView alloc] init];
@kWeakify(self);
@kWeakify(sender);
filterView.selectBlock = ^(NSString *gender, NSString *title, NSInteger index) {
@kStrongify(self);
@kStrongify(sender);
if(index == 404){
self.isNoChooseSex = YES;
if(self.mewPlayCell == nil){
[self.mewCollectionView reloadData];
}
return;
}
sender.text = title;
//
self.mewSex = gender;
self.mewIndex = index;
[self mew_RefreshFriendListData];
};
[filterView addToVCView:self.view targetView:sender selectedIndex:self.mewIndex];
}else if (type == MewMainHomeMakeFriendHeadViewTyep_Game_Select){
[self showLoading];
self.gameId = gameInfo.gameId;
[self.presenter mew_requestMainHomeNewFriendListWithGender:self.mewSex gameId:gameInfo.gameId];
}else{
[self showLoading];
self.gameId = nil;
[self.presenter mew_requestMainHomeNewFriendListWithGender:self.mewSex gameId:self.gameId];
}
}
///
- (void)mew_clickMyRoom:(NSString *)roomUid{
[Api getRoomInfo:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
if (code == 200) {
RoomInfoModel * roomInfo = [RoomInfoModel modelWithJSON:data.data];
if (roomInfo.isReselect) {
XPLittleGameRoomOpenView * roomOpenView = [[XPLittleGameRoomOpenView alloc] init];
roomOpenView.roomInfo = roomInfo;
roomOpenView.currentVC = self;
[TTPopup popupView:roomOpenView style:TTPopupStyleActionSheet];
} else {
[XPRoomViewController openRoom:roomUid viewController:self];
}
} else {
[self showErrorToast:msg];
}
} uid:roomUid intoUid:roomUid];
}
#pragma mark - XPHomeRecommendOtherRoomViewDelegate
- (void)xPHomeRecommendOtherRoomView:(XPHomeRecommendOtherRoomView *)view didClickEnterRoom:(MewMainHomeMenuDataModel *)model {
if (model.uid.integerValue > 0) {
if([model.uid isEqualToString:[AccountInfoStorage instance].getUid]){
[self mew_clickMyRoom:model.uid];
return;
}
[XPRoomViewController openRoom:model.uid fromNick:nil fromType:UserEnterRoomFromType_Home_Recommend fromUid:nil viewController:self];
}
}
#pragma mark - JXPagingViewListViewDelegate
- (UIView *)listView {
return self.view;
@@ -45,10 +298,204 @@
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
if(self.mewPlayCell != nil){
BOOL isVisible = YES;
CGRect cellR = [self.mewCollectionView convertRect:self.mewPlayCell.frame toView:self.mewCollectionView];
if((self.mewCollectionView.contentOffset.y - (cellR.origin.y)) > cellR.size.height){
isVisible = NO;
}
if (cellR.origin.y - self.mewCollectionView.contentOffset.y > self.mewCollectionView.frame.size.height) {//
isVisible = NO;
}
if(!isVisible && [self.mewPlayCell isKindOfClass:[MewMainHomeMakeFriendCell class]]) {
[self.mewDownHelper stopCountDown];
[[XPSkillCardPlayerManager shareInstance] stopMusic];
[self.mewPlayCell mew_setPlayVoiceStatus:NO];
self.mewPlayCell = nil;
}
}
if(self.scrollCallback){
self.scrollCallback(scrollView);
}
}
#pragma mark - MewMainHomeMakeFriendCellDelegate
///
-(void)mew_clickPlayVoiceActionWithCell:(MewMainHomeMakeFriendCell *)cell model:(MewMainHomeMakeFriendModel *)model isPlay:(BOOL)isPlay{
if(isPlay == YES){
if(self.mewPlayCell != nil){
[self.mewDownHelper stopCountDown];
[self.mewPlayCell mew_setPlayVoiceStatus:NO];
[[XPSkillCardPlayerManager shareInstance] stopMusic];
self.mewPlayCell = nil;
}
self.mewPlayCell = cell;
NSString *fileName = [[model.playUrl componentsSeparatedByString:@"/"] lastObject];
NSString *filePath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) safeObjectAtIndex1:0] stringByAppendingPathComponent:@"kMewMainHomeVoiceCard"];
NSString *fullPath = [filePath stringByAppendingPathComponent:fileName];
if ([[NSFileManager defaultManager] fileExistsAtPath:fullPath]) {
[self mew_setplayAudioWithUrl:fullPath ];
}else{
if (![[NSFileManager defaultManager] fileExistsAtPath:filePath]) {
NSFileManager *fileMgr = [[NSFileManager alloc] init];
[fileMgr createDirectoryAtPath:filePath withIntermediateDirectories:YES attributes:nil error:nil];
}
[UploadFile mew_downloadAudioWithFileName:fileName musicUrl:model.playUrl mainFileName:@"kMewMainHomeVoiceCard" completion:^(BOOL isSuccess, NSString *editAudioPath) {
if(isSuccess){
[self mew_setplayAudioWithUrl:editAudioPath];
}else{
[self.mewPlayCell mew_setPlayVoiceStatus:NO];
[[XPSkillCardPlayerManager shareInstance] stopMusic];
self.mewPlayCell = nil;
}
}];
}
}else{
[self.mewDownHelper stopCountDown];
[self.mewPlayCell mew_setPlayVoiceStatus:NO];
[[XPSkillCardPlayerManager shareInstance] stopMusic];
self.mewPlayCell = nil;
}
}
///
/// - Parameters:
/// - url:
/// - isDelay: 0.50.5
-(void)mew_setplayAudioWithUrl:(NSString*)url {
NSInteger getCurrentTime = ceil([self.mewPlayCell.friendModel.playTime integerValue]);
[self.mewDownHelper openCountdownWithTime:(int)getCurrentTime];
[[XPSkillCardPlayerManager shareInstance] playerVoiceWithPath:url completionBlock:^{
[[XPSkillCardPlayerManager shareInstance] stopMusic];
}];
}
///
-(void)mew_clickRoomBtnActionWithModel:(MewMainHomeMakeFriendModel *)model{
if(model.lock == 1)return;
if (model.inRoomUid.length > 0) {
if (model.inMic) {
[XPRoomViewController openRoom:model.inRoomUid fromNick:model.nick fromType:UserEnterRoomFromType_Follow_User fromUid:[NSString stringWithFormat:@"%@",model.uid] viewController:self];
}else{
[XPRoomViewController openRoom:model.inRoomUid fromNick:nil fromType:UserEnterRoomFromType_Home_Recommend fromUid:nil viewController:self];
}
}
}
///
-(void)mew_clickAvatarBtnActionWithModel:(MewMainHomeMakeFriendModel *)model{
XPMineUserInfoViewController *userInfoVC = [XPMineUserInfoViewController new];
userInfoVC.uid = [model.uid integerValue];
[self.navigationController pushViewController:userInfoVC animated:YES];
}
#pragma mark- UICollectionViewDelegate,UICollectionViewDataSource,UICollectionViewDelegateFlowLayout
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
if(self.gameId != nil && self.mewFriendList.count == 0){
return self.mewRecommendList.count + 1;
}
return self.mewFriendList.count > 0 ? self.mewFriendList.count : 1;
}
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section{
return CGSizeMake(0, kGetScaleWidth(206));
}
-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath{
if(self.gameId != nil && self.mewFriendList.count == 0){
return indexPath.row == 0 ? CGSizeMake(KScreenWidth, 255):CGSizeMake(kGetScaleWidth(168), kGetScaleWidth(184));
}
return self.mewFriendList.count == 0 ? CGSizeMake(KScreenWidth, 150):CGSizeMake(kGetScaleWidth(168), kGetScaleWidth(184));
}
- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath
{
if(kind == UICollectionElementKindSectionHeader){
MewMainHomeMakeFriendHeadView *headView = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader
withReuseIdentifier:NSStringFromClass([MewMainHomeMakeFriendHeadView class]) forIndexPath:indexPath];
headView.mewMeunInfo = self.mewMenuInfo;
headView.mewGameList = self.mewTabList;
headView.delegate = self;
return headView;
}
return nil;
}
- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
if(self.gameId != nil && self.mewFriendList.count == 0){
if(indexPath.row == 0){
MewMainHomeMakeFriendEmptyCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([MewMainHomeMakeFriendEmptyCell class]) forIndexPath:indexPath];
return cell;
}
MewMainHomeMakeFriendCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([MewMainHomeMakeFriendCell class]) forIndexPath:indexPath];
cell.friendModel = [self.mewRecommendList safeObjectAtIndex1:indexPath.row];
cell.delegate = self;
return cell;
}
if(self.mewFriendList.count == 0){
XPHomeListEmptyCollectionViewCell * emptyCell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([XPHomeListEmptyCollectionViewCell class]) forIndexPath:indexPath];
return emptyCell;
}
MewMainHomeMakeFriendCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([MewMainHomeMakeFriendCell class]) forIndexPath:indexPath];
cell.friendModel = [self.mewFriendList safeObjectAtIndex1:indexPath.row];
cell.delegate = self;
return cell;
}
#pragma mark - CountDownHelperDelegate
///
- (void)onCountdownFinish{
if(self.mewPlayCell != nil){
[self.mewPlayCell mew_setPlayVoiceTime:0];
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.3 * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
[self.mewPlayCell mew_setPlayVoiceStatus:NO];
self.mewPlayCell = nil;
});
}
}
///
- (void)onCountdownOpen:(int)time{
if(self.mewPlayCell != nil){
[self.mewPlayCell mew_setPlayVoiceTime:(int)time + 1];
}
}
#pragma mark -
- (UICollectionView *)mewCollectionView{
if(!_mewCollectionView){
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc]init];
layout.sectionInset = UIEdgeInsetsMake(0, kGetScaleWidth(15), kGetScaleWidth(15), kGetScaleWidth(15));
layout.minimumLineSpacing = kGetScaleWidth(8);
layout.minimumInteritemSpacing = kGetScaleWidth(8);
_mewCollectionView = [[UICollectionView alloc]initWithFrame:CGRectZero collectionViewLayout:layout];
_mewCollectionView.backgroundColor = [UIColor clearColor];
_mewCollectionView.delegate = self;
_mewCollectionView.dataSource = self;
[_mewCollectionView registerClass:[XPHomeListEmptyCollectionViewCell class] forCellWithReuseIdentifier:NSStringFromClass([XPHomeListEmptyCollectionViewCell class])];
[_mewCollectionView registerClass:[MewMainHomeMakeFriendHeadView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:NSStringFromClass([MewMainHomeMakeFriendHeadView class])];
[_mewCollectionView registerClass:[MewMainHomeMakeFriendCell class] forCellWithReuseIdentifier:NSStringFromClass([MewMainHomeMakeFriendCell class])];
[_mewCollectionView registerClass:[MewMainHomeMakeFriendEmptyCell class] forCellWithReuseIdentifier:NSStringFromClass([MewMainHomeMakeFriendEmptyCell class])];
}
return _mewCollectionView;
}
- (CountDownHelper *)mewDownHelper{
if(!_mewDownHelper){
_mewDownHelper = [[CountDownHelper alloc]init];
_mewDownHelper.delegate = self;
}
return _mewDownHelper;
}
@end

View File

@@ -0,0 +1,16 @@
//
// MewMainHomeMoreGameVC.h
// xplan-ios
//
// Created by duoban on 2023/12/25.
//
#import "MvpViewController.h"
NS_ASSUME_NONNULL_BEGIN
@interface MewMainHomeMoreGameVC : MvpViewController
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,218 @@
//
// MewMainHomeMoreGameVC.m
// xplan-ios
//
// Created by duoban on 2023/12/25.
//
#import "MewMainHomeMoreGameVC.h"
#import "MewMainHomeMoreGameCell.h"
#import "XPHomeListEmptyCollectionViewCell.h"
#import "MewMainHomeMoreGameHeadView.h"
#import "MewHomeManager.h"
#import "Api+Room.h"
#import "Api+MewHomeApi.h"
#import "MewMainHomeMenuDataModel.h"
#import "XPRoomViewController.h"
#import "XPLittleGameRoomOpenView.h"
#import "XPHomeRecommendOtherRoomView.h"
@interface MewMainHomeMoreGameVC ()<MewMainHomeMoreGameHeadViewDelegate,XPHomeRecommendOtherRoomViewDelegate,UICollectionViewDelegate,UICollectionViewDataSource,UICollectionViewDelegateFlowLayout>
@property(nonatomic,strong) UIButton *mewBackBtn;
@property(nonatomic,strong) UIImageView *mewBgImageView;
@property(nonatomic,strong) UICollectionView *mewCollectionView;
@property(nonatomic,strong) NSMutableArray *mewGameList;
@property(nonatomic,strong) NSMutableArray *mewRoomList;
@end
@implementation MewMainHomeMoreGameVC
- (MewHomeManager *)createPresenter {
return [[MewHomeManager alloc] init];
}
- (BOOL)isHiddenNavBar {
return YES;
}
-(void)mew_dissViewAction{
[self.navigationController popViewControllerAnimated:YES];
}
- (void)viewDidLoad {
[super viewDidLoad];
[self installUI];
[self installConstraints];
[self mew_headerRefresh];
}
-(void)installUI{
[self.view addSubview:self.mewBgImageView];
[self.view addSubview:self.mewBackBtn];
[self.view addSubview:self.mewCollectionView];
}
-(void)mew_headerRefresh{
[self.presenter mew_getMainHomeLittleGameList];
[self.presenter mew_getMainHomeGameFriendList];
}
-(void)installConstraints{
[self.mewBgImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.top.equalTo(self.view);
make.height.mas_equalTo(kGetScaleWidth(250));
}];
[self.mewBackBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.mas_equalTo(kGetScaleWidth(16));
make.width.height.mas_equalTo(18);
make.top.mas_equalTo(kStatusBarHeight+13);
}];
[self.mewCollectionView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.trailing.bottom.equalTo(self.view);
make.top.mas_equalTo(kNavigationHeight);
}];
}
///
-(void)mew_getMainHomeLittleGameListSuccess:(NSArray *)list{
self.mewGameList = [NSMutableArray arrayWithArray:list];
MewMainHomeLittleGameInfoModel *gameInfo = [MewMainHomeLittleGameInfoModel new];
gameInfo.mgId = @"-9999";
[self.mewGameList addObject:gameInfo];
[self.mewCollectionView reloadData];
}
///
-(void)mew_getMainHomeGameFriendListSuccess:(NSArray *)list{
self.mewRoomList = [NSMutableArray arrayWithArray:list];
[self.mewCollectionView reloadData];
}
#pragma mark - MewMainHomeMoreGameHeadViewDelegate
- (void)mew_selectGameAction:(MewMainHomeLittleGameInfoModel *)gameInfo{
NSString * uid = [AccountInfoStorage instance].getUid;
if (gameInfo.mgId.length > 0 && uid.length > 0) {
[Api mew_RequestMainHomePickResource:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
if (code == 200) {
MewMainHomeMenuDataModel * sourceModel = [MewMainHomeMenuDataModel modelWithDictionary:data.data];
if (sourceModel.isPick) {
if([sourceModel.uid isEqualToString:[AccountInfoStorage instance].getUid]){
[self mew_clickMyRoom:sourceModel.uid];
return;
}
if (sourceModel.uid.integerValue > 0) {
[XPRoomViewController openRoom:sourceModel.uid fromNick:nil fromType:UserEnterRoomFromType_Home_Recommend fromUid:nil viewController:self];
}
} else {
XPHomeRecommendOtherRoomView * recommendView = [[XPHomeRecommendOtherRoomView alloc] init];
recommendView.delegate = self;
recommendView.roomInfo = sourceModel;
[TTPopup popupView:recommendView style:TTPopupStyleAlert];
}
} else {
[XCHUDTool showErrorWithMessage:msg];
}
} uid:uid rid:gameInfo.mgId type:[gameInfo.mgId isEqualToString:@"-9999"] ? @"1":@"2"] ;
}
}
#pragma mark - XPHomeRecommendOtherRoomViewDelegate
- (void)xPHomeRecommendOtherRoomView:(XPHomeRecommendOtherRoomView *)view didClickEnterRoom:(MewMainHomeMenuDataModel *)model {
if (model.uid.integerValue > 0) {
if([model.uid isEqualToString:[AccountInfoStorage instance].getUid]){
[self mew_clickMyRoom:model.uid];
return;
}
[XPRoomViewController openRoom:model.uid fromNick:nil fromType:UserEnterRoomFromType_Home_Recommend fromUid:nil viewController:self];
}
}
///
- (void)mew_clickMyRoom:(NSString *)roomUid{
[Api getRoomInfo:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
if (code == 200) {
RoomInfoModel * roomInfo = [RoomInfoModel modelWithJSON:data.data];
if (roomInfo.isReselect) {
XPLittleGameRoomOpenView * roomOpenView = [[XPLittleGameRoomOpenView alloc] init];
roomOpenView.roomInfo = roomInfo;
roomOpenView.currentVC = self;
[TTPopup popupView:roomOpenView style:TTPopupStyleActionSheet];
} else {
[XPRoomViewController openRoom:roomUid viewController:self];
}
} else {
[self showErrorToast:msg];
}
} uid:roomUid intoUid:roomUid];
}
#pragma mark - UICollectionViewDelegate,UICollectionViewDataSource,UICollectionViewDelegateFlowLayout
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
return self.mewRoomList.count > 0 ? self.mewRoomList.count : 1;
}
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section{
return CGSizeMake(0, kGetScaleWidth(67));
}
-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath{
return self.mewRoomList.count == 0 ? CGSizeMake(KScreenWidth, 150):CGSizeMake(kGetScaleWidth(168), kGetScaleWidth(148));
}
- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath
{
if(kind == UICollectionElementKindSectionHeader){
MewMainHomeMoreGameHeadView *headView = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader
withReuseIdentifier:NSStringFromClass([MewMainHomeMoreGameHeadView class]) forIndexPath:indexPath];
headView.mewGameList = self.mewGameList;
headView.delegate = self;
return headView;
}
return nil;
}
- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
if(self.mewRoomList.count == 0){
XPHomeListEmptyCollectionViewCell * emptyCell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([XPHomeListEmptyCollectionViewCell class]) forIndexPath:indexPath];
return emptyCell;
}
MewMainHomeMoreGameCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([MewMainHomeMoreGameCell class]) forIndexPath:indexPath];
cell.moreGameModel = [self.mewRoomList safeObjectAtIndex1:indexPath.row];
return cell;
}
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
if(self.mewRoomList.count == 0)return;
MewMainHomeHotRoomModel *roomModel = [self.mewRoomList safeObjectAtIndex1:indexPath.row];
[XPRoomViewController openRoom:roomModel.uid viewController:self];
}
#pragma mark -
- (UIButton *)mewBackBtn{
if(!_mewBackBtn){
_mewBackBtn = [UIButton new];
[_mewBackBtn setImage:kImage(@"mew_mainHome_more_game_back") forState:UIControlStateNormal];
[_mewBackBtn setEnlargeEdgeWithTop:10 right:10 bottom:10 left:10];
[_mewBackBtn addTarget:self action:@selector(mew_dissViewAction) forControlEvents:UIControlEventTouchUpInside];
}
return _mewBackBtn;
}
- (UICollectionView *)mewCollectionView{
if(!_mewCollectionView){
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc]init];
layout.sectionInset = UIEdgeInsetsMake(kGetScaleWidth(16), kGetScaleWidth(15), kGetScaleWidth(15), kGetScaleWidth(15));
layout.minimumLineSpacing = kGetScaleWidth(8);
layout.minimumInteritemSpacing = kGetScaleWidth(8);
_mewCollectionView = [[UICollectionView alloc]initWithFrame:CGRectZero collectionViewLayout:layout];
_mewCollectionView.backgroundColor = [UIColor clearColor];
_mewCollectionView.delegate = self;
_mewCollectionView.dataSource = self;
[_mewCollectionView registerClass:[XPHomeListEmptyCollectionViewCell class] forCellWithReuseIdentifier:NSStringFromClass([XPHomeListEmptyCollectionViewCell class])];
[_mewCollectionView registerClass:[MewMainHomeMoreGameHeadView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:NSStringFromClass([MewMainHomeMoreGameHeadView class])];
[_mewCollectionView registerClass:[MewMainHomeMoreGameCell class] forCellWithReuseIdentifier:NSStringFromClass([MewMainHomeMoreGameCell class])];
}
return _mewCollectionView;
}
- (UIImageView *)mewBgImageView{
if(!_mewBgImageView){
_mewBgImageView = [UIImageView new];
_mewBgImageView.image = kImage(@"mew_home_top_bg_image");
}
return _mewBgImageView;
}
@end

View File

@@ -18,6 +18,7 @@
#import "XPHomeRecommendOtherRoomView.h"
#import "Api+Room.h"
#import "XPLittleGameRoomOpenView.h"
#import "MewMainHomeMoreGameVC.h"
@interface MewMainHomePartyVC ()<UICollectionViewDelegate,UICollectionViewDataSource,UICollectionViewDelegateFlowLayout,MewMainHomePartyHeadViewDelegate,XPHomeRecommendOtherRoomViewDelegate>
@property(nonatomic,strong) UICollectionView *mewCollectionView;
@property (nonatomic, copy) void(^scrollCallback)(UIScrollView *scrollView);
@@ -135,7 +136,8 @@
if(info.isMorn == YES){
MewMainHomeMoreGameVC *moreGameVC = [MewMainHomeMoreGameVC new];
[self.navigationController pushViewController:moreGameVC animated:YES];
return;
}
@@ -166,7 +168,7 @@
} else {
[XCHUDTool showErrorWithMessage:msg];
}
} uid:uid rid:info.hid];
} uid:uid rid:info.hid type:@"0"];
}
}
}
@@ -228,7 +230,7 @@
return CGSizeMake(0, kGetScaleWidth(341));
}
-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath{
return self.mewDataList.count == 0 ? CGSizeMake(KScreenWidth, 150):CGSizeMake(kGetScaleWidth(168), kGetScaleWidth(164));
return self.mewDataList.count == 0 ? CGSizeMake(KScreenWidth, 150):CGSizeMake(kGetScaleWidth(172), kGetScaleWidth(174));
}
- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath
{
@@ -266,9 +268,9 @@
if(!_mewCollectionView){
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc]init];
layout.sectionInset = UIEdgeInsetsMake(0, kGetScaleWidth(15), kGetScaleWidth(15), kGetScaleWidth(15));
layout.sectionInset = UIEdgeInsetsMake(0, kGetScaleWidth(11), kGetScaleWidth(15), kGetScaleWidth(11));
layout.minimumLineSpacing = kGetScaleWidth(8);
layout.minimumInteritemSpacing = kGetScaleWidth(8);
layout.minimumInteritemSpacing = kGetScaleWidth(4);
_mewCollectionView = [[UICollectionView alloc]initWithFrame:CGRectZero collectionViewLayout:layout];
_mewCollectionView.backgroundColor = [UIColor clearColor];
_mewCollectionView.delegate = self;

View File

@@ -93,6 +93,7 @@
[self mew_headerRefresh];
}
-(void)installUI{
self.view.backgroundColor = UIColorFromRGB(0xF5F5F7);
[self.view addSubview:self.mewBgImageView];
[self.view addSubview:self.mewStackView];
[self.view addSubview:self.mewPagingView];

View File

@@ -114,6 +114,9 @@
///
- (void)bgTap:(UITapGestureRecognizer *)tap {
[self dismiss];
if (self.selectBlock) {
self.selectBlock(@"", @"", 404);
}
}
- (void)dismiss {

View File

@@ -12,6 +12,7 @@
NS_ASSUME_NONNULL_BEGIN
@interface SessionViewController : MvpViewController
@property(nonatomic,assign) BOOL isNOAstrictChat;
@property (nonatomic, strong,readonly) NIMSession * session;
@property(nonatomic,assign) BOOL isFormGame;
@property (nonatomic, assign) SessionListOpenType openType;

View File

@@ -348,7 +348,9 @@
}else{
chatDisabled = !chatLimit.chat && self.messages.count <= 0;
}
if(self.isNOAstrictChat == YES){
chatDisabled = NO;
}
if (chatDisabled) {
SessionChatLimitView *chatLimitView = [[SessionChatLimitView alloc] initWithChatLimit:chatLimit];
self.sessionTableView.tableHeaderView = chatLimitView;

View File

@@ -327,8 +327,10 @@
self.isEdited = NO;
}
NSArray * array;
if (self.datasource.count < 9 && self.datasource.count > 1) {
if([self.datasource containsObject:self.addPicImage] && self.datasource.count > 1){
array = [self.datasource subarrayWithRange:NSMakeRange(0, self.datasource.count - 1)];
}else if(![self.datasource containsObject:self.addPicImage] && self.datasource.count == 9){
array = self.datasource;
}
self.uploadImageList = array;
}

Binary file not shown.