diff --git a/xplan-ios.xcodeproj/project.pbxproj b/xplan-ios.xcodeproj/project.pbxproj index a25653ad..feb5b3da 100644 --- a/xplan-ios.xcodeproj/project.pbxproj +++ b/xplan-ios.xcodeproj/project.pbxproj @@ -161,7 +161,23 @@ 2304974D2A739ECD006D1F0C /* XPMineGuildPersonalBillRecordModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 2304974C2A739ECD006D1F0C /* XPMineGuildPersonalBillRecordModel.m */; }; 231EBB042B301D9C006F782E /* SudMGP.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 231EBB032B301D9B006F782E /* SudMGP.xcframework */; }; 231EBB062B3021E4006F782E /* SudMGP.xcframework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 231EBB032B301D9B006F782E /* SudMGP.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 231EBB092B3034A6006F782E /* LVMainViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 231EBB082B3034A6006F782E /* LVMainViewController.m */; }; + 231EBB172B3298B8006F782E /* MewMainHomeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 231EBB132B3298B7006F782E /* MewMainHomeViewController.m */; }; + 231EBB1A2B329B10006F782E /* MewHomeManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 231EBB192B329B10006F782E /* MewHomeManager.m */; }; + 231EBB202B32D160006F782E /* Api+MewHomeApi.m in Sources */ = {isa = PBXBuildFile; fileRef = 231EBB1F2B32D160006F782E /* Api+MewHomeApi.m */; }; + 231EBB232B32D9B0006F782E /* MewMainHomeNavView.m in Sources */ = {isa = PBXBuildFile; fileRef = 231EBB222B32D9B0006F782E /* MewMainHomeNavView.m */; }; + 231EBB262B32E291006F782E /* MewMainHomePartyVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 231EBB252B32E291006F782E /* MewMainHomePartyVC.m */; }; + 231EBB292B32E380006F782E /* MewMainHomeMakeFriendVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 231EBB282B32E380006F782E /* MewMainHomeMakeFriendVC.m */; }; + 231EBB2C2B32EFE3006F782E /* MewMainHomePartyHeadView.m in Sources */ = {isa = PBXBuildFile; fileRef = 231EBB2B2B32EFE3006F782E /* MewMainHomePartyHeadView.m */; }; + 231EBB2F2B32F0C7006F782E /* MewMainHomePartyHeadItemView.m in Sources */ = {isa = PBXBuildFile; fileRef = 231EBB2E2B32F0C7006F782E /* MewMainHomePartyHeadItemView.m */; }; + 231EBB322B32F68E006F782E /* MewMainHomePartyHeadHotView.m in Sources */ = {isa = PBXBuildFile; fileRef = 231EBB312B32F68E006F782E /* MewMainHomePartyHeadHotView.m */; }; + 231EBB352B330B24006F782E /* MewMainHomeBannerInfoModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 231EBB342B330B24006F782E /* MewMainHomeBannerInfoModel.m */; }; + 231EBB382B33D825006F782E /* MewMainHomePartyCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 231EBB372B33D825006F782E /* MewMainHomePartyCell.m */; }; + 231EBB3E2B33DE0B006F782E /* mew_main_home_heat.gif in Resources */ = {isa = PBXBuildFile; fileRef = 231EBB3D2B33DE0B006F782E /* mew_main_home_heat.gif */; }; + 231EBB412B33E961006F782E /* MewMainHomeMenuInfoModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 231EBB402B33E961006F782E /* MewMainHomeMenuInfoModel.m */; }; + 231EBB482B33ED65006F782E /* MewMainHomeGiftRecordModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 231EBB472B33ED65006F782E /* MewMainHomeGiftRecordModel.m */; }; + 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 */; }; 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 */; }; @@ -1673,8 +1689,40 @@ 2304974B2A739ECD006D1F0C /* XPMineGuildPersonalBillRecordModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineGuildPersonalBillRecordModel.h; sourceTree = ""; }; 2304974C2A739ECD006D1F0C /* XPMineGuildPersonalBillRecordModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineGuildPersonalBillRecordModel.m; sourceTree = ""; }; 231EBB032B301D9B006F782E /* SudMGP.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; path = SudMGP.xcframework; sourceTree = ""; }; - 231EBB072B3034A6006F782E /* LVMainViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LVMainViewController.h; sourceTree = ""; }; - 231EBB082B3034A6006F782E /* LVMainViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LVMainViewController.m; sourceTree = ""; }; + 231EBB132B3298B7006F782E /* MewMainHomeViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MewMainHomeViewController.m; sourceTree = ""; }; + 231EBB152B3298B7006F782E /* MewMainHomeViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MewMainHomeViewController.h; sourceTree = ""; }; + 231EBB182B329B10006F782E /* MewHomeManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewHomeManager.h; sourceTree = ""; }; + 231EBB192B329B10006F782E /* MewHomeManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewHomeManager.m; sourceTree = ""; }; + 231EBB1E2B32D160006F782E /* Api+MewHomeApi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Api+MewHomeApi.h"; sourceTree = ""; }; + 231EBB1F2B32D160006F782E /* Api+MewHomeApi.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "Api+MewHomeApi.m"; sourceTree = ""; }; + 231EBB212B32D9B0006F782E /* MewMainHomeNavView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewMainHomeNavView.h; sourceTree = ""; }; + 231EBB222B32D9B0006F782E /* MewMainHomeNavView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewMainHomeNavView.m; sourceTree = ""; }; + 231EBB242B32E291006F782E /* MewMainHomePartyVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewMainHomePartyVC.h; sourceTree = ""; }; + 231EBB252B32E291006F782E /* MewMainHomePartyVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewMainHomePartyVC.m; sourceTree = ""; }; + 231EBB272B32E380006F782E /* MewMainHomeMakeFriendVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewMainHomeMakeFriendVC.h; sourceTree = ""; }; + 231EBB282B32E380006F782E /* MewMainHomeMakeFriendVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewMainHomeMakeFriendVC.m; sourceTree = ""; }; + 231EBB2A2B32EFE3006F782E /* MewMainHomePartyHeadView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewMainHomePartyHeadView.h; sourceTree = ""; }; + 231EBB2B2B32EFE3006F782E /* MewMainHomePartyHeadView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewMainHomePartyHeadView.m; sourceTree = ""; }; + 231EBB2D2B32F0C7006F782E /* MewMainHomePartyHeadItemView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewMainHomePartyHeadItemView.h; sourceTree = ""; }; + 231EBB2E2B32F0C7006F782E /* MewMainHomePartyHeadItemView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewMainHomePartyHeadItemView.m; sourceTree = ""; }; + 231EBB302B32F68E006F782E /* MewMainHomePartyHeadHotView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewMainHomePartyHeadHotView.h; sourceTree = ""; }; + 231EBB312B32F68E006F782E /* MewMainHomePartyHeadHotView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewMainHomePartyHeadHotView.m; sourceTree = ""; }; + 231EBB332B330B24006F782E /* MewMainHomeBannerInfoModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewMainHomeBannerInfoModel.h; sourceTree = ""; }; + 231EBB342B330B24006F782E /* MewMainHomeBannerInfoModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewMainHomeBannerInfoModel.m; sourceTree = ""; }; + 231EBB362B33D825006F782E /* MewMainHomePartyCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewMainHomePartyCell.h; sourceTree = ""; }; + 231EBB372B33D825006F782E /* MewMainHomePartyCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewMainHomePartyCell.m; sourceTree = ""; }; + 231EBB3D2B33DE0B006F782E /* mew_main_home_heat.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = mew_main_home_heat.gif; sourceTree = ""; }; + 231EBB3F2B33E961006F782E /* MewMainHomeMenuInfoModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewMainHomeMenuInfoModel.h; sourceTree = ""; }; + 231EBB402B33E961006F782E /* MewMainHomeMenuInfoModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewMainHomeMenuInfoModel.m; sourceTree = ""; }; + 231EBB452B33EA02006F782E /* MewMainHomeProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewMainHomeProtocol.h; sourceTree = ""; }; + 231EBB462B33ED65006F782E /* MewMainHomeGiftRecordModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewMainHomeGiftRecordModel.h; sourceTree = ""; }; + 231EBB472B33ED65006F782E /* MewMainHomeGiftRecordModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewMainHomeGiftRecordModel.m; sourceTree = ""; }; + 231EBB492B34112C006F782E /* MewMainHomePartyHeadHotCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewMainHomePartyHeadHotCell.h; sourceTree = ""; }; + 231EBB4A2B34112C006F782E /* MewMainHomePartyHeadHotCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewMainHomePartyHeadHotCell.m; sourceTree = ""; }; + 231EBB4C2B341DE0006F782E /* MewMainHomeHotRoomModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewMainHomeHotRoomModel.h; sourceTree = ""; }; + 231EBB4D2B341DE0006F782E /* MewMainHomeHotRoomModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewMainHomeHotRoomModel.m; sourceTree = ""; }; + 231EBB4F2B3433B7006F782E /* MewMainHomeMenuDataModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewMainHomeMenuDataModel.h; sourceTree = ""; }; + 231EBB502B3433B7006F782E /* MewMainHomeMenuDataModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewMainHomeMenuDataModel.m; sourceTree = ""; }; 232153DB2AF381E400B2FBC0 /* MovEncodeToMpegTool.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MovEncodeToMpegTool.h; sourceTree = ""; }; 232153DC2AF381E400B2FBC0 /* MovEncodeToMpegTool.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MovEncodeToMpegTool.m; sourceTree = ""; }; 232153DE2AF394BF00B2FBC0 /* XPPrivilegeCardVideoItemModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPPrivilegeCardVideoItemModel.h; sourceTree = ""; }; @@ -4718,6 +4766,103 @@ path = Api; sourceTree = ""; }; + 231EBB0A2B3186B6006F782E /* Mew */ = { + isa = PBXGroup; + children = ( + 231EBB3D2B33DE0B006F782E /* mew_main_home_heat.gif */, + 231EBB112B3298B7006F782E /* MewHomeApi */, + 231EBB0F2B3298B7006F782E /* MewHomeManager */, + 231EBB102B3298B7006F782E /* MewHomeModel */, + 231EBB0E2B3298B7006F782E /* MewHomeProtocol */, + 231EBB122B3298B7006F782E /* MewHomeView */, + ); + path = Mew; + sourceTree = ""; + }; + 231EBB0E2B3298B7006F782E /* MewHomeProtocol */ = { + isa = PBXGroup; + children = ( + 231EBB452B33EA02006F782E /* MewMainHomeProtocol.h */, + ); + path = MewHomeProtocol; + sourceTree = ""; + }; + 231EBB0F2B3298B7006F782E /* MewHomeManager */ = { + isa = PBXGroup; + children = ( + 231EBB182B329B10006F782E /* MewHomeManager.h */, + 231EBB192B329B10006F782E /* MewHomeManager.m */, + ); + path = MewHomeManager; + sourceTree = ""; + }; + 231EBB102B3298B7006F782E /* MewHomeModel */ = { + isa = PBXGroup; + children = ( + 231EBB332B330B24006F782E /* MewMainHomeBannerInfoModel.h */, + 231EBB342B330B24006F782E /* MewMainHomeBannerInfoModel.m */, + 231EBB3F2B33E961006F782E /* MewMainHomeMenuInfoModel.h */, + 231EBB402B33E961006F782E /* MewMainHomeMenuInfoModel.m */, + 231EBB462B33ED65006F782E /* MewMainHomeGiftRecordModel.h */, + 231EBB472B33ED65006F782E /* MewMainHomeGiftRecordModel.m */, + 231EBB4C2B341DE0006F782E /* MewMainHomeHotRoomModel.h */, + 231EBB4D2B341DE0006F782E /* MewMainHomeHotRoomModel.m */, + 231EBB4F2B3433B7006F782E /* MewMainHomeMenuDataModel.h */, + 231EBB502B3433B7006F782E /* MewMainHomeMenuDataModel.m */, + ); + path = MewHomeModel; + sourceTree = ""; + }; + 231EBB112B3298B7006F782E /* MewHomeApi */ = { + isa = PBXGroup; + children = ( + 231EBB1E2B32D160006F782E /* Api+MewHomeApi.h */, + 231EBB1F2B32D160006F782E /* Api+MewHomeApi.m */, + ); + path = MewHomeApi; + sourceTree = ""; + }; + 231EBB122B3298B7006F782E /* MewHomeView */ = { + isa = PBXGroup; + children = ( + 231EBB162B3298B7006F782E /* MewHomeCell */, + 231EBB142B3298B7006F782E /* MewHomeSubViews */, + 231EBB152B3298B7006F782E /* MewMainHomeViewController.h */, + 231EBB132B3298B7006F782E /* MewMainHomeViewController.m */, + 231EBB242B32E291006F782E /* MewMainHomePartyVC.h */, + 231EBB252B32E291006F782E /* MewMainHomePartyVC.m */, + 231EBB272B32E380006F782E /* MewMainHomeMakeFriendVC.h */, + 231EBB282B32E380006F782E /* MewMainHomeMakeFriendVC.m */, + ); + path = MewHomeView; + sourceTree = ""; + }; + 231EBB142B3298B7006F782E /* MewHomeSubViews */ = { + isa = PBXGroup; + children = ( + 231EBB212B32D9B0006F782E /* MewMainHomeNavView.h */, + 231EBB222B32D9B0006F782E /* MewMainHomeNavView.m */, + 231EBB2A2B32EFE3006F782E /* MewMainHomePartyHeadView.h */, + 231EBB2B2B32EFE3006F782E /* MewMainHomePartyHeadView.m */, + 231EBB2D2B32F0C7006F782E /* MewMainHomePartyHeadItemView.h */, + 231EBB2E2B32F0C7006F782E /* MewMainHomePartyHeadItemView.m */, + 231EBB302B32F68E006F782E /* MewMainHomePartyHeadHotView.h */, + 231EBB312B32F68E006F782E /* MewMainHomePartyHeadHotView.m */, + ); + path = MewHomeSubViews; + sourceTree = ""; + }; + 231EBB162B3298B7006F782E /* MewHomeCell */ = { + isa = PBXGroup; + children = ( + 231EBB362B33D825006F782E /* MewMainHomePartyCell.h */, + 231EBB372B33D825006F782E /* MewMainHomePartyCell.m */, + 231EBB492B34112C006F782E /* MewMainHomePartyHeadHotCell.h */, + 231EBB4A2B34112C006F782E /* MewMainHomePartyHeadHotCell.m */, + ); + path = MewHomeCell; + sourceTree = ""; + }; 232153DA2AF381D800B2FBC0 /* MovEncodeToMpegTool */ = { isa = PBXGroup; children = ( @@ -9021,6 +9166,7 @@ E8C6FFC427548120004DC9F0 /* View */ = { isa = PBXGroup; children = ( + 231EBB0A2B3186B6006F782E /* Mew */, E8C6FFCD27548154004DC9F0 /* Cell */, E8C6FFD12754AA6A004DC9F0 /* SubViews */, E8C6FFC627548120004DC9F0 /* XPHomePartyViewController.h */, @@ -9049,8 +9195,6 @@ 9B88E20E28C6305400D26FBA /* XPRoomSearchRecordViewController.m */, 146567D729B1D62E00A1F5B9 /* XPNewHomeViewController.h */, 146567D829B1D62E00A1F5B9 /* XPNewHomeViewController.m */, - 231EBB072B3034A6006F782E /* LVMainViewController.h */, - 231EBB082B3034A6006F782E /* LVMainViewController.m */, 146567DA29B1D6A900A1F5B9 /* XPNewHomeNavView.h */, 146567DB29B1D6A900A1F5B9 /* XPNewHomeNavView.m */, 146567E029B1E1CF00A1F5B9 /* XPNewHomeHeaderView.h */, @@ -9986,6 +10130,7 @@ E80EC85628ACD84000D133C5 /* emoji_106@2x.png in Resources */, E8937ACD276C3EDE00B2C7E1 /* svga_member_in_lv30.svga in Resources */, E80EC89728ACD84000D133C5 /* emoji_95@2x.png in Resources */, + 231EBB3E2B33DE0B006F782E /* mew_main_home_heat.gif in Resources */, E80EC88828ACD84000D133C5 /* emoji_54@2x.png in Resources */, E80EC8A528ACD84100D133C5 /* emoji_40@2x.png in Resources */, E8E859E528264D8800EE4857 /* upload.html in Resources */, @@ -10324,6 +10469,7 @@ E8E859C828264C2300EE4857 /* HTTPMessage.m in Sources */, 9B7D80502753AA9D003DAC0C /* UITableView+NIMScrollToBottom.m in Sources */, 9BEE3D0E27853BD000C83219 /* ThemeColor+NobleCenter.m in Sources */, + 231EBB1A2B329B10006F782E /* MewHomeManager.m in Sources */, E8998D7A2859784200C68558 /* XPSVGAPlayer.m in Sources */, 9BD9A18427A0F128004186FE /* XPMineVisitorItemModel.m in Sources */, E852D73E28631C18001465ED /* XPMonentsCommentTableViewCell.m in Sources */, @@ -10333,6 +10479,7 @@ E8C219FC294852F900344FC5 /* AnchorLevelProgressView.m in Sources */, 230497042A6E5AA2006D1F0C /* XPPrivilegeCardProduceCell.m in Sources */, E8DEC9A12764A5D20078CB70 /* XPRoomMoreItemModel.m in Sources */, + 231EBB482B33ED65006F782E /* MewMainHomeGiftRecordModel.m in Sources */, E80EC81028ACD84000D133C5 /* QExtendBoardView.m in Sources */, 9B87B3CD2926473D00085110 /* XPSessionListHeadFriendCell.m in Sources */, 9B86D88328192DC000494FCD /* XPRoomRankEntranceView.m in Sources */, @@ -10347,6 +10494,7 @@ E8659909273E800D00EE349D /* XPGiftCollectionViewFlowLayout.m in Sources */, E86596512701A1C000846EBD /* StatisticsService.m in Sources */, E824544026F58F9400BE8163 /* XPMinePayPwdViewController.m in Sources */, + 231EBB322B32F68E006F782E /* MewMainHomePartyHeadHotView.m in Sources */, 9BE01AED2893D0DF00B50299 /* XPDressShopSearchTableViewCell.m in Sources */, 9BA812D228BF145700783EA7 /* ClientRedPacketModel.m in Sources */, E8C1670928067DAA00ECB15C /* XPMineGuildSuperAdminSetViewController.m in Sources */, @@ -10359,7 +10507,9 @@ E8A3538528FD67320014A784 /* GiftLuckyBroadcastModel.m in Sources */, 9B4C5B86292F81FA00CEA41B /* XPSessionListFansPartyModel.m in Sources */, E82325F5274E2E09003A3332 /* XPUserCardPresenter.m in Sources */, + 231EBB512B3433B7006F782E /* MewMainHomeMenuDataModel.m in Sources */, E80EC80B28ACD84000D133C5 /* QInputBarViewConfiguration.m in Sources */, + 231EBB2C2B32EFE3006F782E /* MewMainHomePartyHeadView.m in Sources */, E880B39E278BD49E00A83B0D /* XPAcrossRoomPKViewController.m in Sources */, E8AC723D26F4B6AA007D6E91 /* XPLoginBindPhoneResultViewController.m in Sources */, E800806527FD37A20055A8AB /* XPGuildHeaderView.m in Sources */, @@ -10442,6 +10592,7 @@ E8A88D3027E85EEA00CA8837 /* RoomPKInfoModel.m in Sources */, E8AB633328AE51470023B0D2 /* XPSailingPrizeView.m in Sources */, 9B2F72D328E45C5A0000E4FA /* XPRoomQuidkMessageCell.m in Sources */, + 231EBB4B2B34112C006F782E /* MewMainHomePartyHeadHotCell.m in Sources */, E83CD1982908D2FF00920A94 /* NobleRankListModel.m in Sources */, E800162C2803FE4900D6D17A /* GuildIncomeRecordModel.m in Sources */, 9BE01ACE28925F7D00B50299 /* XPMineNewUserRechargeView.m in Sources */, @@ -10527,6 +10678,7 @@ 9BCB99A028F571B500466D64 /* XPMineCollectPartyRoomViewController.m in Sources */, E81C27AE26EF39AB0031E639 /* AppDelegate+ThirdConfig.m in Sources */, E8AB631028ADD92D0023B0D2 /* XPMonentsTopicRecommondViewController.m in Sources */, + 231EBB172B3298B8006F782E /* MewMainHomeViewController.m in Sources */, E877A7F127842B2F00EFACED /* XPRoomDatingWebAlertView.m in Sources */, E80016382804140D00D6D17A /* XPMineGuildIncomeStatisViewController.m in Sources */, E8E859C728264C2300EE4857 /* HTTPRedirectResponse.m in Sources */, @@ -10575,6 +10727,7 @@ E81366E326F0A1FC0076364C /* LoginBindPhoneViewController.m in Sources */, 9B2EA7CC2804245500ED17BF /* XPAnchorPKPanelUserView.m in Sources */, E851E46527FF1F53002F3ACB /* XPMineGuildSetNameViewController.m in Sources */, + 231EBB4E2B341DE0006F782E /* MewMainHomeHotRoomModel.m in Sources */, 9B85B6DA279FDC5200A0A1AC /* XPUserCardSkillCollectionViewCell.m in Sources */, 189DD68426E1FDBB00AB55B1 /* XCHUDTool.m in Sources */, E8A6C29B27CF53BF00AC7442 /* XPHomeLikePresenter.m in Sources */, @@ -10584,6 +10737,7 @@ E83A2A55282F5C50002AD58F /* XPEnterpriseRechargeFootView.m in Sources */, E87AE7F9277AABE50037823A /* XPRoomTagListViewController.m in Sources */, 18E7B26926E8D5D60064BC9B /* XCCurrentVCStackManager.m in Sources */, + 231EBB412B33E961006F782E /* MewMainHomeMenuInfoModel.m in Sources */, E824544326F58FCE00BE8163 /* XPMinePayPwdInputView.m in Sources */, 9B1B72A1280023F3003FACE9 /* XPMineAnchorFansTeamTableViewCell.m in Sources */, 1808073027315E8E001FD836 /* NetImageView.m in Sources */, @@ -10669,7 +10823,6 @@ E8B846D326FDDBE600A777FE /* XPMineRechargeTableViewCell.m in Sources */, E8D48256278D83AE003C1D08 /* XPAcrossRoomPKPanelUserView.m in Sources */, E8D34D41280714F3009C4835 /* GuildSearchSuperAdminModel.m in Sources */, - 231EBB092B3034A6006F782E /* LVMainViewController.m in Sources */, E824546126F5F4E400BE8163 /* XPMineResetPayPwdViewController.m in Sources */, E81D58822720082A003063FE /* MicroWaveView.m in Sources */, E8A73F8728586A6F00FD9CBC /* XPGiftWeekStarCollectionViewCell.m in Sources */, @@ -10679,6 +10832,7 @@ E88B5CB026FB1C6500DA9178 /* XPMineTeenagerPresenter.m in Sources */, E800163B28041F7B00D6D17A /* XPGuildSingleRoomIncomeTableViewCell.m in Sources */, 9BCFB828289BAC7D0093D863 /* XPMineHeadFunctionItemLayout.m in Sources */, + 231EBB2F2B32F0C7006F782E /* MewMainHomePartyHeadItemView.m in Sources */, E8D34D6428084E40009C4835 /* XPMineUserInfoGiftWallViewController.m in Sources */, E899C68927508F4E00E189E5 /* XPUserCardInfoModel.m in Sources */, 9B6B3AAB278C2EA7005551EC /* XPRoomNobleLevelUpView.m in Sources */, @@ -10742,6 +10896,7 @@ E8B846D626FDE01B00A777FE /* XPMineRechargePresenter.m in Sources */, E8834E53280052580029CCC1 /* XPMineGuildManagerPerTableViewCell.m in Sources */, E8A30BF628534B35003B4873 /* FindNewUserInfoModel.m in Sources */, + 231EBB292B32E380006F782E /* MewMainHomeMakeFriendVC.m in Sources */, E801274027E323C800BAC3F2 /* XPRoomPKViewController.m in Sources */, E8EEB91426FC7786007C6EBA /* XPMineUserInfoNickViewController.m in Sources */, 18E7B31B26F0982E0064BC9B /* UserExpand.m in Sources */, @@ -10857,9 +11012,11 @@ 9BE9F10527FF04CF00667200 /* XPAnchorFansTaskTableViewCell.m in Sources */, E8E859D328264C2300EE4857 /* DDTTYLogger.m in Sources */, 9B92A33C2797E38100AD168F /* XPMineHeadItemTableViewCell.m in Sources */, + 231EBB232B32D9B0006F782E /* MewMainHomeNavView.m in Sources */, E854103928646A00005CFD9F /* XPMonentsReplyMoreTableViewCell.m in Sources */, 189DD56526DE465A00AB55B1 /* LoginViewController.m in Sources */, 2304970A2A6E7A40006D1F0C /* XPPrivilegeCardConfirmView.m in Sources */, + 231EBB262B32E291006F782E /* MewMainHomePartyVC.m in Sources */, 9B8DE0E1289CF02900FB6EC2 /* XPGiftCompoundModel.m in Sources */, E8950186282CAC80007E459A /* XPMonentsTooBarView.m in Sources */, 9B9DD94A281BC17600DBA903 /* XPCandyTreeMoreRuleCell.m in Sources */, @@ -11069,6 +11226,7 @@ E83A2A3E282F4ED3002AD58F /* Api+EnterpriseRecharge.m in Sources */, E8C1CD7627D8AE3D00376F83 /* XPRoomFacePresenter.m in Sources */, 18F4043A275E20D900A6C548 /* TRTCRtcImpl.m in Sources */, + 231EBB202B32D160006F782E /* Api+MewHomeApi.m in Sources */, E8899C7F27853B6A007944BE /* DatingMicroView.m in Sources */, 9BE01AD428927E9C00B50299 /* XPDressUpShopListViewController.m in Sources */, 9B41D36E282649230048C588 /* XPWeekStarRankUserModel.m in Sources */, @@ -11218,10 +11376,12 @@ 9BE2FA90288010D300EF3D83 /* AnchorRoomSrollTipView.m in Sources */, E87E91522796A15500A7B3F2 /* MicroExtModel.m in Sources */, E8788948273A55D000BF1D57 /* XPGiftBarView.m in Sources */, + 231EBB382B33D825006F782E /* MewMainHomePartyCell.m in Sources */, E89DCF5728FFF076001647EC /* XPWishGiftEmptyTableViewCell.m in Sources */, E8D4DE442940462C00EC788D /* XPGiftTwelveStarBroadcastView.m in Sources */, 9BA8A47227C5D590000365A3 /* XPVoiceCardCircleLayer.m in Sources */, E81A65422835120200F55894 /* XPMonentsInteractivePresenter.m in Sources */, + 231EBB352B330B24006F782E /* MewMainHomeBannerInfoModel.m in Sources */, 9B33E3D427D8A1A4003B0E62 /* XPSkillCardPlayerManager.m in Sources */, E80EC80C28ACD84000D133C5 /* UITextView+QEmotion.m in Sources */, E8664EE627E482EF000171BA /* RoomPKTeamModel.m in Sources */, diff --git a/xplan-ios/Assets.xcassets/Mew/Contents.json b/xplan-ios/Assets.xcassets/Mew/Contents.json new file mode 100644 index 00000000..73c00596 --- /dev/null +++ b/xplan-ios/Assets.xcassets/Mew/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/Contents.json b/xplan-ios/Assets.xcassets/Mew/MewHome/Contents.json new file mode 100644 index 00000000..73c00596 --- /dev/null +++ b/xplan-ios/Assets.xcassets/Mew/MewHome/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_nav_click_rank.imageset/Contents.json b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_nav_click_rank.imageset/Contents.json new file mode 100644 index 00000000..50e198ee --- /dev/null +++ b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_nav_click_rank.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "mew_home_nav_click_rank@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "mew_home_nav_click_rank@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_nav_click_rank.imageset/mew_home_nav_click_rank@2x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_nav_click_rank.imageset/mew_home_nav_click_rank@2x.png new file mode 100644 index 00000000..96efe4d8 Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_nav_click_rank.imageset/mew_home_nav_click_rank@2x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_nav_click_rank.imageset/mew_home_nav_click_rank@3x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_nav_click_rank.imageset/mew_home_nav_click_rank@3x.png new file mode 100644 index 00000000..2afaec5c Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_nav_click_rank.imageset/mew_home_nav_click_rank@3x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_nav_click_room.imageset/Contents.json b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_nav_click_room.imageset/Contents.json new file mode 100644 index 00000000..8cafd502 --- /dev/null +++ b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_nav_click_room.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "mew_home_nav_click_room@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "mew_home_nav_click_room@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_nav_click_room.imageset/mew_home_nav_click_room@2x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_nav_click_room.imageset/mew_home_nav_click_room@2x.png new file mode 100644 index 00000000..c991151f Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_nav_click_room.imageset/mew_home_nav_click_room@2x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_nav_click_room.imageset/mew_home_nav_click_room@3x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_nav_click_room.imageset/mew_home_nav_click_room@3x.png new file mode 100644 index 00000000..2040d0c4 Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_nav_click_room.imageset/mew_home_nav_click_room@3x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_nav_search_icon.imageset/Contents.json b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_nav_search_icon.imageset/Contents.json new file mode 100644 index 00000000..7ca76b95 --- /dev/null +++ b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_nav_search_icon.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "mew_home_nav_search_icon@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "mew_home_nav_search_icon@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_nav_search_icon.imageset/mew_home_nav_search_icon@2x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_nav_search_icon.imageset/mew_home_nav_search_icon@2x.png new file mode 100644 index 00000000..063db99e Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_nav_search_icon.imageset/mew_home_nav_search_icon@2x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_nav_search_icon.imageset/mew_home_nav_search_icon@3x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_nav_search_icon.imageset/mew_home_nav_search_icon@3x.png new file mode 100644 index 00000000..0df10da5 Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_nav_search_icon.imageset/mew_home_nav_search_icon@3x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_party_head_hot_arrow.imageset/Contents.json b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_party_head_hot_arrow.imageset/Contents.json new file mode 100644 index 00000000..4dec30fd --- /dev/null +++ b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_party_head_hot_arrow.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "mew_home_party_head_hot_arrow@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "mew_home_party_head_hot_arrow@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_party_head_hot_arrow.imageset/mew_home_party_head_hot_arrow@2x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_party_head_hot_arrow.imageset/mew_home_party_head_hot_arrow@2x.png new file mode 100644 index 00000000..9d7202f4 Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_party_head_hot_arrow.imageset/mew_home_party_head_hot_arrow@2x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_party_head_hot_arrow.imageset/mew_home_party_head_hot_arrow@3x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_party_head_hot_arrow.imageset/mew_home_party_head_hot_arrow@3x.png new file mode 100644 index 00000000..4956095c Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_party_head_hot_arrow.imageset/mew_home_party_head_hot_arrow@3x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_party_head_hot_bg.imageset/Contents.json b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_party_head_hot_bg.imageset/Contents.json new file mode 100644 index 00000000..2ab3d249 --- /dev/null +++ b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_party_head_hot_bg.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "mew_home_party_head_hot_bg@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "mew_home_party_head_hot_bg@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_party_head_hot_bg.imageset/mew_home_party_head_hot_bg@2x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_party_head_hot_bg.imageset/mew_home_party_head_hot_bg@2x.png new file mode 100644 index 00000000..923de422 Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_party_head_hot_bg.imageset/mew_home_party_head_hot_bg@2x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_party_head_hot_bg.imageset/mew_home_party_head_hot_bg@3x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_party_head_hot_bg.imageset/mew_home_party_head_hot_bg@3x.png new file mode 100644 index 00000000..5b2473f8 Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_party_head_hot_bg.imageset/mew_home_party_head_hot_bg@3x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_party_head_morn.imageset/Contents.json b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_party_head_morn.imageset/Contents.json new file mode 100644 index 00000000..388fd9fc --- /dev/null +++ b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_party_head_morn.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "mew_home_party_head_morn@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "mew_home_party_head_morn@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_party_head_morn.imageset/mew_home_party_head_morn@2x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_party_head_morn.imageset/mew_home_party_head_morn@2x.png new file mode 100644 index 00000000..65ecda35 Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_party_head_morn.imageset/mew_home_party_head_morn@2x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_party_head_morn.imageset/mew_home_party_head_morn@3x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_party_head_morn.imageset/mew_home_party_head_morn@3x.png new file mode 100644 index 00000000..2751035c Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_party_head_morn.imageset/mew_home_party_head_morn@3x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_top_bg_image.imageset/Contents.json b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_top_bg_image.imageset/Contents.json new file mode 100644 index 00000000..79619e71 --- /dev/null +++ b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_top_bg_image.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "mew_home_top_bg_image@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "mew_home_top_bg_image@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_top_bg_image.imageset/mew_home_top_bg_image@2x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_top_bg_image.imageset/mew_home_top_bg_image@2x.png new file mode 100644 index 00000000..feb2d609 Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_top_bg_image.imageset/mew_home_top_bg_image@2x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_top_bg_image.imageset/mew_home_top_bg_image@3x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_top_bg_image.imageset/mew_home_top_bg_image@3x.png new file mode 100644 index 00000000..0f536c5b Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_top_bg_image.imageset/mew_home_top_bg_image@3x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_top_choose_icon.imageset/Contents.json b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_top_choose_icon.imageset/Contents.json new file mode 100644 index 00000000..419cf53f --- /dev/null +++ b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_top_choose_icon.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "mew_home_top_choose_icon@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "mew_home_top_choose_icon@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_top_choose_icon.imageset/mew_home_top_choose_icon@2x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_top_choose_icon.imageset/mew_home_top_choose_icon@2x.png new file mode 100644 index 00000000..9b200bf2 Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_top_choose_icon.imageset/mew_home_top_choose_icon@2x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_top_choose_icon.imageset/mew_home_top_choose_icon@3x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_top_choose_icon.imageset/mew_home_top_choose_icon@3x.png new file mode 100644 index 00000000..f06fe002 Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_top_choose_icon.imageset/mew_home_top_choose_icon@3x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_party_cell_hot.imageset/Contents.json b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_party_cell_hot.imageset/Contents.json new file mode 100644 index 00000000..b39b8a21 --- /dev/null +++ b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_party_cell_hot.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "mew_main_home_party_cell_hot@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "mew_main_home_party_cell_hot@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_party_cell_hot.imageset/mew_main_home_party_cell_hot@2x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_party_cell_hot.imageset/mew_main_home_party_cell_hot@2x.png new file mode 100644 index 00000000..c97196ab Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_party_cell_hot.imageset/mew_main_home_party_cell_hot@2x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_party_cell_hot.imageset/mew_main_home_party_cell_hot@3x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_party_cell_hot.imageset/mew_main_home_party_cell_hot@3x.png new file mode 100644 index 00000000..2836421d Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_party_cell_hot.imageset/mew_main_home_party_cell_hot@3x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_party_cell_mask.imageset/Contents.json b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_party_cell_mask.imageset/Contents.json new file mode 100644 index 00000000..9632d7c8 --- /dev/null +++ b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_party_cell_mask.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "mew_main_home_party_cell_mask@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "mew_main_home_party_cell_mask@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_party_cell_mask.imageset/mew_main_home_party_cell_mask@2x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_party_cell_mask.imageset/mew_main_home_party_cell_mask@2x.png new file mode 100644 index 00000000..79fc4cf6 Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_party_cell_mask.imageset/mew_main_home_party_cell_mask@2x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_party_cell_mask.imageset/mew_main_home_party_cell_mask@3x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_party_cell_mask.imageset/mew_main_home_party_cell_mask@3x.png new file mode 100644 index 00000000..8a9d7b3d Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_party_cell_mask.imageset/mew_main_home_party_cell_mask@3x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_party_cell_pk.imageset/Contents.json b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_party_cell_pk.imageset/Contents.json new file mode 100644 index 00000000..7c65bf40 --- /dev/null +++ b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_party_cell_pk.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "mew_main_home_party_cell_pk@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "mew_main_home_party_cell_pk@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_party_cell_pk.imageset/mew_main_home_party_cell_pk@2x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_party_cell_pk.imageset/mew_main_home_party_cell_pk@2x.png new file mode 100644 index 00000000..06b7561c Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_party_cell_pk.imageset/mew_main_home_party_cell_pk@2x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_party_cell_pk.imageset/mew_main_home_party_cell_pk@3x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_party_cell_pk.imageset/mew_main_home_party_cell_pk@3x.png new file mode 100644 index 00000000..670882f0 Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_party_cell_pk.imageset/mew_main_home_party_cell_pk@3x.png differ diff --git a/xplan-ios/Base/Base.pch b/xplan-ios/Base/Base.pch index 3853f708..9165331c 100644 --- a/xplan-ios/Base/Base.pch +++ b/xplan-ios/Base/Base.pch @@ -44,4 +44,5 @@ if (@available(iOS 11.0, *)) {\ #import "NSArray+Safe.h" #import "NSString+Utils.h" #import "YYUtility.h" +#import "XPHtmlUrl.h" #endif /* Base_pch */ diff --git a/xplan-ios/Main/Home/View/LVMainViewController.h b/xplan-ios/Main/Home/View/LVMainViewController.h deleted file mode 100644 index 8d22911b..00000000 --- a/xplan-ios/Main/Home/View/LVMainViewController.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// LVMainViewController.h -// xplan-ios -// -// Created by duoban on 2023/12/18. -// - -#import "MvpViewController.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface LVMainViewController : MvpViewController - -@end - -NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Home/View/LVMainViewController.m b/xplan-ios/Main/Home/View/LVMainViewController.m deleted file mode 100644 index aef20852..00000000 --- a/xplan-ios/Main/Home/View/LVMainViewController.m +++ /dev/null @@ -1,107 +0,0 @@ -// -// LVMainViewController.m -// xplan-ios -// -// Created by duoban on 2023/12/18. -// - -#import "LVMainViewController.h" -#import -#import -#import "XPNewHomeNavView.h" -@interface LVMainViewController () -@property (nonatomic, strong) JXCategoryTitleView *titleView; -@property (nonatomic, strong) JXPagerView *pagingView; -@property (nonatomic, strong) NSArray *titles; -@property (nonatomic, strong) UIStackView *stackView; -///导航栏 -@property (nonatomic, strong) XPNewHomeNavView *homeNavView; -@end - -@implementation LVMainViewController - -- (void)viewDidLoad { - [super viewDidLoad]; - [self installUI]; - [self installConstraints]; -} --(void)installUI{ - [self.view addSubview:self.stackView]; - [self.view addSubview:self.pagingView]; - [self.stackView addArrangedSubview:self.titleView]; - - -} --(void)installConstraints{ - [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { - make.left.top.right.mas_equalTo(0); - make.height.mas_equalTo(kNavigationHeight); - }]; - [self.pagingView mas_makeConstraints:^(MASConstraintMaker *make) { - make.left.right.bottom.equalTo(self.view); - make.bottom.equalTo(self.stackView.mas_bottom); - }]; -} -#pragma mark - 懒加载 -- (JXCategoryTitleView *)titleView { - if (!_titleView) { - _titleView = [[JXCategoryTitleView alloc] init]; - _titleView.delegate = self; - _titleView.backgroundColor = [UIColor clearColor]; - _titleView.titleColor = [ThemeColor textThirdColor]; - _titleView.titleSelectedColor = [ThemeColor mainTextColor]; - _titleView.titleFont = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; - _titleView.titleSelectedFont = [UIFont systemFontOfSize:16 weight:UIFontWeightSemibold]; - _titleView.titleLabelAnchorPointStyle = JXCategoryTitleLabelAnchorPointStyleCenter; - _titleView.contentScrollViewClickTransitionAnimationEnabled = NO; - _titleView.defaultSelectedIndex = 0; - _titleView.averageCellSpacingEnabled = NO; - _titleView.titles = self.titles; - _titleView.cellSpacing = 20; - _titleView.listContainer = (id)self.pagingView.listContainerView; - - JXCategoryIndicatorImageView *lineView = [[JXCategoryIndicatorImageView alloc] init]; - lineView.indicatorImageViewSize = CGSizeMake(13, 4); - lineView.verticalMargin = 5; - lineView.indicatorImageView.image = [UIImage imageNamed:@"home_segment_indicator"]; - _titleView.indicators = @[lineView]; - } - return _titleView; -} - -- (JXPagerView *)pagingView { - if (!_pagingView) { - _pagingView = [[JXPagerView alloc] initWithDelegate:self]; - _pagingView.backgroundColor = [UIColor clearColor]; - _pagingView.listContainerView.backgroundColor = [UIColor clearColor]; - _pagingView.mainTableView.backgroundColor = [UIColor clearColor]; - _pagingView.mainTableView.gestureDelegate = self; - _pagingView.listContainerView.listCellBackgroundColor = UIColor.clearColor; - } - return _pagingView; -} - -- (NSArray *)titles { - if (!_titles) { - _titles = @[@"派对", @"交友"]; - } - return _titles; -} -- (UIStackView *)stackView { - if (!_stackView) { - _stackView = [[UIStackView alloc] init]; - _stackView.axis = UILayoutConstraintAxisHorizontal; - _stackView.distribution = UIStackViewDistributionFill; - _stackView.alignment = UIStackViewAlignmentCenter; - _stackView.spacing = 6; - } - return _stackView; -} -- (XPNewHomeNavView *)homeNavView { - if (!_homeNavView) { - _homeNavView = [[XPNewHomeNavView alloc] init]; - _homeNavView.delegate = self; - } - return _homeNavView; -} -@end diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeApi/Api+MewHomeApi.h b/xplan-ios/Main/Home/View/Mew/MewHomeApi/Api+MewHomeApi.h new file mode 100644 index 00000000..e39b6be7 --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeApi/Api+MewHomeApi.h @@ -0,0 +1,35 @@ +// +// Api+MewHomeApi.h +// xplan-ios +// +// Created by duoban on 2023/12/20. +// + +#import "Api.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface Api (MewHomeApi) +/// 首页推荐的轮播图 +/// @param completion 完成 +/// @param uid 用户的uid +/// @param type 类型 2 房间的 1 首页的 9推荐页下面的 ++ (void)mew_RequestMainHomeBannerList:(HttpRequestHelperCompletion)completion uid:(NSString *)uid type:(NSString *)type; +/// 请求推荐页资源的列表 +/// @param completion 完成 +/// @param uid 用户的uid ++ (void)mew_RequestMainHomeMenuList:(HttpRequestHelperCompletion)completion uid:(NSString *)uid; +/// 请求首页全服礼物记录列表 +/// @param completion 完成 ++ (void)mew_RequestMainHomeGiftRecordList:(HttpRequestHelperCompletion)completion; +/// 请求热门房间列表 +/// @param completion 完成 ++ (void)mew_RequestMainHomePersonalRoomList:(HttpRequestHelperCompletion)completion uid:(NSString *)uid; +/// 首页资源位要进入的 +/// @param completion 完成 +/// @param uid 用户的uid +/// @param rid 进入的类型的id ++ (void)mew_RequestMainHomePickResource:(HttpRequestHelperCompletion)completion uid:(NSString *)uid rid:(NSString *)rid; +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeApi/Api+MewHomeApi.m b/xplan-ios/Main/Home/View/Mew/MewHomeApi/Api+MewHomeApi.m new file mode 100644 index 00000000..ad294855 --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeApi/Api+MewHomeApi.m @@ -0,0 +1,44 @@ +// +// Api+MewHomeApi.m +// xplan-ios +// +// Created by duoban on 2023/12/20. +// + +#import "Api+MewHomeApi.h" +#import "NSMutableDictionary+Saft.h" +@implementation Api (MewHomeApi) +/// 首页推荐的轮播图 +/// @param completion 完成 +/// @param uid 用户的uid +/// @param type 类型 2 房间的 1 首页的 9推荐页下面的 ++ (void)mew_RequestMainHomeBannerList:(HttpRequestHelperCompletion)completion uid:(NSString *)uid type:(NSString *)type { + [self makeRequest:@"home/banner" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, uid, type, nil]; +} +/// 请求推荐页资源的列表 +/// @param completion 完成 +/// @param uid 用户的uid ++ (void)mew_RequestMainHomeMenuList:(HttpRequestHelperCompletion)completion uid:(NSString *)uid { + [self makeRequest:@"home/currentResource" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, uid, nil]; +} +/// 请求首页全服礼物记录列表 +/// @param completion 完成 ++ (void)mew_RequestMainHomeGiftRecordList:(HttpRequestHelperCompletion)completion { + [self makeRequest:@"home/service/gift/record" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, nil]; +} +/// 请求热门房间列表 +/// @param completion 完成 ++ (void)mew_RequestMainHomePersonalRoomList:(HttpRequestHelperCompletion)completion uid:(NSString *)uid { + [self makeRequest:@"home/hotRoom" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__,uid, nil]; +} +/// 首页资源位要进入的 +/// @param completion 完成 +/// @param uid 用户的uid +/// @param rid 进入的类型的id ++ (void)mew_RequestMainHomePickResource:(HttpRequestHelperCompletion)completion uid:(NSString *)uid rid:(NSString *)rid { + NSMutableDictionary * pararms = [NSMutableDictionary dictionary]; + [pararms safeSetObject:uid forKey:@"uid"]; + [pararms safeSetObject:rid forKey:@"id"]; + [HttpRequestHelper request:@"home/pickResource" method:HttpRequestHelperMethodGET params:pararms completion:completion]; +} +@end diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeManager/MewHomeManager.h b/xplan-ios/Main/Home/View/Mew/MewHomeManager/MewHomeManager.h new file mode 100644 index 00000000..e82992cc --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeManager/MewHomeManager.h @@ -0,0 +1,20 @@ +// +// MewHomeManager.h +// xplan-ios +// +// Created by duoban on 2023/12/20. +// + +#import "BaseMvpPresenter.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface MewHomeManager : BaseMvpPresenter +- (void)mew_requestMainHomeTopDataList; +/// 获取全服礼物记录列表 +- (void)mew_requestMainHomeGiftRecordList; +//获取热门房间 +-(void)mew_requestMainHomePersonalRoomList:(NSString *)uid; +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeManager/MewHomeManager.m b/xplan-ios/Main/Home/View/Mew/MewHomeManager/MewHomeManager.m new file mode 100644 index 00000000..5bc57a6b --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeManager/MewHomeManager.m @@ -0,0 +1,45 @@ +// +// MewHomeManager.m +// xplan-ios +// +// Created by duoban on 2023/12/20. +// + +#import "MewHomeManager.h" +#import +#import "MewMainHomeBannerInfoModel.h" +#import "Api+MewHomeApi.h" +#import "MewMainHomeMenuInfoModel.h" +#import "MewMainHomeProtocol.h" +#import "MewMainHomeGiftRecordModel.h" +#import "MewMainHomeHotRoomModel.h" +@implementation MewHomeManager +/// 获取首页顶部的轮播图 +- (void)mew_requestMainHomeTopDataList { + NSString * uid = [AccountInfoStorage instance].getUid; + [Api mew_RequestMainHomeMenuList:[self createHttpCompletion:^(BaseModel * _Nonnull data) { + NSArray * array = [MewMainHomeMenuInfoModel modelsWithArray:data.data]; + [[self getView] mew_getHomeTopDataSuccess:array]; + } fail:^(NSInteger code, NSString * _Nullable msg) { + + }] uid:uid]; +} +/// 获取全服礼物记录列表 +- (void)mew_requestMainHomeGiftRecordList{ + [Api mew_RequestMainHomeGiftRecordList:[self createHttpCompletion:^(BaseModel * _Nonnull data) { + NSArray * array = [MewMainHomeGiftRecordModel modelsWithArray:data.data]; + [[self getView] mew_getHomeGiftRecordListSuccess:array]; + }fail:^(NSInteger code, NSString * _Nullable msg) { + [[self getView] mew_getHomeGiftRecordListFail]; + }]]; +} +//获取热门房间 +-(void)mew_requestMainHomePersonalRoomList:(NSString *)uid{ + [Api mew_RequestMainHomePersonalRoomList:[self createHttpCompletion:^(BaseModel * _Nonnull data) { + NSArray * array = [MewMainHomeHotRoomModel modelsWithArray:data.data]; + [[self getView]mew_getHomePersonalRoomListSuccess:array]; + } fail:^(NSInteger code, NSString * _Nullable msg) { + [[self getView]mew_getHomePersonalRoomListFail]; + } showLoading:NO errorToast:NO] uid:uid]; +} +@end diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeBannerInfoModel.h b/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeBannerInfoModel.h new file mode 100644 index 00000000..06a87daf --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeBannerInfoModel.h @@ -0,0 +1,30 @@ +// +// MewMainHomeBannerInfoModel.h +// xplan-ios +// +// Created by duoban on 2023/12/20. +// + +#import +typedef NS_ENUM(NSUInteger, MewMainHomeBannerInfoModelSkipType) { + ///跳转房间 + MewMainHomeBannerInfoModelSkipType_Room = 2, + ///跳转h5 + MewMainHomeBannerInfoModelSkipType_Web = 3, +}; +NS_ASSUME_NONNULL_BEGIN + +@interface MewMainHomeBannerInfoModel : NSObject +///ID +@property (nonatomic,copy)NSString *bannerId; +///名字 +@property (nonatomic,copy)NSString *bannerName; +///图片 +@property (nonatomic, copy)NSString *bannerPic; +///跳转的地址 +@property (nonatomic, copy)NSString *skipUri; +///跳转的类型 +@property (nonatomic, assign)MewMainHomeBannerInfoModelSkipType skipType; +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeBannerInfoModel.m b/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeBannerInfoModel.m new file mode 100644 index 00000000..15d2e3cc --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeBannerInfoModel.m @@ -0,0 +1,12 @@ +// +// MewMainHomeBannerInfoModel.m +// xplan-ios +// +// Created by duoban on 2023/12/20. +// + +#import "MewMainHomeBannerInfoModel.h" + +@implementation MewMainHomeBannerInfoModel + +@end diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeGiftRecordModel.h b/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeGiftRecordModel.h new file mode 100644 index 00000000..71133604 --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeGiftRecordModel.h @@ -0,0 +1,32 @@ +// +// MewMainHomeGiftRecordModel.h +// xplan-ios +// +// Created by duoban on 2023/12/21. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface MewMainHomeGiftRecordModel : NSObject +@property (nonatomic, copy) NSString *roomUid; +@property (nonatomic, copy) NSString *roomTitle; +@property (nonatomic, copy) NSString *senderUid; +@property (nonatomic, copy) NSString *senderErbanNo; +@property (nonatomic, copy) NSString *senderAvatar; +@property (nonatomic, copy) NSString *senderNick; +@property (nonatomic, copy) NSString *receiverUid; +@property (nonatomic, copy) NSString *receiverErbanNo; +@property (nonatomic, copy) NSString *receiverAvatar; +@property (nonatomic, copy) NSString *receiverNick; +@property (nonatomic, copy) NSString *giftName; +@property (nonatomic, copy) NSString *giftNum; +@property (nonatomic, copy) NSString *giftPicUrl; + +/// 自定义字段 +/// 是否是空占位模型 +@property (nonatomic, assign) BOOL isEmpty; +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeGiftRecordModel.m b/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeGiftRecordModel.m new file mode 100644 index 00000000..b54e2d1a --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeGiftRecordModel.m @@ -0,0 +1,12 @@ +// +// MewMainHomeGiftRecordModel.m +// xplan-ios +// +// Created by duoban on 2023/12/21. +// + +#import "MewMainHomeGiftRecordModel.h" + +@implementation MewMainHomeGiftRecordModel + +@end diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeHotRoomModel.h b/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeHotRoomModel.h new file mode 100644 index 00000000..7874664e --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeHotRoomModel.h @@ -0,0 +1,66 @@ +// +// MewMainHomeHotRoomModel.h +// xplan-ios +// +// Created by duoban on 2023/12/21. +// + +#import +#import "XPEnum.h" +#import "MewMainHomeBannerInfoModel.h" +NS_ASSUME_NONNULL_BEGIN +@class MewMainHomeHotMicUserModel; +@interface MewMainHomeHotRoomModel : NSObject +///头像 +@property (nonatomic,copy) NSString *avatar; +///在线人数 +@property (nonatomic,assign) NSInteger onlineNum; +///房主的uid +@property (nonatomic,copy) NSString *roomUid; +///房间的tag +@property (nonatomic,copy) NSString *roomTag; +///标题 +@property (nonatomic,copy) NSString *title; +///tag的图片 +@property (nonatomic,copy) NSString *tagPict; +///性别 +@property (nonatomic,assign) GenderType gender; +///房主的昵称 +@property (nonatomic,copy) NSString *nick; +///房间的id +@property (nonatomic,copy) NSString *roomId; +///房主的uid +@property (nonatomic,copy) NSString *uid; +///房间简介 +@property(nonatomic, copy) NSString *roomDesc; +///排列的顺序 +@property (nonatomic,strong) NSNumber * seq; +///最新推荐上面的标签 +@property (nonatomic,copy) NSString *iconContent; +///是否在跨房PK中 +@property (nonatomic, assign) BOOL crossPking; +///是否是推荐房间 +@property (nonatomic, assign) BOOL isRecommend; +///麦上用户 +@property (nonatomic, strong) NSArray *micUsers; +@property(nonatomic,copy) NSString *backgroundPic; +@property (nonatomic, copy) NSString *erbanNo; +///列表中的banner信息 +@property (nonatomic, strong) NSArray *bannerVoList; +@property(nonatomic,assign) BOOL isBanner; +@end + + + +@interface MewMainHomeHotMicUserModel : NSObject +///头像 +@property (nonatomic, copy) NSString *avatar; +///性别 +@property (nonatomic,assign) GenderType gender; +///姓名 +@property (nonatomic,copy) NSString *nick; +///用户的uid +@property (nonatomic,copy) NSString *uid; + +@end +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeHotRoomModel.m b/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeHotRoomModel.m new file mode 100644 index 00000000..305e84ac --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeHotRoomModel.m @@ -0,0 +1,21 @@ +// +// MewMainHomeHotRoomModel.m +// xplan-ios +// +// Created by duoban on 2023/12/21. +// + +#import "MewMainHomeHotRoomModel.h" + +@implementation MewMainHomeHotRoomModel ++ (NSDictionary *)objectClassInArray { + return @{ + @"micUsers": [MewMainHomeHotMicUserModel class], + @"bannerVoList": [MewMainHomeBannerInfoModel class] + }; +} + +@end +@implementation MewMainHomeHotMicUserModel + +@end diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeMenuDataModel.h b/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeMenuDataModel.h new file mode 100644 index 00000000..c57f57d7 --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeMenuDataModel.h @@ -0,0 +1,27 @@ +// +// MewMainHomeMenuDataModel.h +// xplan-ios +// +// Created by duoban on 2023/12/21. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface MewMainHomeMenuDataModel : NSObject +///头像 +@property (nonatomic,copy) NSString *avatar; +///是否是进入房间 +@property (nonatomic,assign) BOOL isPick; +///房主的uid +@property (nonatomic,copy) NSString *uid; +///房间标题 +@property (nonatomic,copy) NSString *title; +///房间tag +@property (nonatomic,copy) NSString *tagPict; +///平台id +@property (nonatomic,copy) NSString *erbanNo; +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeMenuDataModel.m b/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeMenuDataModel.m new file mode 100644 index 00000000..2dd73ea4 --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeMenuDataModel.m @@ -0,0 +1,12 @@ +// +// MewMainHomeMenuDataModel.m +// xplan-ios +// +// Created by duoban on 2023/12/21. +// + +#import "MewMainHomeMenuDataModel.h" + +@implementation MewMainHomeMenuDataModel + +@end diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeMenuInfoModel.h b/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeMenuInfoModel.h new file mode 100644 index 00000000..ba41d9db --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeMenuInfoModel.h @@ -0,0 +1,41 @@ +// +// MewMainHomeMenuInfoModel.h +// xplan-ios +// +// Created by duoban on 2023/12/21. +// + +#import +typedef NS_ENUM(NSInteger, MewMainHomeMenuInfoModelType) { + ///进入牌照房 + MewMainHomeMenuInfoModelType_Room_Licnese = 1, + ///进入相亲房 + MewMainHomeMenuInfoModeleType_Room_Dating, + ///进入PK房 + MewMainHomeMenuInfoModelType_Room_PK, + ///进入Game房 + MewMainHomeMenuInfoModelType_Room_Game, + ///进入H5 + MewMainHomeMenuInfoModelType_H5, + ///进入自定义房 + MewMainHomeMenuInfoModelType_Custom, + ///一键匹配 + MewMainHomeMenuInfoModelType_Match = 8, +}; + +NS_ASSUME_NONNULL_BEGIN + +@interface MewMainHomeMenuInfoModel : NSObject +@property(nonatomic,assign) BOOL isMorn; +///ID 映射字段 +@property (nonatomic,copy) NSString *hid; +///显示的图片 +@property (nonatomic, copy)NSString *icon; +@property(nonatomic,assign) int posSeq; +///类型 +@property (nonatomic, assign)MewMainHomeMenuInfoModelType resourceType; +///跳转h5的时候 跳转链接 +@property (nonatomic, copy)NSString *resourceContent; +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeMenuInfoModel.m b/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeMenuInfoModel.m new file mode 100644 index 00000000..23006560 --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeMenuInfoModel.m @@ -0,0 +1,15 @@ +// +// MewMainHomeMenuInfoModel.m +// xplan-ios +// +// Created by duoban on 2023/12/21. +// + +#import "MewMainHomeMenuInfoModel.h" + +@implementation MewMainHomeMenuInfoModel +///如果一个模型中需要字段映射的话 比如id -> ID name -> other.name ++ (NSDictionary *)replacedKeyFromPropertyName { + return @{@"hid":@"id"}; +} +@end diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeProtocol/MewMainHomeProtocol.h b/xplan-ios/Main/Home/View/Mew/MewHomeProtocol/MewMainHomeProtocol.h new file mode 100644 index 00000000..91881845 --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeProtocol/MewMainHomeProtocol.h @@ -0,0 +1,27 @@ +// +// MewMainHomeProtocol.h +// xplan-ios +// +// Created by duoban on 2023/12/21. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol MewMainHomeProtocol +///获取首页轮播图列表成功 +-(void)mew_getHomeTopDataSuccess:(NSArray *)menuList; +///获取首页轮播图列表失败 +-(void)mew_getHomeTopDataFail; +/// 获取全服礼物记录列表 +-(void)mew_getHomeGiftRecordListSuccess:(NSArray *)list; +/// 获取全服礼物记录列表失败 +-(void)mew_getHomeGiftRecordListFail; +//获取热门房间 +-(void)mew_getHomePersonalRoomListSuccess:(NSArray *)list; +//获取热门房间失败 +-(void)mew_getHomePersonalRoomListFail; +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeCell/MewMainHomePartyCell.h b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeCell/MewMainHomePartyCell.h new file mode 100644 index 00000000..48c6bc49 --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeCell/MewMainHomePartyCell.h @@ -0,0 +1,16 @@ +// +// MewMainHomePartyCell.h +// xplan-ios +// +// Created by duoban on 2023/12/21. +// + +#import +#import "MewMainHomeHotRoomModel.h" +NS_ASSUME_NONNULL_BEGIN + +@interface MewMainHomePartyCell : UICollectionViewCell +@property(nonatomic,strong) MewMainHomeHotRoomModel *roomModel; +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeCell/MewMainHomePartyCell.m b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeCell/MewMainHomePartyCell.m new file mode 100644 index 00000000..c9d0fc69 --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeCell/MewMainHomePartyCell.m @@ -0,0 +1,218 @@ +// +// MewMainHomePartyCell.m +// xplan-ios +// +// Created by duoban on 2023/12/21. +// + +#import "MewMainHomePartyCell.h" +#import +@interface MewMainHomePartyCell() +///周榜,小时榜 +@property(nonatomic,strong) NetImageView *mewTopOneView; +///背景 +@property(nonatomic,strong) NetImageView *mewBgImageView; +///蒙层 +@property(nonatomic,strong) UIImageView *mewMaskView; +///标签图片 +@property(nonatomic,strong) NetImageView *mewTagView; +///pk图片 +@property(nonatomic,strong) UIImageView *mewPKImageView; +///房间名 +@property(nonatomic,strong) UILabel *mewTitleView; +///热度图标 +@property(nonatomic,strong) UILabel *mewHotNumView; +///热度值 +@property(nonatomic,strong) UIImageView *mewHotImageView; +///热度波浪 +@property(nonatomic,strong) FLAnimatedImageView *mewHeatGifView; +@end +@implementation MewMainHomePartyCell +-(instancetype)initWithFrame:(CGRect)frame{ + self = [super initWithFrame:frame]; + if(self){ + [self installUI]; + [self installConstraints]; + for (int i = 4; i >= 0; i--) { + NetImageConfig *config = [[NetImageConfig alloc]init]; + config.placeHolder = [UIImageConstant defaultAvatarPlaceholder]; + NetImageView *imageView = [[NetImageView alloc]initWithConfig:config]; + imageView.tag = 1000 + i; + imageView.layer.cornerRadius = kGetScaleWidth(18)/2; + imageView.layer.masksToBounds = YES; + imageView.layer.borderWidth = 1; + imageView.layer.borderColor = [UIColor whiteColor].CGColor; + [self.contentView addSubview:imageView]; + imageView.hidden = YES; + CGFloat x = 8 + i * 12; + [imageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.leading.mas_equalTo(kGetScaleWidth(x)); + make.width.height.mas_equalTo(kGetScaleWidth(18)); + make.bottom.mas_equalTo(-kGetScaleWidth(8)); + }]; + if(i == 4){ + UIView *grayView = [UIView new]; + grayView.backgroundColor = UIColorRGBAlpha(0xD8D8D8, 0.5); + [imageView addSubview:grayView]; + [grayView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(imageView); + }]; + } + } + } + return self; +} +-(void)installUI{ + [self.contentView addSubview:self.mewBgImageView]; + [self.mewBgImageView addSubview:self.mewMaskView]; + [self.mewBgImageView addSubview:self.mewTopOneView]; + [self.contentView addSubview:self.mewTagView]; + [self.mewTagView addSubview:self.mewHeatGifView]; + [self.contentView addSubview:self.mewPKImageView]; + [self.contentView addSubview:self.mewTitleView]; + [self.contentView addSubview:self.mewHotNumView]; + [self.contentView addSubview:self.mewHotImageView]; +} +-(void)setRoomModel:(MewMainHomeHotRoomModel *)roomModel{ + _roomModel = roomModel; + self.mewBgImageView.image = nil; + [self.mewBgImageView loadImageWithUrl:_roomModel.avatar completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) { + self.mewBgImageView.image = image; + }]; + self.mewTopOneView.image = nil; + [self.mewTopOneView loadImageWithUrl:_roomModel.backgroundPic completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) { + self.mewTopOneView.image = image; + }]; + + self.mewHeatGifView.hidden = YES; + self.mewTagView.image = nil; + [self.mewTagView loadImageWithUrl:_roomModel.tagPict completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) { + self.mewTagView.image = image; + self.mewHeatGifView.hidden = NO; + }]; + self.mewPKImageView.hidden = _roomModel.crossPking == NO; + self.mewTitleView.text = _roomModel.title; + self.mewHotNumView.text = [NSString stringWithFormat:@"%ld",_roomModel.onlineNum]; + for (int i = 4; i >= 0; i--) { + NetImageView *imageView = [self.contentView viewWithTag:1000+i]; + imageView.hidden = YES; + if(i < _roomModel.micUsers.count){ + MewMainHomeHotMicUserModel *micModel = [_roomModel.micUsers safeObjectAtIndex1:i]; + imageView.image = nil; + imageView.hidden = NO; + [imageView loadImageWithUrl:micModel.avatar completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) { + imageView.image = image; + }]; + } + } +} +-(void)installConstraints{ + [self.mewBgImageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self.contentView); + }]; + [self.mewTopOneView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self.mewBgImageView); + }]; + [self.mewMaskView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self.mewBgImageView); + }]; + [self.mewTagView mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(kGetScaleWidth(46)); + make.height.mas_equalTo(kGetScaleWidth(18)); + make.top.leading.mas_equalTo(kGetScaleWidth(6)); + }]; + [self.mewHeatGifView mas_makeConstraints:^(MASConstraintMaker *make) { + make.leading.mas_equalTo(kGetScaleWidth(6)); + make.width.mas_equalTo(kGetScaleWidth(10)); + make.height.mas_equalTo(kGetScaleWidth(9)); + make.centerY.equalTo(self.mewTagView); + }]; + [self.mewPKImageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.leading.mas_equalTo(kGetScaleWidth(7)); + make.width.mas_equalTo(kGetScaleWidth(40)); + make.height.mas_equalTo(kGetScaleWidth(16)); + make.bottom.mas_equalTo(-kGetScaleWidth(54)); + }]; + [self.mewTitleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.leading.trailing.equalTo(self.contentView).inset(kGetScaleWidth(8)); + make.height.mas_equalTo(kGetScaleWidth(20)); + make.bottom.mas_equalTo(-kGetScaleWidth(30)); + }]; + [self.mewHotNumView mas_makeConstraints:^(MASConstraintMaker *make) { + make.trailing.mas_equalTo(-kGetScaleWidth(10)); + make.height.mas_equalTo(kGetScaleWidth(14)); + make.bottom.mas_equalTo(-kGetScaleWidth(8)); + }]; + [self.mewHotImageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(kGetScaleWidth(12)); + make.trailing.equalTo(self.mewHotNumView.mas_leading).mas_offset(-kGetScaleWidth(1)); + make.centerY.equalTo(self.mewHotNumView); + }]; +} +#pragma mark - 懒加载 +- (FLAnimatedImageView *)mewHeatGifView{ + if(!_mewHeatGifView){ + _mewHeatGifView = [FLAnimatedImageView new]; + NSData *localData = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"mew_main_home_heat.gif" ofType:nil]]; + FLAnimatedImage *animatedImage = [FLAnimatedImage animatedImageWithGIFData:localData]; + _mewHeatGifView.animatedImage = animatedImage; + + } + return _mewHeatGifView; +} +- (NetImageView *)mewBgImageView{ + if(!_mewBgImageView){ + NetImageConfig *config = [[NetImageConfig alloc]init]; + config.placeHolder = [UIImageConstant defaultAvatarPlaceholder]; + _mewBgImageView = [[NetImageView alloc]initWithConfig:config]; + _mewBgImageView.layer.cornerRadius = kGetScaleWidth(12); + _mewBgImageView.layer.masksToBounds = YES; + } + return _mewBgImageView; +} +- (UIImageView *)mewMaskView{ + if(!_mewMaskView){ + _mewMaskView = [UIImageView new]; + _mewMaskView.image = kImage(@"mew_main_home_party_cell_mask"); + } + return _mewMaskView; +} +- (NetImageView *)mewTagView{ + if(!_mewTagView){ + _mewTagView = [[NetImageView alloc]init]; + } + return _mewTagView; +} +- (UILabel *)mewTitleView{ + if(!_mewTitleView){ + _mewTitleView = [UILabel labelInitWithText:@"" font:kFontMedium(14) textColor:[UIColor whiteColor]]; + } + return _mewTitleView; +} +- (UIImageView *)mewHotImageView{ + if(!_mewHotImageView){ + _mewHotImageView = [UIImageView new]; + _mewHotImageView.image = kImage(@"mew_main_home_party_cell_hot"); + } + return _mewHotImageView; +} +- (UILabel *)mewHotNumView{ + if(!_mewHotNumView){ + _mewHotNumView = [UILabel labelInitWithText:@"0" font:kFontBold(11) textColor:[UIColor whiteColor]]; + } + return _mewHotNumView; +} +- (UIImageView *)mewPKImageView{ + if(!_mewPKImageView){ + _mewPKImageView = [UIImageView new]; + _mewPKImageView.image = kImage(@"mew_main_home_party_cell_pk"); + } + return _mewPKImageView; +} +- (NetImageView *)mewTopOneView{ + if(!_mewTopOneView){ + _mewTopOneView = [NetImageView new]; + } + return _mewTopOneView; +} +@end diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeCell/MewMainHomePartyHeadHotCell.h b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeCell/MewMainHomePartyHeadHotCell.h new file mode 100644 index 00000000..ef90397d --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeCell/MewMainHomePartyHeadHotCell.h @@ -0,0 +1,16 @@ +// +// MewMainHomePartyHeadHotCell.h +// xplan-ios +// +// Created by duoban on 2023/12/21. +// + +#import +#import "MewMainHomeGiftRecordModel.h" +NS_ASSUME_NONNULL_BEGIN + +@interface MewMainHomePartyHeadHotCell : UICollectionViewCell +@property(nonatomic,strong) MewMainHomeGiftRecordModel *mewGiftInfo; +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeCell/MewMainHomePartyHeadHotCell.m b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeCell/MewMainHomePartyHeadHotCell.m new file mode 100644 index 00000000..d51d11bd --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeCell/MewMainHomePartyHeadHotCell.m @@ -0,0 +1,192 @@ +// +// MewMainHomePartyHeadHotCell.m +// xplan-ios +// +// Created by duoban on 2023/12/21. +// + +#import "MewMainHomePartyHeadHotCell.h" +@interface MewMainHomePartyHeadHotCell() + + +///背景 +@property(nonatomic,strong) UIImageView *mewBgImageView; +///赠送人头像 +@property(nonatomic,strong) NetImageView *mewSendUserHeadView; +///收到人头像 +@property(nonatomic,strong) NetImageView *mewReceiverHeadView; +///赠送人名字 +@property(nonatomic,strong) UILabel *mewSendUserTextView; +///赠送人名字 +@property(nonatomic,strong) UILabel *mewReceiverTextView; +///赠送标题 +@property(nonatomic,strong) UILabel *mewSendTitleView; +///礼物名 +@property(nonatomic,strong) UILabel *mewGiftView; +///礼物图片 +@property(nonatomic,strong) NetImageView *mewGiftImageView; +///礼物数量 +@property(nonatomic,strong) UILabel *mewGiftNumView; +///箭头 +@property(nonatomic,strong) UIImageView *mewArrowView; +@end +@implementation MewMainHomePartyHeadHotCell +-(instancetype)initWithFrame:(CGRect)frame{ + self = [super initWithFrame:frame]; + if(self){ + [self installUI]; + [self installConstraints]; + } + return self; +} +-(void)installUI{ + + [self.contentView addSubview:self.mewBgImageView]; + [self.contentView addSubview:self.mewSendUserHeadView]; + [self.contentView addSubview:self.mewSendUserTextView]; + [self.contentView addSubview:self.mewSendTitleView]; + [self.contentView addSubview:self.mewReceiverHeadView]; + [self.contentView addSubview:self.mewReceiverTextView]; + [self.contentView addSubview:self.mewGiftView]; + [self.contentView addSubview:self.mewGiftImageView]; + [self.contentView addSubview:self.mewGiftNumView]; + [self.contentView addSubview:self.mewArrowView]; +} +-(void)installConstraints{ + [self.mewBgImageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self); + + }]; + [self.mewArrowView mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(kGetScaleWidth(12)); + make.trailing.mas_equalTo(-kGetScaleWidth(12)); + make.centerY.equalTo(self); + }]; + [self.mewSendUserHeadView mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(kGetScaleWidth(22)); + make.centerY.equalTo(self); + make.leading.mas_equalTo(kGetScaleWidth(12)); + }]; + [self.mewSendUserTextView mas_makeConstraints:^(MASConstraintMaker *make) { + + make.centerY.equalTo(self); + make.leading.mas_equalTo(kGetScaleWidth(38)); + }]; + [self.mewSendTitleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.leading.equalTo(self.mewSendUserTextView.mas_trailing).mas_offset(kGetScaleWidth(4)); + make.width.mas_equalTo(kGetScaleWidth(25)); + make.centerY.equalTo(self); + }]; + [self.mewReceiverHeadView mas_makeConstraints:^(MASConstraintMaker *make) { + make.leading.equalTo(self.mewSendTitleView.mas_trailing).mas_offset(kGetScaleWidth(6)); + make.centerY.equalTo(self); + make.width.height.mas_equalTo(kGetScaleWidth(22)); + }]; + [self.mewReceiverTextView mas_makeConstraints:^(MASConstraintMaker *make) { + make.leading.equalTo(self.mewReceiverHeadView.mas_trailing).mas_offset(kGetScaleWidth(4)); + make.centerY.equalTo(self); + + }]; + [self.mewGiftView mas_makeConstraints:^(MASConstraintMaker *make) { + make.leading.equalTo(self.mewReceiverTextView.mas_trailing).mas_offset(kGetScaleWidth(4)); + make.centerY.equalTo(self); + + }]; + [self.mewGiftImageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.leading.equalTo(self.mewGiftView.mas_trailing).mas_offset(kGetScaleWidth(2)); + make.centerY.equalTo(self); + make.width.height.mas_equalTo(kGetScaleWidth(28)); + + }]; + [self.mewGiftNumView mas_makeConstraints:^(MASConstraintMaker *make) { + make.leading.equalTo(self.mewGiftImageView.mas_trailing).mas_offset(kGetScaleWidth(2)); + make.centerY.equalTo(self); + + }]; +} +-(void)setMewGiftInfo:(MewMainHomeGiftRecordModel *)mewGiftInfo{ + _mewGiftInfo = mewGiftInfo; + _mewSendUserHeadView.imageUrl = _mewGiftInfo.senderAvatar; + NSString *senderNick = _mewGiftInfo.senderNick.length > 4 ? [NSString stringWithFormat:@"%@...",[_mewGiftInfo.senderNick substringToIndex:4]]:_mewGiftInfo.senderNick; + _mewSendUserTextView.text = senderNick; + _mewReceiverHeadView.imageUrl = _mewGiftInfo.receiverAvatar; + NSString *receiverNick = _mewGiftInfo.receiverNick.length > 4 ? [NSString stringWithFormat:@"%@...",[_mewGiftInfo.receiverNick substringToIndex:4]]:_mewGiftInfo.receiverNick; + _mewReceiverTextView.text = receiverNick; + _mewGiftView.text = _mewGiftInfo.giftName; + _mewGiftImageView.imageUrl = _mewGiftInfo.giftPicUrl; + _mewGiftNumView.text = [NSString stringWithFormat:@"x%@",_mewGiftInfo.giftNum]; +} +#pragma mark - 懒加载 +- (UIImageView *)mewBgImageView{ + if(!_mewBgImageView){ + _mewBgImageView = [UIImageView new]; + _mewBgImageView.image = kImage(@"mew_home_party_head_hot_bg"); + } + return _mewBgImageView; +} +- (NetImageView *)mewSendUserHeadView{ + if(!_mewSendUserHeadView){ + NetImageConfig *config = [[NetImageConfig alloc]init]; + config.placeHolder = [UIImageConstant defaultAvatarPlaceholder]; + _mewSendUserHeadView = [[NetImageView alloc]initWithConfig:config]; + _mewSendUserHeadView.layer.cornerRadius = kGetScaleWidth(22)/2; + _mewSendUserHeadView.layer.masksToBounds = YES; + } + return _mewSendUserHeadView; +} +- (UILabel *)mewSendUserTextView{ + if(!_mewSendUserTextView){ + _mewSendUserTextView = [UILabel labelInitWithText:@"" font:kFontRegular(12) textColor:UIColorFromRGB(0x2B2D33)]; + } + return _mewSendUserTextView; +} +- (NetImageView *)mewReceiverHeadView{ + if(!_mewReceiverHeadView){ + NetImageConfig *config = [[NetImageConfig alloc]init]; + config.placeHolder = [UIImageConstant defaultAvatarPlaceholder]; + _mewReceiverHeadView = [[NetImageView alloc]initWithConfig:config]; + _mewReceiverHeadView.layer.cornerRadius = kGetScaleWidth(22)/2; + _mewReceiverHeadView.layer.masksToBounds = YES; + } + return _mewReceiverHeadView; +} +- (UILabel *)mewReceiverTextView{ + if(!_mewReceiverTextView){ + _mewReceiverTextView = [UILabel labelInitWithText:@"" font:kFontRegular(12) textColor:UIColorFromRGB(0x2B2D33)]; + } + return _mewReceiverTextView; +} +- (UILabel *)mewSendTitleView{ + if(!_mewSendTitleView){ + _mewSendTitleView = [UILabel labelInitWithText:@"赠送" font:kFontRegular(12) textColor:UIColorFromRGB(0x2B2D33)]; + } + return _mewSendTitleView; +} +-(UILabel *)mewGiftView{ + if(!_mewGiftView){ + _mewGiftView = [UILabel labelInitWithText:@"" font:kFontRegular(12) textColor:UIColorFromRGB(0xFF9D24)]; + } + return _mewGiftView; +} +- (NetImageView *)mewGiftImageView{ + if(!_mewGiftImageView){ + NetImageConfig *config = [[NetImageConfig alloc]init]; + config.placeHolder = [UIImageConstant defaultAvatarPlaceholder]; + _mewGiftImageView = [[NetImageView alloc]initWithConfig:config]; + } + return _mewGiftImageView; +} +- (UILabel *)mewGiftNumView{ + if(!_mewGiftNumView){ + _mewGiftNumView = [UILabel labelInitWithText:@"x1" font:kFontMedium(14) textColor:UIColorFromRGB(0x2B2D33)]; + } + return _mewGiftNumView; +} +- (UIImageView *)mewArrowView{ + if(!_mewArrowView){ + _mewArrowView = [UIImageView new]; + _mewArrowView.image = kImage(@"mew_home_party_head_hot_arrow"); + } + return _mewArrowView; +} +@end diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeSubViews/MewMainHomeNavView.h b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeSubViews/MewMainHomeNavView.h new file mode 100644 index 00000000..0ead9d56 --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeSubViews/MewMainHomeNavView.h @@ -0,0 +1,24 @@ +// +// MewMainNavView.h +// xplan-ios +// +// Created by duoban on 2023/12/20. +// + +#import +@class MewMainHomeNavView; +@protocol MewMainHomeNavViewDelegate +///点击了搜索房间 +- (void)mew_MainHomeNavView:(MewMainHomeNavView *_Nullable)view didClickSearch:(UIView *_Nullable)sender; +///点击了榜单按钮 +- (void)mew_MainHomeNavView:(MewMainHomeNavView *_Nullable)view didClickRank:(UIButton *_Nullable)sender; +///点击了我的房间 +- (void)mew_MainHomeNavView:(MewMainHomeNavView *_Nullable)view didClickRoom:(UIButton *_Nullable)sender; +@end +NS_ASSUME_NONNULL_BEGIN + +@interface MewMainHomeNavView : UIView +@property(nonatomic,weak) iddelegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeSubViews/MewMainHomeNavView.m b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeSubViews/MewMainHomeNavView.m new file mode 100644 index 00000000..9cfacd65 --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeSubViews/MewMainHomeNavView.m @@ -0,0 +1,120 @@ +// +// MewMainNavView.m +// xplan-ios +// +// Created by duoban on 2023/12/20. +// + +#import "MewMainHomeNavView.h" +@interface MewMainHomeNavView() +///搜索 +@property(nonatomic,strong) UIView *mewBgSearchView; +@property(nonatomic,strong) UIImageView *mewSearchIconView; +@property(nonatomic,strong) UILabel *mewSearchTextView; +///我的房间 +@property(nonatomic,strong) UIButton *mewRoomBtn; +///榜单 +@property(nonatomic,strong) UIButton *mewRankBnt; +@end +@implementation MewMainHomeNavView +-(instancetype)initWithFrame:(CGRect)frame{ + self = [super initWithFrame:frame]; + if(self){ + [self installUI]; + [self installConstraints]; + } + return self; +} +-(void)installUI{ + [self addSubview:self.mewBgSearchView]; + [self addSubview:self.mewRoomBtn]; + [self addSubview:self.mewRankBnt]; + + [self.mewBgSearchView addSubview:self.mewSearchIconView]; + [self.mewBgSearchView addSubview:self.mewSearchTextView]; +} +-(void)installConstraints{ + [self.mewBgSearchView mas_makeConstraints:^(MASConstraintMaker *make) { + + make.centerY.leading.equalTo(self); + make.height.mas_equalTo(26); + make.width.mas_equalTo(136); + }]; + [self.mewRoomBtn mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(30); + make.leading.equalTo(self.mewBgSearchView.mas_trailing).mas_offset(8); + make.centerY.equalTo(self); + }]; + [self.mewRankBnt mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(30); + make.leading.equalTo(self.mewRoomBtn.mas_trailing).mas_offset(8); + make.centerY.equalTo(self); + }]; + [self.mewSearchIconView mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(16); + make.leading.mas_equalTo(9); + make.centerY.equalTo(self.mewBgSearchView); + }]; + [self.mewSearchTextView mas_makeConstraints:^(MASConstraintMaker *make) { + make.leading.mas_equalTo(32); + make.trailing.mas_equalTo(-5); + make.centerY.equalTo(self.mewBgSearchView); + }]; +} +-(void)clickSearchViewAction{ + if(self.delegate && [self.delegate respondsToSelector:@selector(mew_MainHomeNavView:didClickSearch:)]){ + [self.delegate mew_MainHomeNavView:self didClickSearch:self.mewBgSearchView]; + } +} +-(void)clickRoomAction{ + if(self.delegate && [self.delegate respondsToSelector:@selector(mew_MainHomeNavView:didClickRoom:)]){ + [self.delegate mew_MainHomeNavView:self didClickRoom:self.mewRoomBtn]; + } +} +-(void)clickRankAction{ + if(self.delegate && [self.delegate respondsToSelector:@selector(mew_MainHomeNavView:didClickRank:)]){ + [self.delegate mew_MainHomeNavView:self didClickRank:self.mewRankBnt]; + } +} +#pragma mark - 懒加载 +- (UIView *)mewBgSearchView{ + if(!_mewBgSearchView){ + _mewBgSearchView = [UIView new]; + _mewBgSearchView.backgroundColor = [UIColor whiteColor]; + _mewBgSearchView.layer.cornerRadius = kGetScaleWidth(26)/2; + _mewBgSearchView.layer.masksToBounds = YES; + UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(clickSearchViewAction)]; + [_mewBgSearchView addGestureRecognizer:tap]; + } + return _mewBgSearchView; +} +-(UIImageView *)mewSearchIconView{ + if(!_mewSearchIconView){ + _mewSearchIconView = [UIImageView new]; + _mewSearchIconView.image = kImage(@"mew_home_nav_search_icon"); + } + return _mewSearchIconView; +} +- (UILabel *)mewSearchTextView{ + if(!_mewSearchTextView){ + _mewSearchTextView = [UILabel labelInitWithText:@"搜索ID、房间" font:[UIFont systemFontOfSize:12 weight:UIFontWeightRegular] textColor:UIColorFromRGB(0xB8B7C7)]; + } + return _mewSearchTextView; +} +- (UIButton *)mewRoomBtn{ + if(!_mewRoomBtn){ + _mewRoomBtn = [UIButton new]; + [_mewRoomBtn setBackgroundImage:kImage(@"mew_home_nav_click_room") forState:UIControlStateNormal]; + [_mewRoomBtn addTarget:self action:@selector(clickRoomAction) forControlEvents:UIControlEventTouchUpInside]; + } + return _mewRoomBtn; +} +- (UIButton *)mewRankBnt{ + if(!_mewRankBnt){ + _mewRankBnt = [UIButton new]; + [_mewRankBnt setBackgroundImage:kImage(@"mew_home_nav_click_rank") forState:UIControlStateNormal]; + [_mewRankBnt addTarget:self action:@selector(clickRankAction) forControlEvents:UIControlEventTouchUpInside]; + } + return _mewRankBnt; +} +@end diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeSubViews/MewMainHomePartyHeadHotView.h b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeSubViews/MewMainHomePartyHeadHotView.h new file mode 100644 index 00000000..1f8c4a71 --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeSubViews/MewMainHomePartyHeadHotView.h @@ -0,0 +1,22 @@ +// +// MewMainHomePartyHeadHotView.h +// xplan-ios +// +// Created by duoban on 2023/12/20. +// + +#import +#import "MewMainHomeGiftRecordModel.h" +@protocol MewMainHomePartyHeadHotViewDelegate + +- (void)mew_clickMainHomeHeadHotScrollView:(MewMainHomeGiftRecordModel *_Nullable)model; + +@end +NS_ASSUME_NONNULL_BEGIN + +@interface MewMainHomePartyHeadHotView : UIView +@property(nonatomic,copy) NSArray *mewGiftRecordList; +@property(nonatomic,weak) iddelegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeSubViews/MewMainHomePartyHeadHotView.m b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeSubViews/MewMainHomePartyHeadHotView.m new file mode 100644 index 00000000..86a15d3d --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeSubViews/MewMainHomePartyHeadHotView.m @@ -0,0 +1,83 @@ +// +// MewMainHomePartyHeadHotView.m +// xplan-ios +// +// Created by duoban on 2023/12/20. +// + +#import "MewMainHomePartyHeadHotView.h" +#import +#import "MewMainHomePartyHeadHotCell.h" +#import "MewMainHomeGiftRecordModel.h" +@interface MewMainHomePartyHeadHotView() + +/// 热门轮播图 +@property (nonatomic, strong) SDCycleScrollView *mewHotScrollView; + + +@end +@implementation MewMainHomePartyHeadHotView + +-(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.mewHotScrollView]; +} +-(void)installConstraints{ + [self.mewHotScrollView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self); + }]; +} +#pragma mark - SDCycleScrollViewDelegate +- (Class)customCollectionViewCellClassForCycleScrollView:(SDCycleScrollView *)view { + return MewMainHomePartyHeadHotCell.class; +} + +- (void)setupCustomCell:(UICollectionViewCell *)cell forIndex:(NSInteger)index cycleScrollView:(SDCycleScrollView *)view { + MewMainHomePartyHeadHotCell *myCell = (MewMainHomePartyHeadHotCell *)cell; + MewMainHomeGiftRecordModel * info = [self.mewGiftRecordList safeObjectAtIndex1:index]; + myCell.mewGiftInfo = info; + +} +/** 点击图片回调 */ +- (void)cycleScrollView:(SDCycleScrollView *)cycleScrollView didSelectItemAtIndex:(NSInteger)index{ + MewMainHomeGiftRecordModel * info = [self.mewGiftRecordList safeObjectAtIndex1:index]; + if(self.delegate && [self.delegate respondsToSelector:@selector(mew_clickMainHomeHeadHotScrollView:)]){ + [self.delegate mew_clickMainHomeHeadHotScrollView:info]; + } +} +-(void)setMewGiftRecordList:(NSArray *)mewGiftRecordList{ + _mewGiftRecordList = mewGiftRecordList; + if (_mewGiftRecordList.count > 0) { + NSMutableArray * array = [NSMutableArray array]; + for (MewMainHomeGiftRecordModel * item in _mewGiftRecordList) { + [array addObject:item.giftName]; + } + if (array.count > 0) { + self.mewHotScrollView.imageURLStringsGroup = array; + [self.mewHotScrollView autoScroll]; + } + } +} +#pragma mark - 懒加载 +- (SDCycleScrollView *)mewHotScrollView { + if (!_mewHotScrollView) { + _mewHotScrollView = [[SDCycleScrollView alloc] init]; + _mewHotScrollView.backgroundColor = [UIColor clearColor]; + _mewHotScrollView.layer.masksToBounds = YES; + _mewHotScrollView.scrollDirection = UICollectionViewScrollDirectionVertical; + _mewHotScrollView.delegate = self; + _mewHotScrollView.showPageControl = NO; + _mewHotScrollView.autoScrollTimeInterval = 5.0; + [_mewHotScrollView disableScrollGesture]; + } + return _mewHotScrollView; +} +@end diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeSubViews/MewMainHomePartyHeadItemView.h b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeSubViews/MewMainHomePartyHeadItemView.h new file mode 100644 index 00000000..b8c9ffa2 --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeSubViews/MewMainHomePartyHeadItemView.h @@ -0,0 +1,26 @@ +// +// MewMainHomePartyHeadItemView.h +// xplan-ios +// +// Created by duoban on 2023/12/20. +// + +#import +#import "MewMainHomeMenuInfoModel.h" + +@protocol MewMainHomePartyHeadItemViewDelegate + +- (void)mew_clickMainHomeHeadItemViewMenu:(MewMainHomeMenuInfoModel *_Nullable)info; + +@end + + +NS_ASSUME_NONNULL_BEGIN + +@interface MewMainHomePartyHeadItemView : UIView +@property(nonatomic,copy) NSArray *mewMenuList; +@property(nonatomic,weak) iddelegate; +@end + + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeSubViews/MewMainHomePartyHeadItemView.m b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeSubViews/MewMainHomePartyHeadItemView.m new file mode 100644 index 00000000..1b333fea --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeSubViews/MewMainHomePartyHeadItemView.m @@ -0,0 +1,131 @@ +// +// MewMainHomePartyHeadItemView.m +// xplan-ios +// +// Created by duoban on 2023/12/20. +// + +#import "MewMainHomePartyHeadItemView.h" +@interface MewMainHomePartyHeadItemView() + + + + + +@end +@implementation MewMainHomePartyHeadItemView + +-(instancetype)initWithFrame:(CGRect)frame{ + self = [super initWithFrame:frame]; + if(self){ + [self installUI]; + [self installConstraints]; + } + return self; +} +-(void)installUI{ + self.backgroundColor = [UIColor clearColor]; + for (int i = 0; i < 5; i++) { + NetImageConfig *config = [[NetImageConfig alloc]init]; + config.placeHolder = [UIImageConstant defalutBannerPlaceholder]; + NetImageView *imageView = [[NetImageView alloc]initWithConfig:config]; + UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(clickBtnAction:)]; + [imageView addGestureRecognizer:tap]; + imageView.userInteractionEnabled = YES; + imageView.tag = i + 100; + imageView.hidden = YES; + if(i == 4){ + imageView.hidden = NO; + imageView.image = kImage(@"mew_home_party_head_morn"); + } + [self addSubview:imageView]; + } +} +-(void)clickBtnAction:(UITapGestureRecognizer *)sender{ + NetImageView *imageView = (NetImageView *)sender.view; + NSInteger index = imageView.tag - 100; + MewMainHomeMenuInfoModel *obj; + if(index == 4){ + obj = [MewMainHomeMenuInfoModel new]; + obj.isMorn = YES; + }else{ + obj = [_mewMenuList safeObjectAtIndex1:index]; + } + if(obj && self.delegate && [self.delegate respondsToSelector:@selector(mew_clickMainHomeHeadItemViewMenu:)]){ + [self.delegate mew_clickMainHomeHeadItemViewMenu:obj]; + } +} +-(void)installConstraints{ + + for (int i = 0; i < 5; i++) { + + NetImageView *imageView = [self viewWithTag:100 + i]; + if(i == 0){ + [imageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(kGetScaleWidth(0)); + make.leading.mas_equalTo(kGetScaleWidth(15)); + make.width.mas_equalTo(kGetScaleWidth(171)); + make.height.mas_equalTo(kGetScaleWidth(88)); + }]; + }else if(i == 1){ + [imageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(kGetScaleWidth(0)); + make.trailing.mas_equalTo(-kGetScaleWidth(15)); + make.width.mas_equalTo(kGetScaleWidth(171)); + make.height.mas_equalTo(kGetScaleWidth(88)); + }]; + }else if(i == 2){ + [imageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(kGetScaleWidth(95)); + make.leading.mas_equalTo(kGetScaleWidth(15)); + make.width.mas_equalTo(kGetScaleWidth(113)); + make.height.mas_equalTo(kGetScaleWidth(48)); + }]; + }else if(i == 3){ + [imageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(kGetScaleWidth(95)); + make.centerX.equalTo(self); + make.width.mas_equalTo(kGetScaleWidth(113)); + make.height.mas_equalTo(kGetScaleWidth(48)); + }]; + }else{ + [imageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(kGetScaleWidth(95)); + make.trailing.mas_equalTo(-kGetScaleWidth(15)); + make.width.mas_equalTo(kGetScaleWidth(113)); + make.height.mas_equalTo(kGetScaleWidth(48)); + }]; + } + + + } + + +} +-(void)setMewMenuList:(NSArray *)mewMenuList{ + _mewMenuList = mewMenuList; + if(_mewMenuList.count == 0){ + return; + } + for (int i = 0; i < 4; i++) { + NetImageView *imageView = [self viewWithTag:100 + i]; + imageView.hidden = YES; + MewMainHomeMenuInfoModel *obj = [_mewMenuList safeObjectAtIndex1:i]; + if(obj != nil){ + if(obj.posSeq == i+1){ + imageView.hidden = NO; + imageView.imageUrl = obj.icon; + } + } + } + + +} +#pragma mark - 懒加载 + +@end + + + + + diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeSubViews/MewMainHomePartyHeadView.h b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeSubViews/MewMainHomePartyHeadView.h new file mode 100644 index 00000000..30d2a0d7 --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeSubViews/MewMainHomePartyHeadView.h @@ -0,0 +1,29 @@ +// +// MewMainHomePartyHeadView.h +// xplan-ios +// +// Created by duoban on 2023/12/20. +// + +#import +#import "MewMainHomeBannerInfoModel.h" +#import "MewMainHomeMenuInfoModel.h" +#import "MewMainHomeGiftRecordModel.h" +@protocol MewMainHomePartyHeadViewDelegate +/// 点击banner +- (void)mewClickBannerAction:(MewMainHomeBannerInfoModel *_Nullable)info; +///点击顶部菜单 +- (void)mew_clickMainHomeHeadViewMenu:(MewMainHomeMenuInfoModel *_Nullable)info; +///点击热说item +- (void)mew_clickMainHomeHeadScrollView:(MewMainHomeGiftRecordModel *_Nullable)model; +@end +NS_ASSUME_NONNULL_BEGIN + +@interface MewMainHomePartyHeadView : UICollectionReusableView +@property(nonatomic,copy) NSArray *mewMenuList; +@property(nonatomic,copy) NSArray *mewGiftRecordList; +@property (nonatomic, copy) NSArray *mewBannerArray; +@property(nonatomic,weak) iddelegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeSubViews/MewMainHomePartyHeadView.m b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeSubViews/MewMainHomePartyHeadView.m new file mode 100644 index 00000000..7a8443e1 --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeSubViews/MewMainHomePartyHeadView.m @@ -0,0 +1,136 @@ +// +// MewMainHomePartyHeadView.m +// xplan-ios +// +// Created by duoban on 2023/12/20. +// + +#import "MewMainHomePartyHeadView.h" +#import "MewMainHomePartyHeadItemView.h" +#import "MewMainHomePartyHeadHotView.h" +#import +@interface MewMainHomePartyHeadView() +@property(nonatomic,strong) MewMainHomePartyHeadItemView *mewHeadItemView; +@property(nonatomic,strong) MewMainHomePartyHeadHotView *mewHeadHotView; +/// 轮播图 +@property (nonatomic, strong) SDCycleScrollView *mewCycleScrollView; + +@property(nonatomic,strong) UILabel *mewTitleView; +@end +@implementation MewMainHomePartyHeadView + +-(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.mewHeadItemView]; + [self addSubview:self.mewHeadHotView]; + [self addSubview:self.mewCycleScrollView]; + [self addSubview:self.mewTitleView]; +} +-(void)installConstraints{ + [self.mewHeadItemView mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(kGetScaleWidth(143)); + make.leading.trailing.equalTo(self); + make.top.mas_equalTo(10); + }]; + [self.mewHeadHotView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.equalTo(self.mewHeadItemView.mas_bottom).mas_offset(kGetScaleWidth(12)); + make.height.mas_equalTo(kGetScaleWidth(42)); + make.leading.trailing.equalTo(self).inset(kGetScaleWidth(15)); + }]; + [self.mewCycleScrollView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.equalTo(self.mewHeadHotView.mas_bottom).mas_offset(kGetScaleWidth(12)); + make.leading.trailing.equalTo(self).inset(kGetScaleWidth(15)); + make.height.mas_equalTo(kGetScaleWidth(80)); + }]; + [self.mewTitleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.leading.mas_equalTo(kGetScaleWidth(19)); + make.top.equalTo(self.mewCycleScrollView.mas_bottom).mas_offset(kGetScaleWidth(12)); + }]; +} +- (void)setMewMenuList:(NSArray *)mewMenuList{ + _mewMenuList = mewMenuList; + self.mewHeadItemView.mewMenuList = mewMenuList; +} +-(void)setMewGiftRecordList:(NSArray *)mewGiftRecordList{ + _mewGiftRecordList = mewGiftRecordList; + self.mewHeadHotView.mewGiftRecordList = _mewGiftRecordList; +} +-(void)setMewBannerArray:(NSArray *)mewBannerArray{ + _mewBannerArray = mewBannerArray; + if (_mewBannerArray.count > 0) { + NSMutableArray * list = [NSMutableArray array]; + [_mewBannerArray enumerateObjectsUsingBlock:^(MewMainHomeBannerInfoModel * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (obj.bannerPic.length > 0) { + [list addObject:obj.bannerPic]; + } + }]; + if (list.count > 0) { + self.mewCycleScrollView.imageURLStringsGroup = list; + [self.mewCycleScrollView autoScroll]; + } + } +} +#pragma mark- MewMainHomePartyHeadItemViewDelegate +- (void)mew_clickMainHomeHeadItemViewMenu:(MewMainHomeMenuInfoModel *_Nullable)info{ + if(self.delegate && [self.delegate respondsToSelector:@selector(mew_clickMainHomeHeadViewMenu:)]){ + [self.delegate mew_clickMainHomeHeadViewMenu:info]; + }; +} +#pragma mark- MewMainHomePartyHeadHotViewDelegate +- (void)mew_clickMainHomeHeadHotScrollView:(MewMainHomeGiftRecordModel *_Nullable)model{ + if(self.delegate && [self.delegate respondsToSelector:@selector(mew_clickMainHomeHeadScrollView:)]){ + [self.delegate mew_clickMainHomeHeadScrollView:model]; + } +} +#pragma mark - SDCycleScrollViewDelegate +- (void)cycleScrollView:(SDCycleScrollView *)cycleScrollView didSelectItemAtIndex:(NSInteger)index { + MewMainHomeBannerInfoModel * bannerInfo = [self.mewBannerArray safeObjectAtIndex1:index]; + if (self.delegate && [self.delegate respondsToSelector:@selector(mewClickBannerAction:)]) { + [self.delegate mewClickBannerAction:bannerInfo]; + } +} +#pragma mark - 懒加载 +- (MewMainHomePartyHeadItemView *)mewHeadItemView{ + if(!_mewHeadItemView){ + _mewHeadItemView = [[MewMainHomePartyHeadItemView alloc]initWithFrame:CGRectZero]; + _mewHeadItemView.delegate = self; + } + return _mewHeadItemView; +} +- (MewMainHomePartyHeadHotView *)mewHeadHotView{ + if(!_mewHeadHotView){ + _mewHeadHotView = [[MewMainHomePartyHeadHotView alloc]initWithFrame:CGRectZero]; + _mewHeadHotView.delegate = self; + } + return _mewHeadHotView; +} +- (SDCycleScrollView *)mewCycleScrollView { + if (!_mewCycleScrollView) { + _mewCycleScrollView = [[SDCycleScrollView alloc] init]; + _mewCycleScrollView.backgroundColor = [UIColor clearColor]; + _mewCycleScrollView.layer.cornerRadius = kGetScaleWidth(10); + _mewCycleScrollView.layer.masksToBounds = YES; + _mewCycleScrollView.bannerImageViewContentMode = UIViewContentModeScaleAspectFill; + _mewCycleScrollView.delegate = self; + _mewCycleScrollView.showPageControl = YES; + _mewCycleScrollView.autoScrollTimeInterval = 5.0; + _mewCycleScrollView.tag = 9999; + } + return _mewCycleScrollView; +} + +- (UILabel *)mewTitleView{ + if(!_mewTitleView){ + _mewTitleView = [UILabel labelInitWithText:@"热门推荐" font:kFontMedium(16) textColor:UIColorFromRGB(0x2B2D33)]; + } + return _mewTitleView; +} +@end diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeView/MewMainHomeMakeFriendVC.h b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewMainHomeMakeFriendVC.h new file mode 100644 index 00000000..f6ccda58 --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewMainHomeMakeFriendVC.h @@ -0,0 +1,22 @@ +// +// MewMainHomeMakeFriendVC.h +// xplan-ios +// +// Created by duoban on 2023/12/20. +// + +#import "MvpViewController.h" +#import +@class MewMainHomeMakeFriendVC; +NS_ASSUME_NONNULL_BEGIN +@protocol MewMainHomeMakeFriendVCDelegate + +-(void)mew_RefreshDataSucceed:(MewMainHomeMakeFriendVC*)VC; + +@end +@interface MewMainHomeMakeFriendVC : MvpViewController +- (void)headerRefresh; +@property(nonatomic,weak) iddelegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeView/MewMainHomeMakeFriendVC.m b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewMainHomeMakeFriendVC.m new file mode 100644 index 00000000..19638b62 --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewMainHomeMakeFriendVC.m @@ -0,0 +1,54 @@ +// +// MewMainHomeMakeFriendVC.m +// xplan-ios +// +// Created by duoban on 2023/12/20. +// + +#import "MewMainHomeMakeFriendVC.h" + +@interface MewMainHomeMakeFriendVC () +@property(nonatomic,strong) UICollectionView *mewCollectionView; +@property (nonatomic, copy) void(^scrollCallback)(UIScrollView *scrollView); +@end + +@implementation MewMainHomeMakeFriendVC +- (BOOL)isHiddenNavBar { + return YES; +} +- (void)viewDidLoad { + [super viewDidLoad]; + self.view.backgroundColor = [UIColor clearColor]; + [self installUI]; + [self installConstraints]; +} +-(void)installUI{ + +} +-(void)installConstraints{ + +} +- (void)headerRefresh{ + +} +#pragma mark - JXPagingViewListViewDelegate +- (UIView *)listView { + return self.view; +} + +- (UIScrollView *)listScrollView { + return self.mewCollectionView; +} + +- (void)listViewDidScrollCallback:(void (^)(UIScrollView *))callback { + self.scrollCallback = callback; +} + +- (void)scrollViewDidScroll:(UIScrollView *)scrollView { + if(self.scrollCallback){ + self.scrollCallback(scrollView); + } + +} +#pragma mark - 懒加载 +@end diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeView/MewMainHomePartyVC.h b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewMainHomePartyVC.h new file mode 100644 index 00000000..a854f693 --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewMainHomePartyVC.h @@ -0,0 +1,25 @@ +// +// MewMainHomePartyVC.h +// xplan-ios +// +// Created by duoban on 2023/12/20. +// + +#import "MvpViewController.h" +#import + + +NS_ASSUME_NONNULL_BEGIN +@class MewMainHomePartyVC; +@protocol MewMainHomePartyVCDelegate + +-(void)mew_RefreshSucceed:(MewMainHomePartyVC *)vc; + +@end + +@interface MewMainHomePartyVC : MvpViewController +- (void)headerRefresh; +@property(nonatomic,weak) iddelegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeView/MewMainHomePartyVC.m b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewMainHomePartyVC.m new file mode 100644 index 00000000..71f568e4 --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewMainHomePartyVC.m @@ -0,0 +1,284 @@ +// +// MewMainHomePartyVC.m +// xplan-ios +// +// Created by duoban on 2023/12/20. +// + +#import "MewMainHomePartyVC.h" +#import "MewMainHomePartyHeadView.h" +#import "MewMainHomePartyCell.h" +#import "XPHomeListEmptyCollectionViewCell.h" +#import "MewHomeManager.h" +#import "MewMainHomeProtocol.h" +#import "XPWebViewController.h" +#import "XPRoomViewController.h" +#import "Api+MewHomeApi.h" +#import "MewMainHomeMenuDataModel.h" +#import "XPHomeRecommendOtherRoomView.h" +#import "Api+Room.h" +#import "XPLittleGameRoomOpenView.h" +@interface MewMainHomePartyVC () +@property(nonatomic,strong) UICollectionView *mewCollectionView; +@property (nonatomic, copy) void(^scrollCallback)(UIScrollView *scrollView); +@property(nonatomic,strong) NSArray *mewDataList; +@property(nonatomic,copy) NSArray *mewMenuList; +@property (nonatomic, copy) NSArray*mewBannerArray; +@property(nonatomic,copy) NSArray *mewGiftRecordList; + +@end + +@implementation MewMainHomePartyVC +@synthesize parentMode = _parentMode; +- (BOOL)isHiddenNavBar { + return YES; +} +- (MewHomeManager *)createPresenter { + return [[MewHomeManager alloc] init]; +} +- (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; + [self.presenter mew_requestMainHomeTopDataList]; + [self.presenter mew_requestMainHomeGiftRecordList]; + [self.presenter mew_requestMainHomePersonalRoomList:[AccountInfoStorage instance].getUid]; +} + + + + +#pragma mark- MewMainHomeProtocol +///获取首页轮播图列表成功 +-(void)mew_getHomeTopDataSuccess:(NSArray *)menuList{ + self.mewMenuList = menuList; + + [self.mewCollectionView reloadData]; +} +///获取首页轮播图列表失败 +-(void)mew_getHomeTopDataFail{ + +} +/// 获取全服礼物记录列表 +-(void)mew_getHomeGiftRecordListSuccess:(NSArray *)list{ + self.mewGiftRecordList = list; + [self.mewCollectionView reloadData]; +} +/// 获取全服礼物记录列表失败 +-(void)mew_getHomeGiftRecordListFail{ + +} +//获取热门房间 +-(void)mew_getHomePersonalRoomListSuccess:(NSArray *)list{ + self.mewDataList = list; + for (MewMainHomeHotRoomModel *obj in list) { + if(obj.isBanner){ + self.mewBannerArray = obj.bannerVoList; + break; + } + } + if(self.delegate && [self.delegate respondsToSelector:@selector(mew_RefreshSucceed:)]){ + [self.delegate mew_RefreshSucceed:self]; + } + [self.mewCollectionView reloadData]; +} +-(void)mew_getHomePersonalRoomListFail{ + if(self.delegate && [self.delegate respondsToSelector:@selector(mew_RefreshSucceed:)]){ + [self.delegate mew_RefreshSucceed:self]; + } +} +#pragma mark - MewMainHomePartyHeadViewDelegate +/// 点击banner +- (void)mewClickBannerAction:(MewMainHomeBannerInfoModel *_Nullable)info{ + switch (info.skipType) { + case MewMainHomeBannerInfoModelSkipType_Room: + { + if (info.skipUri.length > 0) { + [XPRoomViewController openRoom:info.skipUri viewController:self]; + } + } + break; + case MewMainHomeBannerInfoModelSkipType_Web: + { + XPWebViewController *vc = [[XPWebViewController alloc]init]; + vc.url = info.skipUri; + [self.navigationController pushViewController:vc animated:YES]; + } + break; + default: + break; + } +} +///点击热说item +- (void)mew_clickMainHomeHeadScrollView:(MewMainHomeGiftRecordModel *_Nullable)model{ + if (model.roomUid.length > 0) { + [XPRoomViewController openRoom:model.roomUid fromNick:nil fromType:UserEnterRoomFromType_Home_Recommend fromUid:nil viewController:self]; + } +} +///点击顶部菜单 +- (void)mew_clickMainHomeHeadViewMenu:(MewMainHomeMenuInfoModel *_Nullable)info{ + + if(info.isMorn == YES){ + + + return; + } + + if (info.resourceType == MewMainHomeMenuInfoModelType_H5) { + XPWebViewController * webVC = [[ XPWebViewController alloc] init]; + webVC.url = info.resourceContent; + [self.navigationController pushViewController:webVC animated:YES]; + }else { + NSString * uid = [AccountInfoStorage instance].getUid; + if (info.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:info.hid]; + } + } +} +///点击了我的房间 +- (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; +} + +- (UIScrollView *)listScrollView { + return self.mewCollectionView; +} + +- (void)listViewDidScrollCallback:(void (^)(UIScrollView *))callback { + self.scrollCallback = callback; +} + +- (void)scrollViewDidScroll:(UIScrollView *)scrollView { + if(self.scrollCallback){ + self.scrollCallback(scrollView); + } + +} +#pragma mark- UICollectionViewDelegate,UICollectionViewDataSource,UICollectionViewDelegateFlowLayout + +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { + return self.mewDataList.count > 0 ? self.mewDataList.count : 1; +} +- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section{ + + 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)); +} +- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath +{ + if(kind == UICollectionElementKindSectionHeader){ + MewMainHomePartyHeadView *headView = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader + withReuseIdentifier:NSStringFromClass([MewMainHomePartyHeadView class]) forIndexPath:indexPath]; + headView.mewMenuList = self.mewMenuList; + headView.mewBannerArray = self.mewBannerArray; + headView.mewGiftRecordList = self.mewGiftRecordList; + headView.delegate = self; + return headView; + } + + + + return nil; +} +- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { + if(self.mewDataList.count == 0){ + XPHomeListEmptyCollectionViewCell * emptyCell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([XPHomeListEmptyCollectionViewCell class]) forIndexPath:indexPath]; + return emptyCell; + } + MewMainHomePartyCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([MewMainHomePartyCell class]) forIndexPath:indexPath]; + cell.roomModel = [self.mewDataList safeObjectAtIndex1:indexPath.row]; + return cell; +} + +- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { + if(self.mewDataList.count == 0)return; + MewMainHomeHotRoomModel *roomModel = [self.mewDataList safeObjectAtIndex1:indexPath.row]; + [XPRoomViewController openRoom:roomModel.uid viewController:self]; +} +#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:[MewMainHomePartyHeadView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:NSStringFromClass([MewMainHomePartyHeadView class])]; + [_mewCollectionView registerClass:[MewMainHomePartyCell class] forCellWithReuseIdentifier:NSStringFromClass([MewMainHomePartyCell class])]; + [_mewCollectionView registerClass:[XPHomeListEmptyCollectionViewCell class] forCellWithReuseIdentifier:NSStringFromClass([XPHomeListEmptyCollectionViewCell class])]; + + + } + return _mewCollectionView; +} +@end diff --git a/xplan-ios/Main/Home/View/Mew/mew_main_home_heat.gif b/xplan-ios/Main/Home/View/Mew/mew_main_home_heat.gif new file mode 100644 index 00000000..dfb928b2 Binary files /dev/null and b/xplan-ios/Main/Home/View/Mew/mew_main_home_heat.gif differ diff --git a/xplan-ios/Main/Home/View/SubViews/XPHomeRecommendOtherRoomView.h b/xplan-ios/Main/Home/View/SubViews/XPHomeRecommendOtherRoomView.h index c3b4bd25..3aede0b7 100644 --- a/xplan-ios/Main/Home/View/SubViews/XPHomeRecommendOtherRoomView.h +++ b/xplan-ios/Main/Home/View/SubViews/XPHomeRecommendOtherRoomView.h @@ -6,17 +6,18 @@ // #import +#import "MewMainHomeMenuDataModel.h" NS_ASSUME_NONNULL_BEGIN -@class XPHomeRecommendOtherRoomView, HomeMenuSourceModel; +@class XPHomeRecommendOtherRoomView; @protocol XPHomeRecommendOtherRoomViewDelegate ///点击了进入房间 -- (void)xPHomeRecommendOtherRoomView:(XPHomeRecommendOtherRoomView *)view didClickEnterRoom:(HomeMenuSourceModel *)model; +- (void)xPHomeRecommendOtherRoomView:(XPHomeRecommendOtherRoomView *)view didClickEnterRoom:(MewMainHomeMenuDataModel *)model; @end @interface XPHomeRecommendOtherRoomView : UIView ///房间信息 -@property (nonatomic,strong) HomeMenuSourceModel *roomInfo; +@property (nonatomic,strong) MewMainHomeMenuDataModel *roomInfo; ///代理 @property (nonatomic,weak) id delegate; @end diff --git a/xplan-ios/Main/Home/View/SubViews/XPHomeRecommendOtherRoomView.m b/xplan-ios/Main/Home/View/SubViews/XPHomeRecommendOtherRoomView.m index 16cbed0c..c8c7d135 100644 --- a/xplan-ios/Main/Home/View/SubViews/XPHomeRecommendOtherRoomView.m +++ b/xplan-ios/Main/Home/View/SubViews/XPHomeRecommendOtherRoomView.m @@ -109,7 +109,7 @@ } #pragma mark - Getters And Setters -- (void)setRoomInfo:(HomeMenuSourceModel *)roomInfo { +- (void)setRoomInfo:(MewMainHomeMenuDataModel *)roomInfo { _roomInfo = roomInfo; if (_roomInfo) { self.roomTitleLabel.text = _roomInfo.title; diff --git a/xplan-ios/Main/Mine/View/XPMineViewController.m b/xplan-ios/Main/Mine/View/XPMineViewController.m index 96b421a2..45fda056 100644 --- a/xplan-ios/Main/Mine/View/XPMineViewController.m +++ b/xplan-ios/Main/Mine/View/XPMineViewController.m @@ -202,7 +202,6 @@ case XPMineItemType_My_Room: { NSString* roomUid = [NSString stringWithFormat:@"%ld", (long)self.userInfo.uid]; - [XPRoomViewController openRoom:roomUid viewController:self]; [Api getRoomInfo:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) { if (code == 200) { RoomInfoModel * roomInfo = [RoomInfoModel modelWithJSON:data.data]; diff --git a/xplan-ios/Main/Room/View/BaseUIContainerView/XPRoomFunctionContainerView.m b/xplan-ios/Main/Room/View/BaseUIContainerView/XPRoomFunctionContainerView.m index 29bfa3c5..73557de5 100644 --- a/xplan-ios/Main/Room/View/BaseUIContainerView/XPRoomFunctionContainerView.m +++ b/xplan-ios/Main/Room/View/BaseUIContainerView/XPRoomFunctionContainerView.m @@ -269,7 +269,7 @@ [self.topRankView mas_makeConstraints:^(MASConstraintMaker *make) { make.right.mas_equalTo(-46); make.top.mas_equalTo(kStatusBarHeight+3); - make.width.mas_equalTo(29*3); + make.width.mas_equalTo(29); make.height.mas_equalTo(37); }]; diff --git a/xplan-ios/Main/Room/View/BaseUIContainerView/XPRoomTopRankView.m b/xplan-ios/Main/Room/View/BaseUIContainerView/XPRoomTopRankView.m index 05621262..c4dd9c51 100644 --- a/xplan-ios/Main/Room/View/BaseUIContainerView/XPRoomTopRankView.m +++ b/xplan-ios/Main/Room/View/BaseUIContainerView/XPRoomTopRankView.m @@ -22,16 +22,16 @@ /// 头像挂件 @property (nonatomic, strong) UIImageView *headwear1; -@property (nonatomic, strong) UIImageView *headwear2; -@property (nonatomic, strong) UIImageView *headwear3; +//@property (nonatomic, strong) UIImageView *headwear2; +//@property (nonatomic, strong) UIImageView *headwear3; /// 头像 @property (nonatomic, strong) NetImageView *avatar1; -@property (nonatomic, strong) NetImageView *avatar2; -@property (nonatomic, strong) NetImageView *avatar3; +//@property (nonatomic, strong) NetImageView *avatar2; +//@property (nonatomic, strong) NetImageView *avatar3; /// 贡献值 @property (nonatomic, strong) UILabel *value1; -@property (nonatomic, strong) UILabel *value2; -@property (nonatomic, strong) UILabel *value3; +//@property (nonatomic, strong) UILabel *value2; +//@property (nonatomic, strong) UILabel *value3; @end @@ -50,17 +50,17 @@ [self addSubview:self.bgView]; [self.bgView addSubview:self.headwear1]; - [self.bgView addSubview:self.headwear2]; - [self.bgView addSubview:self.headwear3]; +// [self.bgView addSubview:self.headwear2]; +// [self.bgView addSubview:self.headwear3]; [self.headwear1 addSubview:self.avatar1]; [self.headwear1 addSubview:self.value1]; - [self.headwear2 addSubview:self.avatar2]; - [self.headwear2 addSubview:self.value2]; - - [self.headwear3 addSubview:self.avatar3]; - [self.headwear3 addSubview:self.value3]; +// [self.headwear2 addSubview:self.avatar2]; +// [self.headwear2 addSubview:self.value2]; +// +// [self.headwear3 addSubview:self.avatar3]; +// [self.headwear3 addSubview:self.value3]; } @@ -85,37 +85,37 @@ make.size.mas_equalTo(CGSizeMake(22, 8)); }]; - [self.headwear2 mas_makeConstraints:^(MASConstraintMaker *make) { - make.top.mas_equalTo(self.headwear1); - make.left.mas_equalTo(self.headwear1.mas_right); - make.size.mas_equalTo(self.headwear1); - }]; - [self.avatar2 mas_makeConstraints:^(MASConstraintMaker *make) { - make.size.mas_equalTo(self.avatar1); - make.centerX.mas_equalTo(2.5); - make.centerY.mas_equalTo(4.5); - }]; - [self.value2 mas_makeConstraints:^(MASConstraintMaker *make) { - make.centerY.mas_equalTo(self.headwear2.mas_bottom); - make.centerX.mas_equalTo(3); - make.size.mas_equalTo(self.value1); - }]; - - [self.headwear3 mas_makeConstraints:^(MASConstraintMaker *make) { - make.top.mas_equalTo(self.headwear1); - make.left.mas_equalTo(self.headwear2.mas_right); - make.size.mas_equalTo(self.headwear1); - }]; - [self.avatar3 mas_makeConstraints:^(MASConstraintMaker *make) { - make.size.mas_equalTo(self.avatar1); - make.centerX.mas_equalTo(2.5); - make.centerY.mas_equalTo(4.5); - }]; - [self.value3 mas_makeConstraints:^(MASConstraintMaker *make) { - make.centerY.mas_equalTo(self.headwear2.mas_bottom); - make.centerX.mas_equalTo(3); - make.size.mas_equalTo(self.value1); - }]; +// [self.headwear2 mas_makeConstraints:^(MASConstraintMaker *make) { +// make.top.mas_equalTo(self.headwear1); +// make.left.mas_equalTo(self.headwear1.mas_right); +// make.size.mas_equalTo(self.headwear1); +// }]; +// [self.avatar2 mas_makeConstraints:^(MASConstraintMaker *make) { +// make.size.mas_equalTo(self.avatar1); +// make.centerX.mas_equalTo(2.5); +// make.centerY.mas_equalTo(4.5); +// }]; +// [self.value2 mas_makeConstraints:^(MASConstraintMaker *make) { +// make.centerY.mas_equalTo(self.headwear2.mas_bottom); +// make.centerX.mas_equalTo(3); +// make.size.mas_equalTo(self.value1); +// }]; +// +// [self.headwear3 mas_makeConstraints:^(MASConstraintMaker *make) { +// make.top.mas_equalTo(self.headwear1); +// make.left.mas_equalTo(self.headwear2.mas_right); +// make.size.mas_equalTo(self.headwear1); +// }]; +// [self.avatar3 mas_makeConstraints:^(MASConstraintMaker *make) { +// make.size.mas_equalTo(self.avatar1); +// make.centerX.mas_equalTo(2.5); +// make.centerY.mas_equalTo(4.5); +// }]; +// [self.value3 mas_makeConstraints:^(MASConstraintMaker *make) { +// make.centerY.mas_equalTo(self.headwear2.mas_bottom); +// make.centerX.mas_equalTo(3); +// make.size.mas_equalTo(self.value1); +// }]; } @@ -141,23 +141,23 @@ self.value1.text = @"0"; } - XPRoomRankListModel *model2 = [rankList safeObjectAtIndex1:1]; - if (model2) { - self.avatar2.imageUrl = model2.avatar; - self.value2.text = [self getAmountText:model2.goldAmount]; - }else{ - self.avatar2.imageUrl = @""; - self.value2.text = @"0"; - } - - XPRoomRankListModel *model3 = [rankList safeObjectAtIndex1:2]; - if (model3) { - self.avatar3.imageUrl = model3.avatar; - self.value3.text = [self getAmountText:model3.goldAmount]; - }else{ - self.avatar3.imageUrl = @""; - self.value3.text = @"0"; - } +// XPRoomRankListModel *model2 = [rankList safeObjectAtIndex1:1]; +// if (model2) { +// self.avatar2.imageUrl = model2.avatar; +// self.value2.text = [self getAmountText:model2.goldAmount]; +// }else{ +// self.avatar2.imageUrl = @""; +// self.value2.text = @"0"; +// } +// +// XPRoomRankListModel *model3 = [rankList safeObjectAtIndex1:2]; +// if (model3) { +// self.avatar3.imageUrl = model3.avatar; +// self.value3.text = [self getAmountText:model3.goldAmount]; +// }else{ +// self.avatar3.imageUrl = @""; +// self.value3.text = @"0"; +// } } - (UIView *)bgView { @@ -175,21 +175,21 @@ return _headwear1; } -- (UIImageView *)headwear2 { - if (!_headwear2) { - _headwear2 = [[UIImageView alloc] init]; - _headwear2.image = [UIImage imageNamed:@"room_rank_headwear_second"]; - } - return _headwear2; -} - -- (UIImageView *)headwear3 { - if (!_headwear3) { - _headwear3 = [[UIImageView alloc] init]; - _headwear3.image = [UIImage imageNamed:@"room_rank_headwear_third"]; - } - return _headwear3; -} +//- (UIImageView *)headwear2 { +// if (!_headwear2) { +// _headwear2 = [[UIImageView alloc] init]; +// _headwear2.image = [UIImage imageNamed:@"room_rank_headwear_second"]; +// } +// return _headwear2; +//} +// +//- (UIImageView *)headwear3 { +// if (!_headwear3) { +// _headwear3 = [[UIImageView alloc] init]; +// _headwear3.image = [UIImage imageNamed:@"room_rank_headwear_third"]; +// } +// return _headwear3; +//} - (NetImageView *)avatar1 { if (!_avatar1) { @@ -202,27 +202,27 @@ return _avatar1; } -- (NetImageView *)avatar2 { - if (!_avatar2) { - NetImageConfig *config = [[NetImageConfig alloc] init]; - config.placeHolder = [UIImageConstant defaultEmptyAvatarPlaceholder]; - _avatar2 = [[NetImageView alloc] initWithConfig:config]; - _avatar2.layer.cornerRadius = 11; - _avatar2.layer.masksToBounds = YES; - } - return _avatar2; -} +//- (NetImageView *)avatar2 { +// if (!_avatar2) { +// NetImageConfig *config = [[NetImageConfig alloc] init]; +// config.placeHolder = [UIImageConstant defaultEmptyAvatarPlaceholder]; +// _avatar2 = [[NetImageView alloc] initWithConfig:config]; +// _avatar2.layer.cornerRadius = 11; +// _avatar2.layer.masksToBounds = YES; +// } +// return _avatar2; +//} -- (NetImageView *)avatar3 { - if (!_avatar3) { - NetImageConfig *config = [[NetImageConfig alloc] init]; - config.placeHolder = [UIImageConstant defaultEmptyAvatarPlaceholder]; - _avatar3 = [[NetImageView alloc] initWithConfig:config]; - _avatar3.layer.cornerRadius = 11; - _avatar3.layer.masksToBounds = YES; - } - return _avatar3; -} +//- (NetImageView *)avatar3 { +// if (!_avatar3) { +// NetImageConfig *config = [[NetImageConfig alloc] init]; +// config.placeHolder = [UIImageConstant defaultEmptyAvatarPlaceholder]; +// _avatar3 = [[NetImageView alloc] initWithConfig:config]; +// _avatar3.layer.cornerRadius = 11; +// _avatar3.layer.masksToBounds = YES; +// } +// return _avatar3; +//} - (UILabel *)value1 { if (!_value1) { @@ -238,33 +238,33 @@ return _value1; } -- (UILabel *)value2 { - if (!_value2) { - _value2 = [[UILabel alloc] init]; - _value2.textColor = [ThemeColor colorWithHexString:@"#2E527A"]; - _value2.textAlignment = NSTextAlignmentCenter; - _value2.text = @"0"; - _value2.font = [UIFont systemFontOfSize:7 weight:UIFontWeightMedium]; - _value2.backgroundColor = [ThemeColor colorWithHexString:@"#91C8FA"]; - _value2.layer.cornerRadius = 4; - _value2.clipsToBounds = YES; - } - return _value2; -} - -- (UILabel *)value3 { - if (!_value3) { - _value3 = [[UILabel alloc] init]; - _value3.textColor = [ThemeColor colorWithHexString:@"#824B2C"]; - _value3.textAlignment = NSTextAlignmentCenter; - _value3.text = @"0"; - _value3.font = [UIFont systemFontOfSize:7 weight:UIFontWeightMedium]; - _value3.backgroundColor = [ThemeColor colorWithHexString:@"#F0A47B"]; - _value3.layer.cornerRadius = 4; - _value3.clipsToBounds = YES; - } - return _value3; -} +//- (UILabel *)value2 { +// if (!_value2) { +// _value2 = [[UILabel alloc] init]; +// _value2.textColor = [ThemeColor colorWithHexString:@"#2E527A"]; +// _value2.textAlignment = NSTextAlignmentCenter; +// _value2.text = @"0"; +// _value2.font = [UIFont systemFontOfSize:7 weight:UIFontWeightMedium]; +// _value2.backgroundColor = [ThemeColor colorWithHexString:@"#91C8FA"]; +// _value2.layer.cornerRadius = 4; +// _value2.clipsToBounds = YES; +// } +// return _value2; +//} +// +//- (UILabel *)value3 { +// if (!_value3) { +// _value3 = [[UILabel alloc] init]; +// _value3.textColor = [ThemeColor colorWithHexString:@"#824B2C"]; +// _value3.textAlignment = NSTextAlignmentCenter; +// _value3.text = @"0"; +// _value3.font = [UIFont systemFontOfSize:7 weight:UIFontWeightMedium]; +// _value3.backgroundColor = [ThemeColor colorWithHexString:@"#F0A47B"]; +// _value3.layer.cornerRadius = 4; +// _value3.clipsToBounds = YES; +// } +// return _value3; +//} @end diff --git a/xplan-ios/Main/Room/View/LittleGame/View/XPLittleGameRoomListView.m b/xplan-ios/Main/Room/View/LittleGame/View/XPLittleGameRoomListView.m index 42fdb689..8f7389bf 100644 --- a/xplan-ios/Main/Room/View/LittleGame/View/XPLittleGameRoomListView.m +++ b/xplan-ios/Main/Room/View/LittleGame/View/XPLittleGameRoomListView.m @@ -57,7 +57,7 @@ - (void)initSubViewConstraints { [self mas_makeConstraints:^(MASConstraintMaker *make) { - make.width.mas_equalTo(80); + make.width.mas_equalTo(100); make.bottom.mas_equalTo(self.stackView.mas_bottom); }]; diff --git a/xplan-ios/Main/Room/View/LittleGame/View/XPRoomLittleGameContainerView.m b/xplan-ios/Main/Room/View/LittleGame/View/XPRoomLittleGameContainerView.m index 0f3b4ef3..cc956e81 100644 --- a/xplan-ios/Main/Room/View/LittleGame/View/XPRoomLittleGameContainerView.m +++ b/xplan-ios/Main/Room/View/LittleGame/View/XPRoomLittleGameContainerView.m @@ -591,6 +591,7 @@ /// 命中 关键词状态 (你画我猜) - (void)notifyChangeTextHitState:(NSString *)keyWord { + if(self.DrawSomethingKeyWord == nil)return; if (keyWord.length && [keyWord containsString:self.DrawSomethingKeyWord]) { NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:@(true), @"isHit", self.DrawSomethingKeyWord, @"keyWord", self.DrawSomethingKeyWord, @"text", nil]; [self notifyStateChange:APP_COMMON_SELF_TEXT_HIT dataJson:[SudCommon dictionaryToJson:dic]]; diff --git a/xplan-ios/Main/Room/View/StageView/MicroView/Dating/DatingMicroView.m b/xplan-ios/Main/Room/View/StageView/MicroView/Dating/DatingMicroView.m index 299229f0..0309c0cf 100644 --- a/xplan-ios/Main/Room/View/StageView/MicroView/Dating/DatingMicroView.m +++ b/xplan-ios/Main/Room/View/StageView/MicroView/Dating/DatingMicroView.m @@ -146,6 +146,10 @@ self.pickButton.hidden = YES; if (position == -1) {return;} + if (userInfo) { + self.pickButton.hidden = NO; + [self configPickTitle:@"未选择" backmImageName:@"room_mode_dating_not_select"]; + } ///相亲进行的阶段 if (roomInfo.blindDateState == RoomPlayDateingType_Pick) { ///如果我是主持的话 主持人视角 可以看到麦上用户的选择情况,精准到选择对象 diff --git a/xplan-ios/Main/Room/View/StageView/StageView.m b/xplan-ios/Main/Room/View/StageView/StageView.m index 9ca57f8e..1f289eed 100644 --- a/xplan-ios/Main/Room/View/StageView/StageView.m +++ b/xplan-ios/Main/Room/View/StageView/StageView.m @@ -160,6 +160,7 @@ [[NIMSDK sharedSDK].chatroomManager fetchChatroomQueue:[NSString stringWithFormat:@"%ld", (long)roomInfo.roomId] completion:^(NSError * _Nullable error, NSArray *> * _Nullable info) { if (error) return; BOOL ownerRTCChange = NO; + MicroQueueModel *meQuence = nil; for (NSDictionary *item in info) { UserInfoModel *userInfo = [UserInfoModel modelWithJSON:item.allValues.firstObject]; NSString *position = item.allKeys.firstObject; @@ -167,17 +168,32 @@ sequence.userInfo = userInfo; if (userInfo.uid == [AccountInfoStorage instance].getUid.integerValue) { ownerRTCChange = YES; + meQuence = sequence; } } [self microQueueUpdated:ownerRTCChange]; [self.hostDelegate onMicroQueueUpdate:self.micQueue]; self.hadGetQueueInfoSuccess = YES; + if(meQuence != nil){ + [self enterRoomUpMicWith:meQuence]; + } }]; // 拿到麦序后初始化礼物值 [self initGiftValue]; } - +///进入房间,如果自己在麦上,需要调下上麦,不然,网络不好,会导致人不在麦上,但有声音 +-(void)enterRoomUpMicWith:(MicroQueueModel *)sequence{ + RoomInfoModel * roomInfo =self.hostDelegate.getRoomInfo; + NSString * roomId = [NSString stringWithFormat:@"%ld", roomInfo.roomId]; + NIMChatroomQueueUpdateRequest *request = [[NIMChatroomQueueUpdateRequest alloc]init]; + request.key = @(sequence.microState.position).stringValue; + request.value = [sequence.userInfo toJSONString]; + request.roomId = roomId; + request.transient = YES; + [[NIMSDK sharedSDK].chatroomManager updateChatroomQueueObject:request completion:^(NSError * _Nullable error) { + }]; +} - (void)initGiftValue{ RoomInfoModel* roomInfo = self.hostDelegate.getRoomInfo; // 获取礼物值 @@ -608,6 +624,30 @@ [self initGiftValue]; } + } + break; + case NIMChatroomEventTypeEnter: + { + ///进入房间,如果自己在麦上,需要调下上麦,不然,网络不好,会导致人不在麦上,但有声音 + RoomInfoModel * roomInfo =self.hostDelegate.getRoomInfo; + NSString * roomId = [NSString stringWithFormat:@"%ld", roomInfo.roomId]; + for (MicroQueueModel *sequence in self.micQueue.allValues) { + if ([AccountInfoStorage instance].getUid.integerValue == sequence.userInfo.uid) { + NIMChatroomQueueUpdateRequest *request = [[NIMChatroomQueueUpdateRequest alloc]init]; + NSMutableDictionary *userInfo = [[NSMutableDictionary alloc]initWithDictionary:[sequence.userInfo toJSONObject]]; + [userInfo setValue:@(YES) forKey:@"isNoProhibitMic"]; + request.key = @(sequence.microState.position).stringValue; + request.value = [userInfo toJSONString]; + request.roomId = roomId; + request.transient = YES; + [[NIMSDK sharedSDK].chatroomManager updateChatroomQueueObject:request completion:^(NSError * _Nullable error) { + }]; + + break; + } + } + + } break; case NIMChatroomEventTypeExit: diff --git a/xplan-ios/Main/Tabbar/ClientConfig.h b/xplan-ios/Main/Tabbar/ClientConfig.h index cff87ddd..d6e92965 100644 --- a/xplan-ios/Main/Tabbar/ClientConfig.h +++ b/xplan-ios/Main/Tabbar/ClientConfig.h @@ -26,7 +26,7 @@ NS_ASSUME_NONNULL_BEGIN @property (nonatomic, copy) NSString *version; @property (nonatomic, copy) NSString *zipMd5; @property (nonatomic, strong) NSURL *zipUrl; - +@property(nonatomic,copy) NSString *defaultTab; ///添加心跳定时器 - (void)addHeartBratTimer; diff --git a/xplan-ios/Main/Tabbar/ClientConfig.m b/xplan-ios/Main/Tabbar/ClientConfig.m index f905e2ad..fa33c2cc 100644 --- a/xplan-ios/Main/Tabbar/ClientConfig.m +++ b/xplan-ios/Main/Tabbar/ClientConfig.m @@ -61,6 +61,7 @@ ///开始下载 [[XPRoomFaceTool shareFaceTool] downFaceData]; } + [ClientConfig shareConfig].defaultTab = [NSString stringWithFormat:@"%@",initData[@"defaultTab"]]; NSString *trtcAppId = [NSString stringWithFormat:@"%@",initData[@"trtcAppId"]]; NSString *curTtcKey = [[NSUserDefaults standardUserDefaults]valueForKey:@"kTrtcAppId"]; if(curTtcKey == nil){ diff --git a/xplan-ios/Main/Tabbar/View/TabbarViewController.m b/xplan-ios/Main/Tabbar/View/TabbarViewController.m index 46f5e37f..4df20dbc 100644 --- a/xplan-ios/Main/Tabbar/View/TabbarViewController.m +++ b/xplan-ios/Main/Tabbar/View/TabbarViewController.m @@ -76,7 +76,7 @@ #import "XPReceiveRedPacketView.h" #import "XPRoomYearActivityView.h" #import "XPUpgradeView.h" -#import "XPNewHomeViewController.h" +#import "MewMainHomeViewController.h" #import "XPNewMomentsViewController.h" #import "XPPartyViewController.h" #import "XPMessageViewController.h" @@ -629,7 +629,7 @@ UIKIT_EXTERN NSString *kTabShowAnchorCardKey; msg = [[XPMessageViewController alloc] init]; me = [[XPMineViewController alloc] init]; party = [[XPPartyViewController alloc]init]; - home = [[XPNewHomeViewController alloc] init]; + home = [[MewMainHomeViewController alloc] init]; // monents = [[XPMonentsViewController alloc] init]; monents = [[XPNewMomentsViewController alloc] init]; } else {