diff --git a/YuMi.xcodeproj/project.pbxproj b/YuMi.xcodeproj/project.pbxproj index 39575bf6..1bc4ac2b 100644 --- a/YuMi.xcodeproj/project.pbxproj +++ b/YuMi.xcodeproj/project.pbxproj @@ -525,6 +525,8 @@ 545888362C1C306B00897585 /* XPRoomPKPaneAvatarView.m in Sources */ = {isa = PBXBuildFile; fileRef = 545888352C1C306B00897585 /* XPRoomPKPaneAvatarView.m */; }; 54C3895C2C215F5100FD47B1 /* XPHomeMineViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 54C3895B2C215F5100FD47B1 /* XPHomeMineViewController.m */; }; 54C3895F2C2189DD00FD47B1 /* XPHomeMinePresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 54C3895E2C2189DD00FD47B1 /* XPHomeMinePresenter.m */; }; + 54C389622C23BD1600FD47B1 /* HomeRankAvatarModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 54C389612C23BD1600FD47B1 /* HomeRankAvatarModel.m */; }; + 54C389672C24464600FD47B1 /* HomeMineRoomModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 54C389662C24464600FD47B1 /* HomeMineRoomModel.m */; }; 73FFADDC93E195344047A2EC /* Pods_YuMi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CACF623970097D653132D69A /* Pods_YuMi.framework */; }; 9B0086C627BA392B0032BD2B /* AnchorStageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B0086C527BA392B0032BD2B /* AnchorStageView.m */; }; 9B0086CA27BA4F570032BD2B /* AnchorMicroView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B0086C927BA4F570032BD2B /* AnchorMicroView.m */; }; @@ -2572,6 +2574,11 @@ 54C3895B2C215F5100FD47B1 /* XPHomeMineViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPHomeMineViewController.m; sourceTree = ""; }; 54C3895D2C2189DD00FD47B1 /* XPHomeMinePresenter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPHomeMinePresenter.h; sourceTree = ""; }; 54C3895E2C2189DD00FD47B1 /* XPHomeMinePresenter.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPHomeMinePresenter.m; sourceTree = ""; }; + 54C389602C23BD1600FD47B1 /* HomeRankAvatarModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HomeRankAvatarModel.h; sourceTree = ""; }; + 54C389612C23BD1600FD47B1 /* HomeRankAvatarModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HomeRankAvatarModel.m; sourceTree = ""; }; + 54C389642C24448900FD47B1 /* XPHomeMineProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPHomeMineProtocol.h; sourceTree = ""; }; + 54C389652C24464600FD47B1 /* HomeMineRoomModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HomeMineRoomModel.h; sourceTree = ""; }; + 54C389662C24464600FD47B1 /* HomeMineRoomModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HomeMineRoomModel.m; sourceTree = ""; }; 7DB00EC07F1D0ADFF900B38D /* Pods-YuMi.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-YuMi.debug.xcconfig"; path = "Target Support Files/Pods-YuMi/Pods-YuMi.debug.xcconfig"; sourceTree = ""; }; 9B0086C427BA392B0032BD2B /* AnchorStageView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AnchorStageView.h; sourceTree = ""; }; 9B0086C527BA392B0032BD2B /* AnchorStageView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AnchorStageView.m; sourceTree = ""; }; @@ -9417,6 +9424,7 @@ E87DF4E82A42CB24009C1185 /* XPHomeProtocol.h */, E87E62692A3F5756002F68C9 /* XPHomeContainerProtocol.h */, E87E627C2A3F5A63002F68C9 /* XPNewHomeRecommendProtocol.h */, + 54C389642C24448900FD47B1 /* XPHomeMineProtocol.h */, ); path = Protocol; sourceTree = ""; @@ -9490,10 +9498,14 @@ E87DF4CB2A42C960009C1185 /* HomeBannerInfoModel.m */, E87DF4BD2A42C8C1009C1185 /* HomeTagModel.h */, E87DF4BE2A42C8C1009C1185 /* HomeTagModel.m */, + 54C389602C23BD1600FD47B1 /* HomeRankAvatarModel.h */, + 54C389612C23BD1600FD47B1 /* HomeRankAvatarModel.m */, 23FF42712AA6CC480055733C /* PIHomeItemModel.h */, 23FF42722AA6CC480055733C /* PIHomeItemModel.m */, 23B8D8D92B85FDDD00CA472F /* PIHomeCategoryTitleModel.h */, 23B8D8DA2B85FDDD00CA472F /* PIHomeCategoryTitleModel.m */, + 54C389652C24464600FD47B1 /* HomeMineRoomModel.h */, + 54C389662C24464600FD47B1 /* HomeMineRoomModel.m */, ); path = Model; sourceTree = ""; @@ -12492,6 +12504,7 @@ E8395334276A03C300CF2F24 /* XPMineDressUpPresenter.m in Sources */, 2357148F2BEDC94D004C81D6 /* MSSessionPublicChatHalImageCell.m in Sources */, E85E7B212A4EB0D300B6D00A /* XPNewMineGuildIncomeRecordViewController.m in Sources */, + 54C389622C23BD1600FD47B1 /* HomeRankAvatarModel.m in Sources */, 23A439742AA1CF7C002E6039 /* XPNewHomeHeadView.m in Sources */, 189DD75926E6003C00AB55B1 /* Api.m in Sources */, 2331C1652A5EB71000E1D940 /* NobleRechargeModel.m in Sources */, @@ -12578,6 +12591,7 @@ E896EFB22771C93B00AD2CC1 /* XPMineFriendNumberView.m in Sources */, 14EB640D29A5C16000A4A00B /* XPMomentsSimpleDetailNav.m in Sources */, E80EC80E28ACD84000D133C5 /* QKeyboardBaseManager.m in Sources */, + 54C389672C24464600FD47B1 /* HomeMineRoomModel.m in Sources */, 23E9EA792A8385CC00B792F2 /* XPTreasureFairyGiftView.m in Sources */, 149839C7299E0B9F00F82CBF /* XPMomentListCollectionViewCell.m in Sources */, 236BA4982BB6AFED00C7C73A /* PINoblePrivilegeEmptyCell.m in Sources */, diff --git a/YuMi/Assets.xcassets/low/navigation/home_nav_search.imageset/home_nav_search@2x.png b/YuMi/Assets.xcassets/low/navigation/home_nav_search.imageset/home_nav_search@2x.png index 063db99e..b88593da 100644 Binary files a/YuMi/Assets.xcassets/low/navigation/home_nav_search.imageset/home_nav_search@2x.png and b/YuMi/Assets.xcassets/low/navigation/home_nav_search.imageset/home_nav_search@2x.png differ diff --git a/YuMi/Assets.xcassets/low/navigation/home_nav_search.imageset/home_nav_search@3x.png b/YuMi/Assets.xcassets/low/navigation/home_nav_search.imageset/home_nav_search@3x.png index 7e9edd78..837be131 100644 Binary files a/YuMi/Assets.xcassets/low/navigation/home_nav_search.imageset/home_nav_search@3x.png and b/YuMi/Assets.xcassets/low/navigation/home_nav_search.imageset/home_nav_search@3x.png differ diff --git a/YuMi/Assets.xcassets/main/home_rank_Headdress_first.imageset/Contents.json b/YuMi/Assets.xcassets/main/home_rank_Headdress_first.imageset/Contents.json new file mode 100644 index 00000000..375f8a91 --- /dev/null +++ b/YuMi/Assets.xcassets/main/home_rank_Headdress_first.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "home_rank_Headdress_first@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "home_rank_Headdress_first@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/YuMi/Assets.xcassets/main/home_rank_Headdress_first.imageset/home_rank_Headdress_first@2x.png b/YuMi/Assets.xcassets/main/home_rank_Headdress_first.imageset/home_rank_Headdress_first@2x.png new file mode 100644 index 00000000..e3a34a69 Binary files /dev/null and b/YuMi/Assets.xcassets/main/home_rank_Headdress_first.imageset/home_rank_Headdress_first@2x.png differ diff --git a/YuMi/Assets.xcassets/main/home_rank_Headdress_first.imageset/home_rank_Headdress_first@3x.png b/YuMi/Assets.xcassets/main/home_rank_Headdress_first.imageset/home_rank_Headdress_first@3x.png new file mode 100644 index 00000000..f20adeb6 Binary files /dev/null and b/YuMi/Assets.xcassets/main/home_rank_Headdress_first.imageset/home_rank_Headdress_first@3x.png differ diff --git a/YuMi/Assets.xcassets/main/home_rank_Headdress_second.imageset/Contents.json b/YuMi/Assets.xcassets/main/home_rank_Headdress_second.imageset/Contents.json new file mode 100644 index 00000000..b4670a7b --- /dev/null +++ b/YuMi/Assets.xcassets/main/home_rank_Headdress_second.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "home_rank_Headdress_second@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "home_rank_Headdress_second@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/YuMi/Assets.xcassets/main/home_rank_Headdress_second.imageset/home_rank_Headdress_second@2x.png b/YuMi/Assets.xcassets/main/home_rank_Headdress_second.imageset/home_rank_Headdress_second@2x.png new file mode 100644 index 00000000..eaab51cc Binary files /dev/null and b/YuMi/Assets.xcassets/main/home_rank_Headdress_second.imageset/home_rank_Headdress_second@2x.png differ diff --git a/YuMi/Assets.xcassets/main/home_rank_Headdress_second.imageset/home_rank_Headdress_second@3x.png b/YuMi/Assets.xcassets/main/home_rank_Headdress_second.imageset/home_rank_Headdress_second@3x.png new file mode 100644 index 00000000..2963adba Binary files /dev/null and b/YuMi/Assets.xcassets/main/home_rank_Headdress_second.imageset/home_rank_Headdress_second@3x.png differ diff --git a/YuMi/Assets.xcassets/main/home_rank_Headdress_third.imageset/Contents.json b/YuMi/Assets.xcassets/main/home_rank_Headdress_third.imageset/Contents.json new file mode 100644 index 00000000..e9121f9b --- /dev/null +++ b/YuMi/Assets.xcassets/main/home_rank_Headdress_third.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "home_rank_Headdress_third@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "home_rank_Headdress_third@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/YuMi/Assets.xcassets/main/home_rank_Headdress_third.imageset/home_rank_Headdress_third@2x.png b/YuMi/Assets.xcassets/main/home_rank_Headdress_third.imageset/home_rank_Headdress_third@2x.png new file mode 100644 index 00000000..10ac3dc3 Binary files /dev/null and b/YuMi/Assets.xcassets/main/home_rank_Headdress_third.imageset/home_rank_Headdress_third@2x.png differ diff --git a/YuMi/Assets.xcassets/main/home_rank_Headdress_third.imageset/home_rank_Headdress_third@3x.png b/YuMi/Assets.xcassets/main/home_rank_Headdress_third.imageset/home_rank_Headdress_third@3x.png new file mode 100644 index 00000000..a941444a Binary files /dev/null and b/YuMi/Assets.xcassets/main/home_rank_Headdress_third.imageset/home_rank_Headdress_third@3x.png differ diff --git a/YuMi/Assets.xcassets/main/home_rank_Heads_bg.imageset/Contents.json b/YuMi/Assets.xcassets/main/home_rank_Heads_bg.imageset/Contents.json new file mode 100644 index 00000000..ad9fb913 --- /dev/null +++ b/YuMi/Assets.xcassets/main/home_rank_Heads_bg.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "home_rank_Heads_bg@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "home_rank_Heads_bg@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/YuMi/Assets.xcassets/main/home_rank_Heads_bg.imageset/home_rank_Heads_bg@2x.png b/YuMi/Assets.xcassets/main/home_rank_Heads_bg.imageset/home_rank_Heads_bg@2x.png new file mode 100644 index 00000000..35054403 Binary files /dev/null and b/YuMi/Assets.xcassets/main/home_rank_Heads_bg.imageset/home_rank_Heads_bg@2x.png differ diff --git a/YuMi/Assets.xcassets/main/home_rank_Heads_bg.imageset/home_rank_Heads_bg@3x.png b/YuMi/Assets.xcassets/main/home_rank_Heads_bg.imageset/home_rank_Heads_bg@3x.png new file mode 100644 index 00000000..4a25e2f6 Binary files /dev/null and b/YuMi/Assets.xcassets/main/home_rank_Heads_bg.imageset/home_rank_Heads_bg@3x.png differ diff --git a/YuMi/CustomUI/UIImageView/UIImageConstant.h b/YuMi/CustomUI/UIImageView/UIImageConstant.h index e4020384..a86d84f3 100644 --- a/YuMi/CustomUI/UIImageView/UIImageConstant.h +++ b/YuMi/CustomUI/UIImageView/UIImageConstant.h @@ -41,7 +41,7 @@ typedef NS_ENUM(NSUInteger, ImageType){ /// 空白图的占位图 + (UIImage *)defalutEmptyPlaceholder; /// banner的占位图 -+ (UIImage *)defalutBannerPlaceholder; ++ (UIImage *)defaultBannerPlaceholder; + (NSString*)configUrl:(NSString*)url type:(ImageType)type; + (NSString*)configUrl:(NSString*)url radius:(CGFloat)radius; diff --git a/YuMi/CustomUI/UIImageView/UIImageConstant.m b/YuMi/CustomUI/UIImageView/UIImageConstant.m index 623b61bc..43a08f3e 100644 --- a/YuMi/CustomUI/UIImageView/UIImageConstant.m +++ b/YuMi/CustomUI/UIImageView/UIImageConstant.m @@ -40,7 +40,7 @@ NSString * const kImageTypeMonentsPhoto = @"imageMogr2/auto-orient/thumbnail/400 return [UIImage imageNamed:@"common_empty"]; } /// banner的占位图 -+ (UIImage *)defalutBannerPlaceholder { ++ (UIImage *)defaultBannerPlaceholder { return [UIImage imageNamed:@"common_banner"]; } diff --git a/YuMi/Modules/YMMessage/View/Session/Cell/MSSessionPublicChatHalIRightmageCell.m b/YuMi/Modules/YMMessage/View/Session/Cell/MSSessionPublicChatHalIRightmageCell.m index eaa73d81..b2805acb 100644 --- a/YuMi/Modules/YMMessage/View/Session/Cell/MSSessionPublicChatHalIRightmageCell.m +++ b/YuMi/Modules/YMMessage/View/Session/Cell/MSSessionPublicChatHalIRightmageCell.m @@ -109,7 +109,7 @@ } - (UIImage *)photoBrowser:(SDPhotoBrowser *)browser placeholderImageForIndex:(NSInteger)index { - return [UIImageConstant defalutBannerPlaceholder]; + return [UIImageConstant defaultBannerPlaceholder]; } - (UIImage *)photoBrowser:(SDPhotoBrowser *)browser highQualityImageForIndex:(NSInteger)index{ if(self.imageModel.url == nil && self.imageModel.image != nil){ diff --git a/YuMi/Modules/YMMessage/View/Session/Cell/MSSessionPublicChatHalImageCell.m b/YuMi/Modules/YMMessage/View/Session/Cell/MSSessionPublicChatHalImageCell.m index b16f4524..415ee2bd 100644 --- a/YuMi/Modules/YMMessage/View/Session/Cell/MSSessionPublicChatHalImageCell.m +++ b/YuMi/Modules/YMMessage/View/Session/Cell/MSSessionPublicChatHalImageCell.m @@ -107,7 +107,7 @@ } - (UIImage *)photoBrowser:(SDPhotoBrowser *)browser placeholderImageForIndex:(NSInteger)index { - return [UIImageConstant defalutBannerPlaceholder]; + return [UIImageConstant defaultBannerPlaceholder]; } - (UIImage *)photoBrowser:(SDPhotoBrowser *)browser highQualityImageForIndex:(NSInteger)index{ if(self.imageModel.url == nil && self.imageModel.image != nil){ diff --git a/YuMi/Modules/YMMessage/View/Session/Cell/SessionUserInfoTableViewCell.m b/YuMi/Modules/YMMessage/View/Session/Cell/SessionUserInfoTableViewCell.m index 3c2097e7..bf362302 100644 --- a/YuMi/Modules/YMMessage/View/Session/Cell/SessionUserInfoTableViewCell.m +++ b/YuMi/Modules/YMMessage/View/Session/Cell/SessionUserInfoTableViewCell.m @@ -240,7 +240,7 @@ } - (UIImage *)photoBrowser:(SDPhotoBrowser *)browser placeholderImageForIndex:(NSInteger)index { - return [UIImageConstant defalutBannerPlaceholder]; + return [UIImageConstant defaultBannerPlaceholder]; } #pragma mark - Event Response diff --git a/YuMi/Modules/YMMessage/View/Session/Content/MessageContentImage.m b/YuMi/Modules/YMMessage/View/Session/Content/MessageContentImage.m index a956ef43..a2a8bc18 100644 --- a/YuMi/Modules/YMMessage/View/Session/Content/MessageContentImage.m +++ b/YuMi/Modules/YMMessage/View/Session/Content/MessageContentImage.m @@ -56,7 +56,7 @@ } - (UIImage *)photoBrowser:(SDPhotoBrowser *)browser placeholderImageForIndex:(NSInteger)index { - return [UIImageConstant defalutBannerPlaceholder]; + return [UIImageConstant defaultBannerPlaceholder]; } - (UIImage *)photoBrowser:(SDPhotoBrowser *)browser highQualityImageForIndex:(NSInteger)index{ if(self.imageObject.url == nil && self.imageObject.image != nil){ diff --git a/YuMi/Modules/YMMine/View/Recharge/XPIAPRechargeHeadCell.m b/YuMi/Modules/YMMine/View/Recharge/XPIAPRechargeHeadCell.m index ad957925..076d0a38 100644 --- a/YuMi/Modules/YMMine/View/Recharge/XPIAPRechargeHeadCell.m +++ b/YuMi/Modules/YMMine/View/Recharge/XPIAPRechargeHeadCell.m @@ -63,7 +63,7 @@ _pi_BannerView.pageDotColor = UIColorRGBAlpha(0xB3B3C3, 0.4); _pi_BannerView.pageControlDotSize = CGSizeMake(kGetScaleWidth(4), kGetScaleWidth(4)); _pi_BannerView.bannerImageViewContentMode = UIViewContentModeScaleAspectFill; - _pi_BannerView.placeholderImage = [UIImageConstant defalutBannerPlaceholder]; + _pi_BannerView.placeholderImage = [UIImageConstant defaultBannerPlaceholder]; // SDCycleScrollView没有适配阿语,在RTL下会乱滚,都用LTR算了 _pi_BannerView.semanticContentAttribute = UISemanticContentAttributeForceLeftToRight; for (UIView *subView in _pi_BannerView.subviews) { diff --git a/YuMi/Modules/YMMine/View/SubViews/MineInfo/XPMineUserInfoHeaderView.m b/YuMi/Modules/YMMine/View/SubViews/MineInfo/XPMineUserInfoHeaderView.m index 7230921d..db55d8a3 100644 --- a/YuMi/Modules/YMMine/View/SubViews/MineInfo/XPMineUserInfoHeaderView.m +++ b/YuMi/Modules/YMMine/View/SubViews/MineInfo/XPMineUserInfoHeaderView.m @@ -441,7 +441,7 @@ } - (UIImage *)photoBrowser:(SDPhotoBrowser *)browser placeholderImageForIndex:(NSInteger)index { - return [UIImageConstant defalutBannerPlaceholder]; + return [UIImageConstant defaultBannerPlaceholder]; } #pragma mark - SDCycleScrollViewDelegate @@ -859,7 +859,7 @@ - (SDCycleScrollView *)pi_cycleScrollView { if (!_pi_cycleScrollView) { - _pi_cycleScrollView = [SDCycleScrollView cycleScrollViewWithFrame:CGRectZero delegate:self placeholderImage:[UIImageConstant defalutBannerPlaceholder]]; + _pi_cycleScrollView = [SDCycleScrollView cycleScrollViewWithFrame:CGRectZero delegate:self placeholderImage:[UIImageConstant defaultBannerPlaceholder]]; _pi_cycleScrollView.backgroundColor = [UIColor clearColor]; _pi_cycleScrollView.bannerImageViewContentMode = UIViewContentModeScaleAspectFill; _pi_cycleScrollView.pageControlStyle = SDCycleScrollViewPageContolStyleNone; diff --git a/YuMi/Modules/YMMonents/View/Cell/XPMonentsTableViewCell.m b/YuMi/Modules/YMMonents/View/Cell/XPMonentsTableViewCell.m index 17e429aa..4a26121d 100644 --- a/YuMi/Modules/YMMonents/View/Cell/XPMonentsTableViewCell.m +++ b/YuMi/Modules/YMMonents/View/Cell/XPMonentsTableViewCell.m @@ -219,7 +219,7 @@ } - (UIImage *)photoBrowser:(SDPhotoBrowser *)browser placeholderImageForIndex:(NSInteger)index { - return [UIImageConstant defalutBannerPlaceholder]; + return [UIImageConstant defaultBannerPlaceholder]; } #pragma mark - XPMonentsPhotoViewDelegate diff --git a/YuMi/Modules/YMNewHome/Api/Api+Home.h b/YuMi/Modules/YMNewHome/Api/Api+Home.h index 50a695c8..88a93771 100644 --- a/YuMi/Modules/YMNewHome/Api/Api+Home.h +++ b/YuMi/Modules/YMNewHome/Api/Api+Home.h @@ -118,7 +118,7 @@ NS_ASSUME_NONNULL_BEGIN /// @param uid 用户的uid + (void)onceLookAnchorRoomComplection:(HttpRequestHelperCompletion)complection uid:(NSString *)uid; ///首页改版资源位 -+(void)requestCurrentResourceListComplection:(HttpRequestHelperCompletion)complection; ++(void)requestCurrentResourceListCompletion:(HttpRequestHelperCompletion)complection; /// 一键匹配 /// @param completion 完成 + (void)homeChatPick:(HttpRequestHelperCompletion)completion; @@ -127,9 +127,27 @@ NS_ASSUME_NONNULL_BEGIN ///ip检测 +(void)checkIpRegionComplection:(HttpRequestHelperCompletion)complection; +#pragma mark - 首页 V3 APIs +/// 获取我的房间 +(void)getMyRoomCompletion:(HttpRequestHelperCompletion)completion; +/// 获取我收藏的房间 ++(void)getMyCollectRoomsCompletion:(HttpRequestHelperCompletion)completion + pageNum:(NSString *)num + pageSize:(NSString *)size; +/// 获取我最近去过的房间 ++(void)getMyRecentRoomsCompletion:(HttpRequestHelperCompletion)completion + pageNum:(NSString *)num + pageSize:(NSString *)size; +/// 获取标签 ++(void)getHomeTabsCompletion:(HttpRequestHelperCompletion)completion; +/// 获取首页房间列表 ++(void)getHomeTabRoomsCompletion:(HttpRequestHelperCompletion)completion + pageNum:(NSString *)pageNum + pageSize:(NSString *)pageSize + tabId:(NSString *)tabId; +/// 获取首页聚合排行榜 ++(void)getHomeRanksCompletion:(HttpRequestHelperCompletion)completion; -+(void)getMyCollectRoomsCompletion:(HttpRequestHelperCompletion)completion pageNum:(NSNumber *)num pageSize:(NSNumber *)size; @end NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/Api/Api+Home.m b/YuMi/Modules/YMNewHome/Api/Api+Home.m index 0f51bb58..0723e5ce 100644 --- a/YuMi/Modules/YMNewHome/Api/Api+Home.m +++ b/YuMi/Modules/YMNewHome/Api/Api+Home.m @@ -146,7 +146,7 @@ [self makeRequest:@"single/broadcast/onceLook" method:HttpRequestHelperMethodGET completion:complection, __FUNCTION__, uid, nil]; } ///首页改版资源位 -+(void)requestCurrentResourceListComplection:(HttpRequestHelperCompletion)complection{ ++(void)requestCurrentResourceListCompletion:(HttpRequestHelperCompletion)complection{ [self makeRequest:@"home/currentResource" method:HttpRequestHelperMethodGET completion:complection, __FUNCTION__, nil]; } /// 一键匹配 @@ -163,11 +163,36 @@ [self makeRequest:@"ipRegion/check" method:HttpRequestHelperMethodPOST completion:complection, __FUNCTION__, nil]; } +#pragma mark - 首页 V3 APIs + +(void)getMyRoomCompletion:(HttpRequestHelperCompletion)completion { [self makeRequest:@"home/getMyRoom" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, nil]; } -+(void)getMyCollectRoomsCompletion:(HttpRequestHelperCompletion)completion pageNum:(NSNumber *)num pageSize:(NSNumber *)size ++(void)getMyCollectRoomsCompletion:(HttpRequestHelperCompletion)completion + pageNum:(NSString *)pageNum + pageSize:(NSString *)pageSize { - [self makeRequest:@"home/collect/pageRoom" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, num, size, nil]; + [self makeRequest:@"home/collect/pageRoom" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, pageNum, pageSize, nil]; } ++(void)getMyRecentRoomsCompletion:(HttpRequestHelperCompletion)completion + pageNum:(NSString *)pageNum + pageSize:(NSString *)pageSize +{ + [self makeRequest:@"home/recent/pageRoom" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, pageNum, pageSize, nil]; +} ++(void)getHomeTabsCompletion:(HttpRequestHelperCompletion)completion { + [self makeRequest:@"home/tabV3/list" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, nil]; +} ++(void)getHomeTabRoomsCompletion:(HttpRequestHelperCompletion)completion + pageNum:(NSString *)pageNum + pageSize:(NSString *)pageSize + tabId:(NSString *)tabId +{ + [self makeRequest:@"home/tabV3/pageRoom" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, pageNum, pageSize, tabId, nil]; +} ++(void)getHomeRanksCompletion:(HttpRequestHelperCompletion)completion +{ + [self makeRequest:@"home/getRankSlideshow" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, nil]; +} + @end diff --git a/YuMi/Modules/YMNewHome/Model/HomeMineRoomModel.h b/YuMi/Modules/YMNewHome/Model/HomeMineRoomModel.h new file mode 100644 index 00000000..3f5b65d3 --- /dev/null +++ b/YuMi/Modules/YMNewHome/Model/HomeMineRoomModel.h @@ -0,0 +1,28 @@ +// +// HomeMineRoomModel.h +// YuMi +// +// Created by P on 2024/6/20. +// + +#import "PIBaseModel.h" +#import "HomePlayRoomModel.h" +#import "YUMINNNN.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface HomeMineRoomModel : PIBaseModel + +@property (nonatomic, copy) NSString *avatar; +@property (nonatomic, copy) NSString *introduction; +@property (nonatomic, assign) NSInteger roomId; +@property (nonatomic, assign) NSInteger uid; +@property (nonatomic, copy) NSString *title; +@property (nonatomic, assign) NSInteger onlineNum; +@property (nonatomic, assign) NSInteger micUserCount; +@property (nonatomic, assign) NSInteger partitionId; +@property (nonatomic, strong) NSArray *micUsers; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/Model/HomeMineRoomModel.m b/YuMi/Modules/YMNewHome/Model/HomeMineRoomModel.m new file mode 100644 index 00000000..2b1a058e --- /dev/null +++ b/YuMi/Modules/YMNewHome/Model/HomeMineRoomModel.m @@ -0,0 +1,12 @@ +// +// HomeMineRoomModel.m +// YuMi +// +// Created by P on 2024/6/20. +// + +#import "HomeMineRoomModel.h" + +@implementation HomeMineRoomModel + +@end diff --git a/YuMi/Modules/YMNewHome/Model/HomeRankAvatarModel.h b/YuMi/Modules/YMNewHome/Model/HomeRankAvatarModel.h new file mode 100644 index 00000000..9432208b --- /dev/null +++ b/YuMi/Modules/YMNewHome/Model/HomeRankAvatarModel.h @@ -0,0 +1,21 @@ +// +// HomeRankAvatarModel.h +// YuMi +// +// Created by P on 2024/6/20. +// + +#import "PIBaseModel.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface HomeRankAvatarModel : PIBaseModel + +@property (nonatomic, assign) NSInteger uid; +@property (nonatomic, assign) NSInteger erbanNo; +@property (nonatomic, copy) NSString *avatar; +@property (nonatomic, copy) NSString *nick; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/Model/HomeRankAvatarModel.m b/YuMi/Modules/YMNewHome/Model/HomeRankAvatarModel.m new file mode 100644 index 00000000..58387f69 --- /dev/null +++ b/YuMi/Modules/YMNewHome/Model/HomeRankAvatarModel.m @@ -0,0 +1,12 @@ +// +// HomeRankAvatarModel.m +// YuMi +// +// Created by P on 2024/6/20. +// + +#import "HomeRankAvatarModel.h" + +@implementation HomeRankAvatarModel + +@end diff --git a/YuMi/Modules/YMNewHome/Presenter/XPHomeContainerPresenter.h b/YuMi/Modules/YMNewHome/Presenter/XPHomeContainerPresenter.h index 6bac2886..5ce3fabd 100644 --- a/YuMi/Modules/YMNewHome/Presenter/XPHomeContainerPresenter.h +++ b/YuMi/Modules/YMNewHome/Presenter/XPHomeContainerPresenter.h @@ -19,7 +19,11 @@ NS_ASSUME_NONNULL_BEGIN - (void)homeChatPick; ///ip检测 -(void)checkIpRegionAction; + - (void)getHomeTopData; +- (void)getHomeAllTopsData; + +- (void)getHomeRanks; @end NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/Presenter/XPHomeContainerPresenter.m b/YuMi/Modules/YMNewHome/Presenter/XPHomeContainerPresenter.m index 25394060..f93c5649 100644 --- a/YuMi/Modules/YMNewHome/Presenter/XPHomeContainerPresenter.m +++ b/YuMi/Modules/YMNewHome/Presenter/XPHomeContainerPresenter.m @@ -15,41 +15,34 @@ #import "HomeBannerInfoModel.h" #import "PIHomeItemModel.h" #import "PIHomeCategoryTitleModel.h" +#import "HomeRankAvatarModel.h" +#import "HomePlayRoomModel.h" + @implementation XPHomeContainerPresenter -- (void)getHomeTopData{ - RACSubject* banner = [RACSubject subject]; - RACSubject* menu = [RACSubject subject]; - +- (void)getHomeTopData { + RACSubject *banner = [RACSubject subject]; + RACSubject *menu = [RACSubject subject]; + [[RACSignal combineLatest:@[banner, menu] reduce:^id(NSArray* bannerList, NSArray* menuList){ //在这里 进行请求后的方法,回到主线程 - dispatch_async(dispatch_get_main_queue(), ^{ - - //更新UI操作 - [[self getView] getHomeTopDataSuccess:bannerList menuList:menuList]; - }); - + dispatch_async(dispatch_get_main_queue(), ^{ + [[self getView] getHomeTopDataSuccess:bannerList menuList:menuList]; + }); return nil; }] subscribeError:^(NSError * _Nullable error) { - dispatch_async(dispatch_get_main_queue(), ^{ - - //更新UI操作 - - }); - }]; - + NSString * uid = [AccountInfoStorage instance].getUid; [Api homeBannerList:[self createHttpCompletion:^(BaseModel * _Nonnull data) { NSArray * array = [HomeBannerInfoModel modelsWithArray:data.data]; [banner sendNext:array]; [banner sendCompleted]; }fail:^(NSInteger code, NSString * _Nullable msg) { - [menu sendError:nil]; - [menu sendCompleted]; + [banner sendError:nil]; + [banner sendCompleted]; } errorToast:NO] uid:uid type:@"1"]; - - - [Api requestCurrentResourceListComplection:[self createHttpCompletion:^(BaseModel * _Nonnull data) { + + [Api requestCurrentResourceListCompletion:[self createHttpCompletion:^(BaseModel * _Nonnull data) { NSArray *list = [PIHomeItemModel modelsWithArray:data.data]; [menu sendNext:list]; [menu sendCompleted]; @@ -58,6 +51,69 @@ [menu sendCompleted]; }]]; } + +- (void)getHomeAllTopsData { + RACSubject *banner = [RACSubject subject]; + RACSubject *menu = [RACSubject subject]; + RACSubject *rank = [RACSubject subject]; + + RACSignal *bannerSignal = [banner catch:^RACSignal *(NSError *error) { + return [RACSignal return:nil]; + }]; + + RACSignal *menuSignal = [menu catch:^RACSignal *(NSError *error) { + return [RACSignal return:nil]; + }]; + + RACSignal *rankSignal = [rank catch:^RACSignal *(NSError *error) { + return [RACSignal return:nil]; + }]; + + RACSignal *combinedSignal = [RACSignal combineLatest:@[bannerSignal, menuSignal, rankSignal] + reduce:^id(NSArray* bannerList, NSArray* menuList, NSArray *rankAvatars) { + return @[bannerList ?: [NSArray array], + menuList ?: [NSArray array], + rankAvatars ?: [NSArray array]]; + }]; + + [[combinedSignal deliverOn:RACScheduler.mainThreadScheduler] + subscribeNext:^(NSArray *combinedValues) { + [[self getView] getHomeTopDataSuccess:[combinedValues xpSafeObjectAtIndex:0] + banners:[combinedValues xpSafeObjectAtIndex:1] + rankAvatars:[combinedValues xpSafeObjectAtIndex:2]]; + } error:^(NSError * _Nullable error) { + NSLog(@""); + }]; + + NSString * uid = [AccountInfoStorage instance].getUid; + [Api homeBannerList:[self createHttpCompletion:^(BaseModel * _Nonnull data) { + NSArray * array = [HomeBannerInfoModel modelsWithArray:data.data]; + [banner sendNext:array]; + [banner sendCompleted]; + }fail:^(NSInteger code, NSString * _Nullable msg) { + [banner sendError:nil]; + [banner sendCompleted]; + } errorToast:NO] uid:uid type:@"1"]; + + [Api requestCurrentResourceListCompletion:[self createHttpCompletion:^(BaseModel * _Nonnull data) { + NSArray *list = [PIHomeItemModel modelsWithArray:data.data]; + [menu sendNext:list]; + [menu sendCompleted]; + }fail:^(NSInteger code, NSString * _Nullable msg) { + [menu sendError:nil]; + [menu sendCompleted]; + }]]; + + [Api getHomeRanksCompletion:[self createHttpCompletion:^(BaseModel * _Nonnull data) { + NSArray *list = [HomeRankAvatarModel modelsWithArray:data.data]; + [rank sendNext:list]; + [rank sendCompleted]; + }fail:^(NSInteger code, NSString * _Nullable msg) { + [rank sendError:nil]; + [rank sendCompleted]; + }]]; +} + ///得到首页轮播图 - (void)getHomeTopBannerList{ NSString * uid = [AccountInfoStorage instance].getUid; @@ -71,20 +127,29 @@ /// 获取所有的房间的tag - (void)getHomeTagList { - NSString * uid = [AccountInfoStorage instance].getUid; - [Api homeTagComplection:[self createHttpCompletion:^(BaseModel * _Nonnull data) { - NSArray * array = [PIHomeCategoryTitleModel modelsWithArray:data.data]; +// NSString * uid = [AccountInfoStorage instance].getUid; +// [Api homeTagComplection:[self createHttpCompletion:^(BaseModel * _Nonnull data) { +// NSArray * array = [PIHomeCategoryTitleModel modelsWithArray:data.data]; +// for (PIHomeCategoryTitleModel *model in array) { +// model.checkedWidth = [UILabel getWidthWithText:model.name height:kGetScaleWidth(44) font:kFontSemibold(16)]; +// model.noCheckedWidth = [UILabel getWidthWithText:model.name height:kGetScaleWidth(44) font:kFontRegular(14)]; +// } +// [[self getView] getHomeTagListSuccess:array]; +// +// }] uid:uid]; + [Api getHomeTabsCompletion:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) { + // TODO: 不能在 API call 的地方返回 UI 元素 + NSArray * array = [PIHomeCategoryTitleModel modelsWithArray:data.data]; for (PIHomeCategoryTitleModel *model in array) { model.checkedWidth = [UILabel getWidthWithText:model.name height:kGetScaleWidth(44) font:kFontSemibold(16)]; model.noCheckedWidth = [UILabel getWidthWithText:model.name height:kGetScaleWidth(44) font:kFontRegular(14)]; } [[self getView] getHomeTagListSuccess:array]; - - }] uid:uid]; + }]; } ///首页改版资源位 -(void)getCurrentResourceList{ - [Api requestCurrentResourceListComplection:[self createHttpCompletion:^(BaseModel * _Nonnull data) { + [Api requestCurrentResourceListCompletion:[self createHttpCompletion:^(BaseModel * _Nonnull data) { NSArray *list = [PIHomeItemModel modelsWithArray:data.data]; [[self getView]getCurrentResourceListSuccess:list]; }]]; @@ -117,4 +182,16 @@ } }]; } + +- (void)getHomeRanks { + @kWeakify(self); + [Api getHomeRanksCompletion:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) { + @kStrongify(self); + if (code == 200) { + NSArray *list = [HomeRankAvatarModel modelsWithArray:data.data]; + [[self getView] getHomeRanksSuccess:list]; + } + }]; +} + @end diff --git a/YuMi/Modules/YMNewHome/Presenter/XPHomeMinePresenter.h b/YuMi/Modules/YMNewHome/Presenter/XPHomeMinePresenter.h index 15206721..a478595e 100644 --- a/YuMi/Modules/YMNewHome/Presenter/XPHomeMinePresenter.h +++ b/YuMi/Modules/YMNewHome/Presenter/XPHomeMinePresenter.h @@ -13,7 +13,8 @@ NS_ASSUME_NONNULL_BEGIN - (void)getMyRoom; -- (void)getMyCollectRooms; +- (void)getMyCollectRooms:(NSInteger)page; +- (void)getMyRecentRooms:(NSInteger)page; @end diff --git a/YuMi/Modules/YMNewHome/Presenter/XPHomeMinePresenter.m b/YuMi/Modules/YMNewHome/Presenter/XPHomeMinePresenter.m index 29ea5b1d..c94c29a8 100644 --- a/YuMi/Modules/YMNewHome/Presenter/XPHomeMinePresenter.m +++ b/YuMi/Modules/YMNewHome/Presenter/XPHomeMinePresenter.m @@ -7,33 +7,42 @@ #import "XPHomeMinePresenter.h" +#import "XPHomeMineProtocol.h" + #import "Api+Home.h" +#import "HomeMineRoomModel.h" #import "HomeCollectRoomModel.h" +#import "HomeRankAvatarModel.h" @implementation XPHomeMinePresenter - (void)getMyRoom { -// NSString * uid = [/*AccountInfoStorage*/ instance].getUid; -// [Api homeTagComplection:[self createHttpCompletion:^(BaseModel * _Nonnull data) { -// NSArray * array = [PIHomeCategoryTitleModel modelsWithArray:data.data]; -// for (PIHomeCategoryTitleModel *model in array) { -// model.checkedWidth = [UILabel getWidthWithText:model.name height:kGetScaleWidth(44) font:kFontSemibold(16)]; -// model.noCheckedWidth = [UILabel getWidthWithText:model.name height:kGetScaleWidth(44) font:kFontRegular(14)]; -// } -// [[self getView] getHomeTagListSuccess:array]; -// -// }] uid:uid]; [Api getMyRoomCompletion:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) { - // TODO: 确认 model + if (code == 200) { + HomeMineRoomModel *model = [HomeMineRoomModel modelWithDictionary:data.data]; + [[self getView] getMyRoomSuccess:model]; + } else { + [[self getView] getMyRoomSuccess:nil]; + } }]; } -- (void)getMyCollectRooms { +- (void)getMyCollectRooms:(NSInteger)page { [Api getMyCollectRoomsCompletion:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) { // TODO: 确认 model } - pageNum:@1 - pageSize:@20]; + pageNum:[NSString stringWithFormat:@"%ld", page] + pageSize:@"20"]; } +- (void)getMyRecentRooms:(NSInteger)page { + [Api getMyRecentRoomsCompletion:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) { + // TODO: 确认 model + } + pageNum:[NSString stringWithFormat:@"%ld", page] + pageSize:@"20"]; +} + + + @end diff --git a/YuMi/Modules/YMNewHome/Presenter/XPHomePresenter.h b/YuMi/Modules/YMNewHome/Presenter/XPHomePresenter.h index 615c5afc..df2fe618 100644 --- a/YuMi/Modules/YMNewHome/Presenter/XPHomePresenter.h +++ b/YuMi/Modules/YMNewHome/Presenter/XPHomePresenter.h @@ -14,14 +14,18 @@ NS_ASSUME_NONNULL_BEGIN /// 请求首页 /// @param tabId id /// @param page 当前的页数 -/// @param pageSize 一页有多少个 -- (void)getRecommendRoomList:(NSString *)tabId page:(int)page pageSize:(int)pageSize ; +// @param pageSize 一页有多少个 - 默认 20 +- (void)getRecommendRoomList:(NSString *)tabId page:(NSInteger)page; /// 获取更多的个播房间 - (void)getHomeMoreAnchorRoomList; /// 热门房间(个人房)列表 - (void)getHomePersonalRoomList; + +- (void)getMyCollectRooms:(NSInteger)page; +- (void)getMyRecentRooms:(NSInteger)page; + @end NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/Presenter/XPHomePresenter.m b/YuMi/Modules/YMNewHome/Presenter/XPHomePresenter.m index de78e348..d6e212de 100644 --- a/YuMi/Modules/YMNewHome/Presenter/XPHomePresenter.m +++ b/YuMi/Modules/YMNewHome/Presenter/XPHomePresenter.m @@ -19,17 +19,30 @@ /// 请求首页 /// @param tabId id /// @param page 当前的页数 -/// @param pageSize 一页有多少个 -- (void)getRecommendRoomList:(NSString *)tabId page:(int)page pageSize:(int)pageSize { - NSString * uid = [AccountInfoStorage instance].getUid; - NSString * pageStr = [NSString stringWithFormat:@"%d", page]; - NSString * pageSizeStr = [NSString stringWithFormat:@"%d", pageSize]; - [Api getNewRecommendListComplection:[self createHttpCompletion:^(BaseModel * _Nonnull data) { - NSArray * array = [HomePlayRoomModel modelsWithArray:data.data]; - [[self getView] getHomeRecommendRoomListSuccess:array ]; - }fail:^(NSInteger code, NSString * _Nullable msg) { - [[self getView] getHomeRecommendRoomListFail:msg ]; - }] uid:uid tabId:tabId pageNum:pageStr pageSize:pageSizeStr]; + +- (void)getRecommendRoomList:(NSString *)tabId page:(NSInteger)page { +// NSString * uid = [AccountInfoStorage instance].getUid; +// NSString * pageStr = [NSString stringWithFormat:@"%d", page]; +// NSString * pageSizeStr = [NSString stringWithFormat:@"%d", pageSize]; +// [Api getNewRecommendListComplection:[self createHttpCompletion:^(BaseModel * _Nonnull data) { +// NSArray * array = [HomePlayRoomModel modelsWithArray:data.data]; +// [[self getView] getHomeRecommendRoomListSuccess:array ]; +// }fail:^(NSInteger code, NSString * _Nullable msg) { +// [[self getView] getHomeRecommendRoomListFail:msg ]; +// }] uid:uid tabId:tabId pageNum:pageStr pageSize:pageSizeStr]; + + @kWeakify(self); + [Api getHomeTabRoomsCompletion:[self createHttpCompletion:^(BaseModel * _Nonnull data) { + @kStrongify(self); + NSArray * array = [HomePlayRoomModel modelsWithArray:data.data]; + [[self getView] getHomeRecommendRoomListSuccess:array]; + }fail:^(NSInteger code, NSString * _Nullable msg) { + @kStrongify(self); + [[self getView] getHomeRecommendRoomListFail:msg ]; + }] + pageNum:[NSString stringWithFormat:@"%ld", page] + pageSize:@"20" + tabId:tabId]; } /// 获取更多的个播房间 @@ -51,4 +64,23 @@ [[self getView]getHomePersonalRoomListFail]; }errorToast:NO] uid:uid]; } + +- (void)getMyCollectRooms:(NSInteger)page { + [Api getMyCollectRoomsCompletion:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) { + NSArray * array = [HomePlayRoomModel modelsWithArray:data.data]; + [[self getView] getMineCollectRoomsSuccess:array]; + } + pageNum:[NSString stringWithFormat:@"%ld", page] + pageSize:@"20"]; +} + +- (void)getMyRecentRooms:(NSInteger)page { + [Api getMyRecentRoomsCompletion:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) { + NSArray * array = [HomePlayRoomModel modelsWithArray:data.data]; + [[self getView] getMineRecentRoomsSuccess:array]; + } + pageNum:[NSString stringWithFormat:@"%ld", page] + pageSize:@"20"]; +} + @end diff --git a/YuMi/Modules/YMNewHome/Protocol/XPHomeContainerProtocol.h b/YuMi/Modules/YMNewHome/Protocol/XPHomeContainerProtocol.h index 0da8d7ae..480c7968 100644 --- a/YuMi/Modules/YMNewHome/Protocol/XPHomeContainerProtocol.h +++ b/YuMi/Modules/YMNewHome/Protocol/XPHomeContainerProtocol.h @@ -25,6 +25,10 @@ NS_ASSUME_NONNULL_BEGIN -(void)checkIpRegionFailWithMsg:(NSString *)msg; -(void)checkIpRegionSuccess:(NSInteger)seconds; - (void)getHomeTopDataSuccess:(NSArray*)list menuList:(NSArray *)memuList; +- (void)getHomeTopDataSuccess:(NSArray *)resourceList + banners:(NSArray *)banners + rankAvatars:(NSArray *)rankAvatars; +- (void)getHomeRanksSuccess:(NSArray *)resourceList; @end NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/Protocol/XPHomeMineProtocol.h b/YuMi/Modules/YMNewHome/Protocol/XPHomeMineProtocol.h new file mode 100644 index 00000000..e4c3d079 --- /dev/null +++ b/YuMi/Modules/YMNewHome/Protocol/XPHomeMineProtocol.h @@ -0,0 +1,19 @@ +// +// XPHomeMineProtocol.h +// YuMi +// +// Created by P on 2024/6/20. +// + +#import +@class HomeMineRoomModel; + +NS_ASSUME_NONNULL_BEGIN + +@protocol XPHomeMineProtocol +@optional +///首页推荐房间的 +- (void)getMyRoomSuccess:(nullable HomeMineRoomModel *)model; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/Protocol/XPHomeProtocol.h b/YuMi/Modules/YMNewHome/Protocol/XPHomeProtocol.h index 309c6e28..50536bc4 100644 --- a/YuMi/Modules/YMNewHome/Protocol/XPHomeProtocol.h +++ b/YuMi/Modules/YMNewHome/Protocol/XPHomeProtocol.h @@ -23,6 +23,9 @@ NS_ASSUME_NONNULL_BEGIN - (void)getHomePersonalRoomListSuccess:(NSArray *)list; ///获取个人房列表失败 - (void)getHomePersonalRoomListFail; + +- (void)getMineCollectRoomsSuccess:(NSArray *)rooms; +- (void)getMineRecentRoomsSuccess:(NSArray *)rooms; @end NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/Protocol/XPNewHomeRecommendProtocol.h b/YuMi/Modules/YMNewHome/Protocol/XPNewHomeRecommendProtocol.h index 8e480565..bcbd7b89 100644 --- a/YuMi/Modules/YMNewHome/Protocol/XPNewHomeRecommendProtocol.h +++ b/YuMi/Modules/YMNewHome/Protocol/XPNewHomeRecommendProtocol.h @@ -30,6 +30,8 @@ NS_ASSUME_NONNULL_BEGIN ///获取小游戏列表 - (void)onGetLittleGameListSuccess:(NSArray *)items; + + @end NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/View/Cell/XPHomeBannerTableViewCell.m b/YuMi/Modules/YMNewHome/View/Cell/XPHomeBannerTableViewCell.m index 916e1dad..b02c63f1 100644 --- a/YuMi/Modules/YMNewHome/View/Cell/XPHomeBannerTableViewCell.m +++ b/YuMi/Modules/YMNewHome/View/Cell/XPHomeBannerTableViewCell.m @@ -83,7 +83,7 @@ _pi_BannerView.showPageControl = NO; _pi_BannerView.autoScrollTimeInterval = 5.0; _pi_BannerView.bannerImageViewContentMode = UIViewContentModeScaleAspectFill; - _pi_BannerView.placeholderImage = [UIImageConstant defalutBannerPlaceholder]; + _pi_BannerView.placeholderImage = [UIImageConstant defaultBannerPlaceholder]; // SDCycleScrollView没有适配阿语,在RTL下会乱滚,都用LTR算了 _pi_BannerView.semanticContentAttribute = UISemanticContentAttributeForceLeftToRight; for (UIView *subView in _pi_BannerView.subviews) { diff --git a/YuMi/Modules/YMNewHome/View/CustomView/XPNewHomeHeadView.h b/YuMi/Modules/YMNewHome/View/CustomView/XPNewHomeHeadView.h index c68d7bd1..196af968 100644 --- a/YuMi/Modules/YMNewHome/View/CustomView/XPNewHomeHeadView.h +++ b/YuMi/Modules/YMNewHome/View/CustomView/XPNewHomeHeadView.h @@ -19,6 +19,7 @@ NS_ASSUME_NONNULL_BEGIN @interface XPNewHomeHeadView : UIView @property (nonatomic,copy) NSArray *bannerList; @property(nonatomic,copy) NSArray *itemList; +@property (nonatomic,copy) NSArray *rankAvatars; @property(nonatomic,weak) iddelegate; @end diff --git a/YuMi/Modules/YMNewHome/View/CustomView/XPNewHomeHeadView.m b/YuMi/Modules/YMNewHome/View/CustomView/XPNewHomeHeadView.m index d1085fab..b14423be 100644 --- a/YuMi/Modules/YMNewHome/View/CustomView/XPNewHomeHeadView.m +++ b/YuMi/Modules/YMNewHome/View/CustomView/XPNewHomeHeadView.m @@ -31,7 +31,6 @@ [self addSubview:self.pageControl]; } -(void)installConstraints{ - [self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) { make.leading.mas_equalTo(0); make.trailing.mas_equalTo(0); @@ -43,8 +42,6 @@ make.leading.trailing.equalTo(self).inset(kGetScaleWidth(14)); make.height.mas_equalTo(kGetScaleWidth(80)); }]; - - } #pragma mark - SDCycleScrollViewDelegate - (void)cycleScrollView:(SDCycleScrollView *)cycleScrollView didSelectItemAtIndex:(NSInteger)index { @@ -92,7 +89,7 @@ self.collectionView.hidden = _itemList.count == 0; dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ [self.collectionView reloadData]; - }); + }); if (_itemList.count == 0){ [self.collectionView mas_remakeConstraints:^(MASConstraintMaker *make) { @@ -104,6 +101,10 @@ } } +- (void)setRankAvatars:(NSArray *)rankAvatars { + _rankAvatars = rankAvatars; + [self.collectionView reloadData]; +} - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { @@ -111,12 +112,20 @@ } - (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { - XPNewHomeItemCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([XPNewHomeItemCell class]) forIndexPath:indexPath]; if(indexPath.row < self.itemList.count){ - cell.itmeModel = self.itemList[indexPath.row]; + cell.itemModel = self.itemList[indexPath.row]; + cell.rankAvatarsModelArray = self.rankAvatars; } - + @kWeakify(self); + cell.didTapRankArea = ^{ + @kStrongify(self); + PIHomeItemModel *model = [self.itemList xpSafeObjectAtIndex:indexPath.row]; + if(model != nil && self.delegate && [self.delegate respondsToSelector:@selector(selectItemWithModel:)]){ + [self.delegate selectItemWithModel:model]; + } + }; + return cell; } - (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{ @@ -125,6 +134,7 @@ [self.delegate selectItemWithModel:model]; } } + #pragma mark - 懒加载 - (UICollectionView *)collectionView{ if (!_collectionView) { @@ -149,7 +159,7 @@ - (SDCycleScrollView *)pi_BannerView { if (!_pi_BannerView) { - _pi_BannerView = [SDCycleScrollView cycleScrollViewWithFrame:CGRectZero delegate:self placeholderImage:[UIImageConstant defalutBannerPlaceholder]]; + _pi_BannerView = [SDCycleScrollView cycleScrollViewWithFrame:CGRectZero delegate:self placeholderImage:[UIImageConstant defaultBannerPlaceholder]]; _pi_BannerView.backgroundColor = [UIColor redColor]; _pi_BannerView.layer.cornerRadius = 10; _pi_BannerView.layer.masksToBounds = YES; diff --git a/YuMi/Modules/YMNewHome/View/CustomView/XPNewHomeItemCell.h b/YuMi/Modules/YMNewHome/View/CustomView/XPNewHomeItemCell.h index acf4bc4c..5f500e9d 100644 --- a/YuMi/Modules/YMNewHome/View/CustomView/XPNewHomeItemCell.h +++ b/YuMi/Modules/YMNewHome/View/CustomView/XPNewHomeItemCell.h @@ -6,11 +6,14 @@ // #import -#import "PIHomeItemModel.h" +@class PIHomeItemModel; +@class HomeRankAvatarModel; NS_ASSUME_NONNULL_BEGIN @interface XPNewHomeItemCell : UICollectionViewCell -@property(nonatomic,strong) PIHomeItemModel *itmeModel; +@property(nonatomic, strong) PIHomeItemModel *itemModel; +@property (nonatomic, copy) NSArray *rankAvatarsModelArray; +@property (nonatomic, copy) void(^didTapRankArea)(void); @end NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/View/CustomView/XPNewHomeItemCell.m b/YuMi/Modules/YMNewHome/View/CustomView/XPNewHomeItemCell.m index 7f61d143..7200bd9d 100644 --- a/YuMi/Modules/YMNewHome/View/CustomView/XPNewHomeItemCell.m +++ b/YuMi/Modules/YMNewHome/View/CustomView/XPNewHomeItemCell.m @@ -6,9 +6,145 @@ // #import "XPNewHomeItemCell.h" -@interface XPNewHomeItemCell () + +#import +#import "PIHomeItemModel.h" +#import "HomeRankAvatarModel.h" + +@interface XPRankAvatarsCell : UICollectionViewCell +@property (nonatomic, strong) NSArray *cellModel; +@property (nonatomic, strong) NetImageView *avatar_1; +@property (nonatomic, strong) NetImageView *avatar_2; +@property (nonatomic, strong) NetImageView *avatar_3; +@end + +@implementation XPRankAvatarsCell + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self setupCell]; + } + return self; +} + +- (void)setCellModel:(NSArray *)cellModel { + if ([cellModel xpSafeObjectAtIndex:0]) { + self.avatar_1.imageUrl = [[cellModel xpSafeObjectAtIndex:0] avatar]; + } + + if ([cellModel xpSafeObjectAtIndex:1]) { + self.avatar_2.imageUrl = [[cellModel xpSafeObjectAtIndex:1] avatar]; + } + + if ([cellModel xpSafeObjectAtIndex:2]) { + self.avatar_3.imageUrl = [[cellModel xpSafeObjectAtIndex:2] avatar]; + } +} + +- (void)setupCell { + // TODO: + UIImageView *headDress_1 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"home_rank_Headdress_first"]]; + UIImageView *headDress_2 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"home_rank_Headdress_second"]]; + UIImageView *headDress_3 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"home_rank_Headdress_third"]]; + headDress_1.contentMode = UIViewContentModeScaleAspectFit; + headDress_2.contentMode = UIViewContentModeScaleAspectFit; + headDress_3.contentMode = UIViewContentModeScaleAspectFit; + + [self.contentView addSubview:headDress_3]; + [self.contentView addSubview:headDress_2]; + [self.contentView addSubview:headDress_1]; + + [headDress_1 mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.contentView); + make.top.mas_equalTo(self.contentView).offset(9); + make.width.mas_equalTo(62); + make.height.mas_equalTo(48); + }]; + + [headDress_2 mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(self.contentView).offset(-15); + make.left.mas_equalTo(self.contentView).offset(21); + make.width.mas_equalTo(42); + make.height.mas_equalTo(33); + }]; + + [headDress_3 mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(self.contentView).offset(-15); + make.right.mas_equalTo(self.contentView).offset(-21); + make.width.mas_equalTo(42); + make.height.mas_equalTo(33); + }]; + + [self.contentView insertSubview:self.avatar_1 belowSubview:headDress_1]; + [self.contentView insertSubview:self.avatar_2 belowSubview:headDress_2]; + [self.contentView insertSubview:self.avatar_3 belowSubview:headDress_3]; + + [self.avatar_1 mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(headDress_1).offset(-1.5); + make.centerX.mas_equalTo(headDress_1); + make.width.height.mas_equalTo(34); + }]; + + [self.avatar_2 mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(headDress_2).offset(-1.5); + make.centerX.mas_equalTo(headDress_2); + make.width.height.mas_equalTo(22); + }]; + + [self.avatar_3 mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(headDress_3).offset(-1.5); + make.centerX.mas_equalTo(headDress_3); + make.width.height.mas_equalTo(22); + }]; +} + +- (NetImageView *)avatar_1 { + if(!_avatar_1){ + NetImageConfig *config = [[NetImageConfig alloc]init]; + config.placeHolder = [UIImageConstant defaultBannerPlaceholder]; + _avatar_1 = [[NetImageView alloc]initWithConfig:config]; + _avatar_1.layer.cornerRadius = kGetScaleWidth(17); + _avatar_1.layer.masksToBounds = YES; + } + return _avatar_1; +} + +- (NetImageView *)avatar_2 { + if(!_avatar_2){ + NetImageConfig *config = [[NetImageConfig alloc]init]; + config.placeHolder = [UIImageConstant defaultBannerPlaceholder]; + _avatar_2 = [[NetImageView alloc]initWithConfig:config]; + _avatar_2.layer.cornerRadius = kGetScaleWidth(11); + _avatar_2.layer.masksToBounds = YES; + } + return _avatar_2; +} + +- (NetImageView *)avatar_3 { + if(!_avatar_3){ + NetImageConfig *config = [[NetImageConfig alloc]init]; + config.placeHolder = [UIImageConstant defaultBannerPlaceholder]; + _avatar_3 = [[NetImageView alloc]initWithConfig:config]; + _avatar_3.layer.cornerRadius = kGetScaleWidth(11); + _avatar_3.layer.masksToBounds = YES; + } + return _avatar_3; +} + +@end + +@interface XPNewHomeItemCell () ///背景 @property(nonatomic,strong) NetImageView *bgImageView; +//@property (nonatomic, strong) UIImageView *rankImageView; +@property (nonatomic, strong) SDCycleScrollView *pi_BannerView; +@property (nonatomic, strong) UIScrollView *avatarScrollView; +@property (nonatomic, strong) NSArray *dataSource; +@property (nonatomic, strong) NSTimer *timer; +@property (nonatomic,strong) NSArray *avatarsList; + @end @implementation XPNewHomeItemCell -(instancetype)initWithFrame:(CGRect)frame{ @@ -27,24 +163,97 @@ make.edges.equalTo(self.contentView); }]; } --(void)setItmeModel:(PIHomeItemModel *)itmeModel{ - _itmeModel = itmeModel; - _bgImageView.layer.cornerRadius = kGetScaleWidth(12); - @kWeakify(self); - [_bgImageView loadImageWithUrl: _itmeModel.icon completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) { - @kStrongify(self); - self.bgImageView.layer.cornerRadius = kGetScaleWidth(0); - }];; +-(void)setItemModel:(PIHomeItemModel *)itmeModel{ + _itemModel = itmeModel; + if ([itmeModel.ID isEqualToString:@"3"]) { + _bgImageView.image = [UIImage imageNamed:@"home_rank_Heads_bg"]; + } else { + _bgImageView.layer.cornerRadius = kGetScaleWidth(12); + @kWeakify(self); + [_bgImageView loadImageWithUrl: _itemModel.icon completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) { + @kStrongify(self); + self.bgImageView.layer.cornerRadius = kGetScaleWidth(0); + }]; + } } + +- (void)setRankAvatarsModelArray:(NSArray *)rankAvatarsModelArray { + if (![self.itemModel.ID isEqualToString:@"3"]) { + return; + } + if (rankAvatarsModelArray.count>0) { + _rankAvatarsModelArray = rankAvatarsModelArray; + if (!self.pi_BannerView.superview) { + [self.contentView addSubview:self.pi_BannerView]; + [self.pi_BannerView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self); + }]; + } + [self setupCycleScrollViews]; + } +} + +- (void)setupCycleScrollViews { + NSMutableArray * array = [NSMutableArray array]; + [self.rankAvatarsModelArray enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL * _Nonnull stop) { + [array addObject:@"Fuck"]; + }]; + self.pi_BannerView.imageURLStringsGroup = array; + [self.pi_BannerView autoScroll]; +} + +#pragma mark - SDCycleScrollViewDelegate +- (void)cycleScrollView:(SDCycleScrollView *)cycleScrollView didSelectItemAtIndex:(NSInteger)index +{ + if (_didTapRankArea) { + self.didTapRankArea(); + } +} + +- (Class)customCollectionViewCellClassForCycleScrollView:(SDCycleScrollView *)view { + return XPRankAvatarsCell.class; +} + +- (void)setupCustomCell:(UICollectionViewCell *)cell + forIndex:(NSInteger)index + cycleScrollView:(SDCycleScrollView *)view { + XPRankAvatarsCell *myCell = (XPRankAvatarsCell *)cell; + myCell.cellModel = [self.rankAvatarsModelArray xpSafeObjectAtIndex:index]; +} + #pragma mark - 懒加载 - (NetImageView *)bgImageView{ if(!_bgImageView){ NetImageConfig *config = [[NetImageConfig alloc]init]; - config.placeHolder = [UIImageConstant defalutBannerPlaceholder]; + config.placeHolder = [UIImageConstant defaultBannerPlaceholder]; _bgImageView = [[NetImageView alloc]initWithConfig:config]; _bgImageView.layer.cornerRadius = kGetScaleWidth(12); _bgImageView.layer.masksToBounds = YES; } return _bgImageView; } + +- (UIScrollView *)avatarScrollView { + if (!_avatarScrollView) { + _avatarScrollView = [[UIScrollView alloc] init]; + } + return _avatarScrollView; +} + +- (SDCycleScrollView *)pi_BannerView { + if (!_pi_BannerView) { + _pi_BannerView = [[SDCycleScrollView alloc] init]; + _pi_BannerView.backgroundColor = [UIColor clearColor]; + _pi_BannerView.layer.cornerRadius = 10; + _pi_BannerView.layer.masksToBounds = YES; + _pi_BannerView.delegate = self; + _pi_BannerView.showPageControl = NO; + _pi_BannerView.autoScrollTimeInterval = 5.0; + _pi_BannerView.bannerImageViewContentMode = UIViewContentModeScaleAspectFill; + _pi_BannerView.scrollDirection = UICollectionViewScrollDirectionVertical; + } + return _pi_BannerView; +} + @end + diff --git a/YuMi/Modules/YMNewHome/View/XPHomeMineViewController.m b/YuMi/Modules/YMNewHome/View/XPHomeMineViewController.m index 542c35f2..485b761c 100644 --- a/YuMi/Modules/YMNewHome/View/XPHomeMineViewController.m +++ b/YuMi/Modules/YMNewHome/View/XPHomeMineViewController.m @@ -15,12 +15,251 @@ #import "XPHomePartyViewController.h" #import "PIHomeCategoryTitleModel.h" -@interface XPHomeMineViewController () +#import "XPHomeMineProtocol.h" +#import "HomeMineRoomModel.h" -@property (nonatomic, strong) UIView *myRoomCard; +@interface XPHomeCustomJXTitleCell : JXCategoryTitleCell +@property (nonatomic, assign) bool isDisplayLine; +@property (nonatomic, strong) UIView *line; +@end + +@implementation XPHomeCustomJXTitleCell +-(instancetype)initWithFrame:(CGRect)frame{ + self = [super initWithFrame:frame]; + if(self){ + [self.line mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self); + make.width.mas_equalTo(1.5); + make.height.mas_equalTo(12.5); + make.right.mas_equalTo(self); + }]; + } + return self; +} +- (void)setIsDisplayLine:(bool)isDisplayLine { + self.line.hidden = !isDisplayLine; +} + +- (UIView *)line { + if (!_line) { + _line = [[UIView alloc] init]; + _line.backgroundColor = UIColorRGBAlpha(0x1E1E1E, 0.2); + [self addSubview:_line]; + } + return _line; +} + +@end + +@interface XPHomeCustomJXTitleView : JXCategoryTitleView +///VIP信息列表 +//@property (nonatomic, strong) NSArray *vipInfos; +@end + +@implementation XPHomeCustomJXTitleView + +- (Class)preferredCellClass{ + return XPHomeCustomJXTitleCell.class; +} +- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView + cellForItemAtIndexPath:(NSIndexPath *)indexPath { + XPHomeCustomJXTitleCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([self preferredCellClass]) forIndexPath:indexPath]; + cell.isDisplayLine = indexPath.row == self.titles.count - 1 ? NO : YES; + return cell; +} + +@end + +@interface XPHomeMineRoomCard : UIView + +@property (nonatomic, strong) HomeMineRoomModel *model; + +@property (nonatomic, strong) NetImageView *avatarImageView; +@property (nonatomic, strong) UILabel *roomNameLabel; +@property (nonatomic, strong) UILabel *descLabel; +@property (nonatomic, strong) UILabel *heatLabel; +@property (nonatomic, strong) UIView *miniAvatarsContainer; + +@end + +@implementation XPHomeMineRoomCard + +- (instancetype)init +{ + self = [super init]; + if (self) { + [self setupUI]; + } + return self; +} + +- (void)setModel:(HomeMineRoomModel *)model { + _model = model; + if (model) { + self.avatarImageView.imageUrl = model.avatar; + self.roomNameLabel.text = model.title; + self.descLabel.text = model.introduction; + self.heatLabel.text = [NSString stringWithFormat:@"%ld", model.onlineNum]; + + for (UIView *subView in self.miniAvatarsContainer.subviews) { + [subView removeFromSuperview]; + } + + NSInteger i = 0; + for (HomePlayMicUserModel *micUser in model.micUsers) { + NetImageConfig *config = [[NetImageConfig alloc]init]; + config.placeHolder = [UIImageConstant defaultAvatarPlaceholder]; + NetImageView *iconView = [[NetImageView alloc]initWithConfig:config]; + iconView.layer.cornerRadius = kGetScaleWidth(20)/2; + iconView.layer.masksToBounds = YES; + iconView.layer.borderWidth = 1; + iconView.layer.borderColor = [UIColor whiteColor].CGColor; + iconView.imageUrl = micUser.avatar; + [self.miniAvatarsContainer addSubview:iconView]; + CGFloat left = kGetScaleWidth(90) + i * kGetScaleWidth(16); + [iconView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.equalTo(self.miniAvatarsContainer); + make.leading.mas_equalTo(left); + make.width.height.mas_equalTo(20); + }]; + i++; + } + } else { + self.roomNameLabel.text = @"My room"; + self.descLabel.text = @"Welcome to my room"; + self.heatLabel.text = @"0"; + + for (UIView *subView in self.miniAvatarsContainer.subviews) { + [subView removeFromSuperview]; + } + + NetImageConfig *config = [[NetImageConfig alloc]init]; + config.placeHolder = [UIImageConstant defaultAvatarPlaceholder]; + NetImageView *iconView = [[NetImageView alloc]initWithConfig:config]; + iconView.layer.cornerRadius = kGetScaleWidth(20)/2; + iconView.layer.masksToBounds = YES; + iconView.layer.borderWidth = 1; + iconView.layer.borderColor = [UIColor whiteColor].CGColor; + [self.miniAvatarsContainer addSubview:iconView]; + [iconView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.equalTo(self.miniAvatarsContainer); + make.leading.mas_equalTo(self.miniAvatarsContainer); + make.width.height.mas_equalTo(20); + }]; + } +} + +- (void)setupUI { + UIImage *gradientColorImage = [UIImage gradientColorImageFromColors:@[[DJDKMIMOMColor colorWithHexString:@"#FFE993"], + [DJDKMIMOMColor colorWithHexString:@"#FDC36F"]] + gradientType:GradientTypeTopToBottom + imgSize:CGSizeMake(350, 100)]; + UIImageView *backgroundImageView = [[UIImageView alloc] initWithImage:gradientColorImage]; + backgroundImageView.layer.cornerRadius = 20; + backgroundImageView.clipsToBounds = YES; + [self addSubview:backgroundImageView]; + [backgroundImageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.center.mas_equalTo(self); + make.size.mas_equalTo(CGSizeMake(kGetScaleWidth(345), kGetScaleWidth(92))); + }]; + + [self addSubview:self.avatarImageView]; + [self.avatarImageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.top.mas_equalTo(backgroundImageView).offset(8); + make.bottom.mas_equalTo(backgroundImageView).offset(-8); + make.width.mas_equalTo(self.avatarImageView.mas_height); + }]; + + [self addSubview:self.roomNameLabel]; + [self.roomNameLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(backgroundImageView).offset(16); + make.left.mas_equalTo(self.avatarImageView.mas_right).offset(8); + make.right.mas_equalTo(backgroundImageView).offset(-8); + }]; + + [self addSubview:self.descLabel]; + [self.descLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(backgroundImageView).offset(40); + make.left.mas_equalTo(self.avatarImageView.mas_right).offset(8); + make.right.mas_equalTo(backgroundImageView).offset(-8); + }]; + + [self addSubview:self.heatLabel]; + [self.heatLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(backgroundImageView).offset(-8); + make.right.mas_equalTo(backgroundImageView).offset(-8); + }]; + + UIImageView *fireImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"ms_home_heat_icon"]]; + [self addSubview:fireImageView]; + [fireImageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(backgroundImageView).offset(-8); + make.right.mas_equalTo(self.heatLabel.mas_left).offset(-8); + }]; + + _miniAvatarsContainer = [[UIView alloc] init]; + [self addSubview:_miniAvatarsContainer]; + [_miniAvatarsContainer mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(backgroundImageView).offset(-8); + make.left.mas_equalTo(self.avatarImageView.mas_right).offset(8); + make.width.mas_equalTo(120); + make.height.mas_equalTo(20); + }]; +} + +- (NetImageView *)avatarImageView { + if (!_avatarImageView) { + NetImageConfig * config = [[NetImageConfig alloc]init]; + config.imageType = ImageTypeUserIcon; + config.placeHolder = [UIImageConstant defaultAvatarPlaceholder]; + _avatarImageView = [[NetImageView alloc] initWithConfig:config]; + _avatarImageView.backgroundColor = [DJDKMIMOMColor colorWithHexString:@"F5EDFF"]; + _avatarImageView.layer.masksToBounds = YES; + _avatarImageView.layer.cornerRadius = 56/2; + _avatarImageView.layer.borderColor = [UIColor whiteColor].CGColor; + _avatarImageView.layer.borderWidth = 1; + } + return _avatarImageView; +} + +- (UILabel *)roomNameLabel { + if (!_roomNameLabel) { + _roomNameLabel = [UILabel labelInitWithText:@"" + font:[UIFont systemFontOfSize:15 weight:UIFontWeightBold] + textColor:[DJDKMIMOMColor colorWithHexString:@"18181A"]]; + } + return _roomNameLabel; +} + +- (UILabel *)descLabel { + if (!_descLabel) { + _descLabel = [UILabel labelInitWithText:@"" + font:[UIFont systemFontOfSize:13 weight:UIFontWeightMedium] + textColor:[DJDKMIMOMColor colorWithHexString:@"18181A"]]; + } + return _descLabel; +} + +- (UILabel *)heatLabel { + if (!_heatLabel) { + _heatLabel = [UILabel labelInitWithText:@"" + font:[UIFont systemFontOfSize:13 weight:UIFontWeightMedium] + textColor:[DJDKMIMOMColor colorWithHexString:@"797B80"]]; + } + return _heatLabel; +} + +@end + +@interface XPHomeMineViewController () + +@property (nonatomic, strong) XPHomeMineRoomCard *headView; + +@property (nonatomic, assign) NSInteger currentIndex; +@property (nonatomic, strong) NSMutableDictionary *validListDict; @property (nonatomic, strong) JXPagerView *pagingView; -@property (nonatomic, strong) JXCategoryTitleView *titleView; +@property (nonatomic, strong) XPHomeCustomJXTitleView *titleView; @property (nonatomic, strong) NSMutableArray *tagModelList; @end @@ -29,8 +268,20 @@ - (void)viewDidLoad { [super viewDidLoad]; - [self.presenter getMyRoom]; - [self.presenter getMyCollectRooms]; + self.currentIndex = 0; + + [self setupNotifications]; + + [self setupUI]; + [self setupRefreshHeader]; + + [self setupDefaultTags]; +} + +- (void)viewDidAppear:(BOOL)animated { + [super viewDidAppear:animated]; + + [self.pagingView.mainTableView.mj_header beginRefreshing]; } - (BOOL)isHiddenNavBar { @@ -41,34 +292,86 @@ return [[XPHomeMinePresenter alloc] init]; } +- (void)setupNotifications { + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(homeVCRefreshComplete) + name:@"khomeVCRefreshComplete" + object:nil]; +} + +- (void)setupUI { + self.view.backgroundColor = [UIColor clearColor]; + [self.view addSubview:self.pagingView]; + [self.pagingView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.equalTo(self.view).mas_offset(kGetScaleWidth(8)); + make.leading.bottom.trailing.mas_equalTo(0); + }]; +} + +- (void)setupRefreshHeader { + MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(headerRefresh)]; + header.stateLabel.font = [UIFont systemFontOfSize:10.0]; + header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0]; + header.stateLabel.textColor = [DJDKMIMOMColor secondTextColor]; + header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor secondTextColor]; + self.pagingView.mainTableView.mj_header = header; +} + +- (void)setupDefaultTags { + NSMutableArray *titleArray = [NSMutableArray array]; + for (PIHomeCategoryTitleModel *model in self.tagModelList) { + [titleArray addObject:model.name]; + } + self.titleView.titles = titleArray; + [self.titleView reloadData]; + + [self headerRefresh]; +} + +#pragma mark - +- (void)headerRefresh { + [self.presenter getMyRoom]; + + PIHomeCategoryTitleModel *tagModel = [self.tagModelList xpSafeObjectAtIndex:self.currentIndex]; + XPHomePartyViewController *homeVC = [self.validListDict objectForKey:[NSNumber numberWithInteger:self.currentIndex]]; + homeVC.tagModel = tagModel; +} + +- (void)homeVCRefreshComplete { + [self.pagingView.mainTableView.mj_header endRefreshing]; + [self.pagingView.mainTableView.mj_footer endRefreshing]; +} + +#pragma mark - XPHomeMineProtocol +- (void)getMyRoomSuccess:(HomeMineRoomModel *)model { + self.headView.model = model; + [self.pagingView reloadData]; + [self.pagingView resizeTableHeaderViewHeightWithAnimatable:NO duration:0 curve:0]; + + [self.pagingView.mainTableView.mj_header endRefreshing]; +} + #pragma mark - JXPagerMainTableViewGestureDelegate - (BOOL)mainTableViewGestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { //禁止categoryView左右滑动的时候,上下和左右都可以滚动 if (otherGestureRecognizer.view == self.pagingView.listContainerView) { return NO; } -// if(otherGestureRecognizer.view.tag == 9000001){ -// return NO; -// } -// if(otherGestureRecognizer.view.tag == 9000002){ -// return NO; -// } -// -// if(otherGestureRecognizer.view.tag == 98777){ -// return NO; -// } - return [gestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]] && [otherGestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]]; } #pragma mark - JXCategoryViewDelegate -- (NSUInteger)tableHeaderViewHeightInPagerView:(JXPagerView *)pagerView { +- (void)categoryView:(JXCategoryBaseView *)categoryView didSelectedItemAtIndex:(NSInteger)index{ + self.currentIndex = index; +} - return kGetScaleWidth(170); +#pragma mark - JXCategoryViewDelegate +- (NSUInteger)tableHeaderViewHeightInPagerView:(JXPagerView *)pagerView { + return kGetScaleWidth(98); } - (UIView *)tableHeaderViewInPagerView:(JXPagerView *)pagerView { - return self.myRoomCard; + return self.headView; } - (NSUInteger)heightForPinSectionHeaderInPagerView:(JXPagerView *)pagerView { @@ -84,18 +387,22 @@ } - (id)pagerView:(JXPagerView *)pagerView initListAtIndex:(NSInteger)index { -// id homeV = [self.validListDict objectForKey:[NSNumber numberWithInteger:index]]; -// if (homeV) { -// return homeV; -// } + id homeV = [self.validListDict objectForKey:[NSNumber numberWithInteger:index]]; + if (homeV) { + return homeV; + } XPHomePartyViewController *homeVC = [[XPHomePartyViewController alloc] init]; homeVC.tagModel = [self.tagModelList xpSafeObjectAtIndex:index]; -// [self.validListDict setObject:homeVC forKey:@(index)]; + [self.validListDict setObject:homeVC forKey:@(index)]; return homeVC; } -- (UIView *)myRoomCard { - return [[UIView alloc] initWithFrame:CGRectMake(0, 0, 300, 94)]; +#pragma mark - +- (XPHomeMineRoomCard *)headView { + if (!_headView) { + _headView = [[XPHomeMineRoomCard alloc] init]; + } + return _headView; } - (JXPagerView *)pagingView { @@ -109,4 +416,65 @@ } return _pagingView; } + +- (NSMutableArray *)tagModelList{ + if(!_tagModelList){ + _tagModelList = [NSMutableArray array]; + + PIHomeCategoryTitleModel *recommendModel = [PIHomeCategoryTitleModel new]; + recommendModel.id = @"-11"; + recommendModel.name = @"最近";//YMLocalizedString(@"XPNewHomeViewController0"); + recommendModel.checkedWidth = [UILabel getWidthWithText:recommendModel.name height:kGetScaleWidth(27) font:kFontSemibold(14)]; + recommendModel.noCheckedWidth = [UILabel getWidthWithText:recommendModel.name height:kGetScaleWidth(27) font:kFontRegular(14)]; + recommendModel.isChecked = YES; + + PIHomeCategoryTitleModel *hotModel = [PIHomeCategoryTitleModel new]; + hotModel.id = @"-12"; + hotModel.name = @"收藏";//YMLocalizedString(@"XPNewHomeViewController1"); + hotModel.checkedWidth = [UILabel getWidthWithText:recommendModel.name height:kGetScaleWidth(27) font:kFontSemibold(14)]; + hotModel.noCheckedWidth = [UILabel getWidthWithText:recommendModel.name height:kGetScaleWidth(27) font:kFontRegular(14)]; + + [_tagModelList addObject:recommendModel]; + [_tagModelList addObject:hotModel]; + } + return _tagModelList; +} + +- (NSMutableDictionary *)validListDict{ + if(!_validListDict){ + _validListDict = [NSMutableDictionary dictionary]; + } + return _validListDict; +} + +- (XPHomeCustomJXTitleView *)titleView { + if (!_titleView) { + _titleView = [[XPHomeCustomJXTitleView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)]; + _titleView.delegate = self; + _titleView.titles = @[]; + _titleView.backgroundColor = [UIColor clearColor]; + _titleView.titleColor = UIColorFromRGB(0x767585); + _titleView.titleSelectedColor = UIColorFromRGB(0x1E1E1E); + _titleView.titleFont = kFontBold(14); + _titleView.titleSelectedFont = kFontBold(14); + _titleView.titleLabelAnchorPointStyle = JXCategoryTitleLabelAnchorPointStyleCenter; + _titleView.contentScrollViewClickTransitionAnimationEnabled = NO; + _titleView.defaultSelectedIndex = 0; + _titleView.averageCellSpacingEnabled = NO; + + _titleView.cellWidth = 50; + _titleView.cellSpacing = kGetScaleWidth(28); + + _titleView.listContainer = (id)self.pagingView.listContainerView; + + JXCategoryIndicatorImageView *indicator = [[JXCategoryIndicatorImageView alloc] init]; + indicator.indicatorImageView.image = [UIImage imageNamed:@"ms_hoem_index_icon"]; + indicator.indicatorImageViewSize = CGSizeMake(kGetScaleWidth(24), kGetScaleWidth(24)); + indicator.verticalMargin = -kGetScaleWidth(4); + indicator.contentMode = UIViewContentModeScaleAspectFit; + _titleView.indicators = @[indicator]; + } + return _titleView; +} + @end diff --git a/YuMi/Modules/YMNewHome/View/XPHomePagingViewController.m b/YuMi/Modules/YMNewHome/View/XPHomePagingViewController.m index 42c1d422..50911f0d 100644 --- a/YuMi/Modules/YMNewHome/View/XPHomePagingViewController.m +++ b/YuMi/Modules/YMNewHome/View/XPHomePagingViewController.m @@ -28,9 +28,12 @@ @implementation XPHomePagingViewController +- (BOOL)isHiddenNavBar { + return YES; +} + - (void)viewDidLoad { [super viewDidLoad]; - [self setup]; } @@ -49,9 +52,8 @@ _pageContainer.dataSource = self; _recommendVC = [[XPNewHomeViewController alloc] init]; _mineVC = [[XPHomeMineViewController alloc] init]; - _viewControllers = @[_mineVC, _recommendVC]; + _viewControllers = @[_recommendVC, _mineVC]; [self didTapRecommendButton]; -// [self didTapMineButton]; [self addChildViewController:_pageContainer]; [self.view addSubview:_pageContainer.view]; @@ -61,73 +63,93 @@ make.top.mas_equalTo(self.topControlView.mas_bottom); }]; [self.pageContainer didMoveToParentViewController:self]; + + for (UIView *view in self.pageContainer.view.subviews) { + if ([view isKindOfClass:[UIScrollView class]]) { + UIScrollView *scrollView = (UIScrollView *)view; + scrollView.scrollEnabled = NO; // 禁用滚动 + } + } } - (void)setupTopTheme { UIImageView *theme = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, kGetScaleWidth(223))]; -// home_top_bg theme.image = [UIImage imageNamed:@"home_top_bg"]; theme.contentMode = UIViewContentModeScaleAspectFill; [self.view addSubview:theme]; } - (void)setupTopControl { - // TODO: 转为 StackView 来做 baseline 对齐 - _topControlView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, 44+52)]; - _topControlView.backgroundColor = [UIColor colorWithWhite:0 alpha:0.4]; + _topControlView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, + KScreenWidth, + 44+[UIApplication sharedApplication].keyWindow.safeAreaInsets.top)]; + _topControlView.backgroundColor = [UIColor clearColor]; [self.view addSubview:_topControlView]; + _recommendButton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_recommendButton setTitle:YMLocalizedString(@"XPMonentsViewController2") forState:UIControlStateNormal]; + [_recommendButton addTarget:self + action:@selector(didTapRecommendButton) + forControlEvents:UIControlEventTouchUpInside]; + [_topControlView addSubview:_recommendButton]; + [_recommendButton mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(self.topControlView).offset(-8); + if (isMSRTL()) { + make.right.mas_equalTo(self.topControlView).offset(-16); + } else { + make.left.mas_equalTo(self.topControlView).offset(16); + } + }]; + _mineButton = [UIButton buttonWithType:UIButtonTypeCustom]; - [_mineButton setTitle:@"mine" forState:UIControlStateNormal]; + [_mineButton setTitle:YMLocalizedString(@"TabbarViewController5") forState:UIControlStateNormal]; [_mineButton addTarget:self action:@selector(didTapMineButton) forControlEvents:UIControlEventTouchUpInside]; [_topControlView addSubview:_mineButton]; [_mineButton mas_makeConstraints:^(MASConstraintMaker *make) { make.bottom.mas_equalTo(self.topControlView).offset(-8); - make.left.mas_equalTo(self.topControlView).offset(8); - }]; - - _recommendButton = [UIButton buttonWithType:UIButtonTypeCustom]; - [_recommendButton setTitle:@"recommend" forState:UIControlStateNormal]; - [_recommendButton addTarget:self - action:@selector(didTapRecommendButton) - forControlEvents:UIControlEventTouchUpInside]; - [_topControlView addSubview:_recommendButton]; - [_recommendButton mas_makeConstraints:^(MASConstraintMaker *make) { - make.bottom.mas_equalTo(self.topControlView).offset(-8); - make.left.mas_equalTo(_mineButton.mas_right).offset(8); + if (isMSRTL()) { + make.right.mas_equalTo(_recommendButton.mas_left).offset(-32); + } else { + make.left.mas_equalTo(_recommendButton.mas_right).offset(32); + } }]; UIButton *searchButton = [UIButton buttonWithType:UIButtonTypeCustom]; - [searchButton setTitle:@"搜索" forState:UIControlStateNormal]; + [searchButton setBackgroundImage:[UIImage imageNamed:@"home_nav_search"] forState:UIControlStateNormal]; [searchButton addTarget:self action:@selector(didTapSearchButton) forControlEvents:UIControlEventTouchUpInside]; [_topControlView addSubview:searchButton]; [searchButton mas_makeConstraints:^(MASConstraintMaker *make) { make.bottom.mas_equalTo(self.topControlView).offset(-8); - make.right.mas_equalTo(self.topControlView).offset(-8); + if (isMSRTL()) { + make.left.mas_equalTo(self.topControlView).offset(16); + } else { + make.right.mas_equalTo(self.topControlView).offset(-16); + } + make.width.height.mas_equalTo(16); }]; } - (void)displayMineTab { - [_mineButton.titleLabel setFont:[UIFont systemFontOfSize:21 weight:UIFontWeightBold]]; - [_recommendButton.titleLabel setFont:[UIFont systemFontOfSize:18 weight:UIFontWeightBold]]; + [_mineButton.titleLabel setFont:kFontBold(21)]; + [_recommendButton.titleLabel setFont:kFontBold(18)]; [_mineButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; [_recommendButton setTitleColor:[UIColor colorWithWhite:1 alpha:0.6] forState:UIControlStateNormal]; } - (void)displayRecommendTab { - [_mineButton.titleLabel setFont:[UIFont systemFontOfSize:18 weight:UIFontWeightBold]]; - [_recommendButton.titleLabel setFont:[UIFont systemFontOfSize:21 weight:UIFontWeightBold]]; + [_mineButton.titleLabel setFont:kFontBold(18)]; + [_recommendButton.titleLabel setFont:kFontBold(21)]; [_recommendButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; [_mineButton setTitleColor:[UIColor colorWithWhite:1 alpha:0.6] forState:UIControlStateNormal]; } #pragma mark - - (void)didTapMineButton { - [self.pageContainer setViewControllers:@[self.viewControllers[0]] + [self.pageContainer setViewControllers:@[self.viewControllers[1]] direction:UIPageViewControllerNavigationDirectionReverse animated:NO completion:nil]; @@ -135,7 +157,7 @@ } - (void)didTapRecommendButton { - [self.pageContainer setViewControllers:@[self.viewControllers[1]] + [self.pageContainer setViewControllers:@[self.viewControllers[0]] direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil]; @@ -152,18 +174,18 @@ #pragma mark - UIPageViewController Delegate & DataSource - (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController { - NSUInteger index = [self.viewControllers indexOfObject:viewController]; - if (index > 0) { - return self.viewControllers[index - 1]; - } +// NSUInteger index = [self.viewControllers indexOfObject:viewController]; +// if (index > 0) { +// return self.viewControllers[index - 1]; +// } return nil; } - (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController { - NSUInteger index = [self.viewControllers indexOfObject:viewController]; - if (index < self.viewControllers.count - 1) { - return self.viewControllers[index + 1]; - } +// NSUInteger index = [self.viewControllers indexOfObject:viewController]; +// if (index < self.viewControllers.count - 1) { +// return self.viewControllers[index + 1]; +// } return nil; } diff --git a/YuMi/Modules/YMNewHome/View/XPHomePartyViewController.m b/YuMi/Modules/YMNewHome/View/XPHomePartyViewController.m index 0d95497b..b301a051 100644 --- a/YuMi/Modules/YMNewHome/View/XPHomePartyViewController.m +++ b/YuMi/Modules/YMNewHome/View/XPHomePartyViewController.m @@ -51,8 +51,6 @@ [super viewDidLoad]; [self initSubViews]; [self initSubViewConstraints]; - - } #pragma mark - Private Method @@ -66,33 +64,37 @@ make.top.mas_equalTo(kGetScaleWidth(10)); make.leading.trailing.bottom.equalTo(self.view); }]; - MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(fooderRefresh)]; + MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRefresh)]; footer.stateLabel.textColor = [DJDKMIMOMColor secondTextColor]; footer.stateLabel.font = [UIFont systemFontOfSize:10.0]; self.collectionView.mj_footer = footer; - } - - - -#pragma mark - 刷新的fangfa +#pragma mark - 刷新的方法 - (void)headerRefresh { - if([self.tagModel.id isEqualToString:@"-1"]){ + self.page = 1; + if ([self.tagModel.id isEqualToString:@"-11"]) { + [self.presenter getMyCollectRooms:self.page]; + } else if ([self.tagModel.id isEqualToString:@"-12"]) { + [self.presenter getMyRecentRooms:self.page]; + } else if([self.tagModel.id isEqualToString:@"-1"]){ [self.presenter getHomePersonalRoomList]; - }else{ - self.page = 1; - [self.presenter getRecommendRoomList:self.tagModel.id page:self.page pageSize:50]; + } else{ + [self.presenter getRecommendRoomList:self.tagModel.id + page:self.page]; } } --(void)fooderRefresh{ - if([self.tagModel.id isEqualToString:@"-1"]){ +-(void)footerRefresh{ + self.page++; + if ([self.tagModel.id isEqualToString:@"-11"]) { + [self.presenter getMyCollectRooms:self.page]; + } else if ([self.tagModel.id isEqualToString:@"-12"]) { + [self.presenter getMyRecentRooms:self.page]; + } else if([self.tagModel.id isEqualToString:@"-1"]){ [self.collectionView.mj_footer endRefreshing]; - }else{ - self.page++; - [self.presenter getRecommendRoomList:self.tagModel.id page:self.page pageSize:20]; + [self.presenter getRecommendRoomList:self.tagModel.id page:self.page]; } } @@ -114,22 +116,16 @@ return self.datasource.count; } - - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath{ if(self.datasource.count == 0)return self.collectionView.frame.size; return CGSizeMake(kGetScaleWidth(345), kGetScaleWidth(92)); } -(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{ - - HomePlayRoomModel * roomInfo = [self.datasource xpSafeObjectAtIndex:indexPath.row]; - if (roomInfo.uid.length > 0) { - [XPRoomViewController openRoom:roomInfo.uid viewController:self]; - } - - - + if (roomInfo.uid.length > 0) { + [XPRoomViewController openRoom:roomInfo.uid viewController:self]; + } } #pragma mark - XPHomeProtocol @@ -141,6 +137,7 @@ self.datasource = [NSMutableArray arrayWithArray:list]; [self.collectionView reloadData]; } + - (void)getHomePersonalRoomListFail{ [[NSNotificationCenter defaultCenter]postNotificationName:@"khomeVCRefreshComplete" object:nil]; } @@ -163,6 +160,40 @@ [self.collectionView.mj_footer endRefreshing]; [[NSNotificationCenter defaultCenter]postNotificationName:@"khomeVCRefreshComplete" object:nil]; } + +- (void)getMineCollectRoomsSuccess:(NSArray *)rooms { + [[NSNotificationCenter defaultCenter]postNotificationName:@"khomeVCRefreshComplete" object:nil]; + [self.collectionView.mj_footer endRefreshing]; + for (HomePlayRoomModel *model in rooms) { + model.width = [UILabel getWidthWithText:@(model.onlineNum).stringValue + height:kGetScaleWidth(12) + font:kFontBold(10)] + 1; + } + if(self.page == 1){ + self.datasource = [NSMutableArray arrayWithArray:rooms]; + }else{ + [self.datasource addObjectsFromArray:rooms]; + } + [self.collectionView reloadData]; +} + +- (void)getMineRecentRoomsSuccess:(NSArray *)rooms { + [[NSNotificationCenter defaultCenter]postNotificationName:@"khomeVCRefreshComplete" object:nil]; + [self.collectionView.mj_footer endRefreshing]; + for (HomePlayRoomModel *model in rooms) { + model.width = [UILabel getWidthWithText:@(model.onlineNum).stringValue + height:kGetScaleWidth(12) + font:kFontBold(10)] + 1; + } + if(self.page == 1){ + self.datasource = [NSMutableArray arrayWithArray:rooms]; + }else{ + [self.datasource addObjectsFromArray:rooms]; + } + [self.collectionView reloadData]; +} + + #pragma mark - JXPagingViewListViewDelegate - (UIScrollView *)listScrollView { return self.collectionView; @@ -191,9 +222,6 @@ }); } - - - - (UICollectionView *)collectionView{ if (!_collectionView) { MSBaseRTLFlowLayout *layout = [[MSBaseRTLFlowLayout alloc] init]; diff --git a/YuMi/Modules/YMNewHome/View/XPNewHomeViewController.m b/YuMi/Modules/YMNewHome/View/XPNewHomeViewController.m index ea488f51..a96e7712 100644 --- a/YuMi/Modules/YMNewHome/View/XPNewHomeViewController.m +++ b/YuMi/Modules/YMNewHome/View/XPNewHomeViewController.m @@ -60,7 +60,7 @@ UIKIT_EXTERN NSString * const kOpenRoomNotification; ///背景 //@property (nonatomic,strong) UIImageView *backImageView; ///导航 -@property (nonatomic,strong) XPNewHomeNavView *navView; +//@property (nonatomic,strong) XPNewHomeNavView *navView; ///头视图 @property(nonatomic,strong) XPNewHomeHeadView *headView; ///分页标题 @@ -103,10 +103,13 @@ UIKIT_EXTERN NSString * const kOpenRoomNotification; - (void)viewDidLoad { [super viewDidLoad]; if(self.isEmpty == NO){ - [self.presenter getHomeTagList]; - [self initHttp]; [self initSubViews]; [self initSubViewConstraints]; + + [self requestCheckIp]; +// [self.presenter getHomeAllTopsData]; + [self.presenter getHomeTopData]; + [self.presenter getHomeTagList]; } } @@ -114,12 +117,16 @@ UIKIT_EXTERN NSString * const kOpenRoomNotification; [super viewWillAppear:animated]; } +- (void)viewDidAppear:(BOOL)animated { + [super viewDidAppear:animated]; + [self.pagingView.mainTableView.mj_header beginRefreshing]; +} + - (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated]; } - (void)tokenInvalid { - [[AccountInfoStorage instance] saveAccountInfo:nil]; [[AccountInfoStorage instance] saveTicket:nil]; if ([NIMSDK sharedSDK].loginManager.isLogined) { @@ -174,9 +181,8 @@ UIKIT_EXTERN NSString * const kOpenRoomNotification; self.pagingView.mainTableView.mj_header = header; [ClientConfig shareConfig].inviteCode = @""; - [self.pagingView.mainTableView.mj_header beginRefreshing]; +// [self.pagingView.mainTableView.mj_header beginRefreshing]; @kWeakify(self); - self.recommendVC.refreshComplete = ^{ @kStrongify(self); [self.pagingView.mainTableView.mj_header endRefreshing]; @@ -193,7 +199,8 @@ UIKIT_EXTERN NSString * const kOpenRoomNotification; [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(requestCheckIp) object:nil]; } -(void)headerRefresh{ - [self initHttp]; + [self.presenter getHomeTopData]; + [self.presenter getHomeRanks]; PIHomeCategoryTitleModel *tagModel = [self.tagModelList xpSafeObjectAtIndex:self.type]; XPHomePartyViewController *homeVC = [self.validListDict objectForKey:[NSNumber numberWithInteger:self.type]]; @@ -247,11 +254,6 @@ UIKIT_EXTERN NSString * const kOpenRoomNotification; }]; } -- (void)initHttp { - [self.presenter getHomeTopData]; - [self requestCheckIp]; -} - #pragma mark - XPNewHomeNavViewDelegate - (void)xPNewHomeNavView:(XPNewHomeNavView *)view didClickRank:(UIButton *)sender { XPWebViewController * webVC =[[XPWebViewController alloc] init]; @@ -301,7 +303,7 @@ UIKIT_EXTERN NSString * const kOpenRoomNotification; } #pragma mark - JXCategoryViewDelegate - (NSUInteger)tableHeaderViewHeightInPagerView:(JXPagerView *)pagerView { - + if (self.headView.itemList.count == 0 && self.headView.bannerList.count == 0){ return 0; }else if (self.headView.itemList.count > 0 && self.headView.bannerList.count == 0){ @@ -370,9 +372,26 @@ UIKIT_EXTERN NSString * const kOpenRoomNotification; [self.pagingView resizeTableHeaderViewHeightWithAnimatable:NO duration:0 curve:0]; } +- (void)getHomeTopDataSuccess:(NSArray *)resourceList + banners:(NSArray *)banners + rankAvatars:(NSArray *)rankAvatars { + self.headView.itemList = resourceList; + self.headView.bannerList = banners; + self.headView.rankAvatars = rankAvatars; + [self.pagingView reloadData]; + [self.pagingView resizeTableHeaderViewHeightWithAnimatable:NO duration:0 curve:0]; +} + +- (void)getHomeRanksSuccess:(NSArray *)resourceList +{ + self.headView.rankAvatars = resourceList; +} + ///获取所有的tag成功 - (void)getHomeTagListSuccess:(NSArray *)array{ - if(array.count == 0)return; + if(array.count == 0) { + return; + } NSMutableArray *list = [NSMutableArray new]; NSMutableArray *titleArray = [NSMutableArray array]; for (PIHomeCategoryTitleModel *model in array) { @@ -417,10 +436,10 @@ UIKIT_EXTERN NSString * const kOpenRoomNotification; [self showErrorToast:msg]; } -(void)requestCheckIp{ - if([AccountInfoStorage instance].getTicket.length > 0 && [AccountInfoStorage instance].name.length > 0){ + if([AccountInfoStorage instance].getTicket.length > 0 && + [AccountInfoStorage instance].name.length > 0){ [self.presenter checkIpRegionAction]; } - } ///选择 -(void)selectItemWithModel:(PIHomeItemModel *)model{ @@ -488,23 +507,23 @@ UIKIT_EXTERN NSString * const kOpenRoomNotification; _titleView.titles = @[]; _titleView.backgroundColor = [UIColor clearColor]; _titleView.titleColor = UIColorFromRGB(0x767585); - _titleView.titleSelectedColor = UIColorFromRGB(0x1E1E1F); - _titleView.titleFont = kFontRegular(14); - _titleView.titleSelectedFont = kFontSemibold(16); + _titleView.titleSelectedColor = UIColorFromRGB(0x1E1E1E); + _titleView.titleFont = kFontBold(14); + _titleView.titleSelectedFont = kFontBold(14); _titleView.titleLabelAnchorPointStyle = JXCategoryTitleLabelAnchorPointStyleCenter; _titleView.contentScrollViewClickTransitionAnimationEnabled = NO; _titleView.defaultSelectedIndex = 0; - + _titleView.cellSpacing = kGetScaleWidth(20); _titleView.listContainer = (id)self.pagingView.listContainerView; - JXCategoryIndicatorImageView * indocator = [[JXCategoryIndicatorImageView alloc] init]; - indocator.indicatorImageView.image = [UIImage imageNamed:@"ms_hoem_index_icon"]; - indocator.indicatorImageViewSize = CGSizeMake(kGetScaleWidth(24), kGetScaleWidth(24)); - indocator.verticalMargin = -kGetScaleWidth(4); - indocator.contentMode = UIViewContentModeScaleAspectFit; - _titleView.indicators = @[indocator]; + JXCategoryIndicatorImageView * indicator = [[JXCategoryIndicatorImageView alloc] init]; + indicator.indicatorImageView.image = [UIImage imageNamed:@"ms_hoem_index_icon"]; + indicator.indicatorImageViewSize = CGSizeMake(kGetScaleWidth(24), kGetScaleWidth(24)); + indicator.verticalMargin = -kGetScaleWidth(4); + indicator.contentMode = UIViewContentModeScaleAspectFit; + _titleView.indicators = @[indicator]; } return _titleView; } @@ -512,20 +531,6 @@ UIKIT_EXTERN NSString * const kOpenRoomNotification; - (NSMutableArray *)tagModelList{ if(!_tagModelList){ _tagModelList = [NSMutableArray array]; - PIHomeCategoryTitleModel *recommendModel = [PIHomeCategoryTitleModel new]; - recommendModel.id = @"-1"; - recommendModel.name = YMLocalizedString(@"XPNewHomeViewController0"); - recommendModel.checkedWidth = [UILabel getWidthWithText:recommendModel.name height:kGetScaleWidth(44) font:kFontSemibold(16)]; - recommendModel.noCheckedWidth = [UILabel getWidthWithText:recommendModel.name height:kGetScaleWidth(44) font:kFontRegular(14)]; - recommendModel.isChecked = YES; - - PIHomeCategoryTitleModel *hotModel = [PIHomeCategoryTitleModel new]; - hotModel.id = @"-2"; - hotModel.name = YMLocalizedString(@"XPNewHomeViewController1"); - hotModel.checkedWidth = [UILabel getWidthWithText:recommendModel.name height:kGetScaleWidth(44) font:kFontSemibold(16)]; - hotModel.noCheckedWidth = [UILabel getWidthWithText:recommendModel.name height:kGetScaleWidth(44) font:kFontRegular(14)]; -// [_tagModelList addObject:recommendModel]; -// [_tagModelList addObject:hotModel]; } return _tagModelList; } @@ -550,13 +555,13 @@ UIKIT_EXTERN NSString * const kOpenRoomNotification; -- (XPNewHomeNavView *)navView { - if (!_navView) { - _navView = [[XPNewHomeNavView alloc] init]; - _navView.delegate = self; - } - return _navView; -} +//- (XPNewHomeNavView *)navView { +// if (!_navView) { +// _navView = [[XPNewHomeNavView alloc] init]; +// _navView.delegate = self; +// } +// return _navView; +//} //- (UIImageView *)backImageView { // if (!_backImageView) { diff --git a/YuMi/Modules/YMRoom/View/ActivityContainerView/PIRoomActivityWebCell.m b/YuMi/Modules/YMRoom/View/ActivityContainerView/PIRoomActivityWebCell.m index ddee113f..dac4dfec 100644 --- a/YuMi/Modules/YMRoom/View/ActivityContainerView/PIRoomActivityWebCell.m +++ b/YuMi/Modules/YMRoom/View/ActivityContainerView/PIRoomActivityWebCell.m @@ -39,7 +39,7 @@ #pragma mark - 懒加载 - (NetImageView *)bgImageView{ if(!_bgImageView){ - NetImageConfig *config = [[NetImageConfig alloc]init]; config.placeHolder = [UIImageConstant defalutBannerPlaceholder]; + NetImageConfig *config = [[NetImageConfig alloc]init]; config.placeHolder = [UIImageConstant defaultBannerPlaceholder]; _bgImageView = [[NetImageView alloc]initWithConfig:config]; _bgImageView.contentMode = UIViewContentModeScaleAspectFill; _bgImageView.layer.cornerRadius = kGetScaleWidth(4); diff --git a/YuMi/Modules/YMRoom/View/BaseUIContainerView/XPRoomFunctionContainerView.m b/YuMi/Modules/YMRoom/View/BaseUIContainerView/XPRoomFunctionContainerView.m index f4ac0875..bcb83be5 100644 --- a/YuMi/Modules/YMRoom/View/BaseUIContainerView/XPRoomFunctionContainerView.m +++ b/YuMi/Modules/YMRoom/View/BaseUIContainerView/XPRoomFunctionContainerView.m @@ -287,10 +287,10 @@ make.width.mas_equalTo(22); make.height.mas_equalTo(22); }]; - CGFloat width = 60; + [self.contributeEnterView mas_makeConstraints:^(MASConstraintMaker *make) { make.height.mas_equalTo(22); - make.width.mas_equalTo(width); + make.width.mas_greaterThanOrEqualTo(60); }]; [self.topicStackView mas_makeConstraints:^(MASConstraintMaker *make) { @@ -308,6 +308,7 @@ - (void)configLittleGameState { RoomInfoModel * roomInfo = self.delegate.getRoomInfo; + self.contributeEnterView.title = roomInfo.serialValue.stringValue; if (roomInfo.isPermitRoom != PermitRoomType_Licnese && roomInfo.roomModeType != RoomModeType_Open_Blind && roomInfo.roomModeType != RoomModeType_Open_PK_Mode && roomInfo.roomModeType != RoomModeType_Open_AcrossRoomPK_mode && roomInfo.roomModeType != RoomModeType_Open_Micro_Mode && !roomInfo.leaveMode && roomInfo.uid == [AccountInfoStorage instance].getUid.integerValue) { if (!self.gameListView.superview) { [self addSubview:self.gameListView]; @@ -321,7 +322,6 @@ if (self.gameListView.superview) { [self.gameListView removeFromSuperview]; } - } } //自己是否在游戏中 @@ -531,7 +531,8 @@ } - (void)onRoomUpdate { RoomInfoModel * roomInfo = self.delegate.getRoomInfo; - + self.contributeEnterView.title = roomInfo.serialValue.stringValue; + MicroQueueModel * model = [self.delegate.getMicroQueue objectForKey:@"-1"]; if (roomInfo.roomModeType == RoomModeType_Open_Blind && model.userInfo && model.userInfo.uid == [AccountInfoStorage instance].getUid.integerValue) { if (!self.datingProgresButton.superview) { @@ -566,7 +567,7 @@ } [self updateHourRankEntrance]; if (roomInfo.type == RoomType_Anchor) { - self.contributeEnterView.title = YMLocalizedString(@"XPRoomFunctionContainerView7"); +// self.contributeEnterView.title = YMLocalizedString(@"XPRoomFunctionContainerView7"); if (roomInfo.hadChangeRoomType) { ///切换房间类型初始化当前用户与房间粉丝团关系 [Api requestInRoomFansTeam:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) { @@ -576,7 +577,7 @@ [self updateContrionEntranceWithRoomUid:[NSString stringWithFormat:@"%ld", roomInfo.uid] type:@"month"]; } } else { - self.contributeEnterView.title = YMLocalizedString(@"XPRoomFunctionContainerView5"); +// self.contributeEnterView.title = YMLocalizedString(@"XPRoomFunctionContainerView5"); [self.fansTeamEntranceView removeFromSuperview]; if (roomInfo.hadChangeRoomType) { [self updateContrionEntranceWithRoomUid:[NSString stringWithFormat:@"%ld", roomInfo.uid] type:@"day"]; @@ -593,10 +594,11 @@ - (void)onRoomEntered { RoomInfoModel * roomInfo = self.delegate.getRoomInfo; + self.contributeEnterView.title = roomInfo.serialValue.stringValue; NSString * roomUid = [NSString stringWithFormat:@"%ld", roomInfo.uid]; [self updateHourRankEntrance]; if (roomInfo.type == RoomType_Anchor) {//个播房 - self.contributeEnterView.title = YMLocalizedString(@"XPRoomFunctionContainerView7"); +// self.contributeEnterView.title = YMLocalizedString(@"XPRoomFunctionContainerView7"); ///进房初始化当前用户与房间粉丝团关系 [Api requestInRoomFansTeam:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) { XPAnchorFansRelationModel *model = [XPAnchorFansRelationModel modelWithJSON:data.data]; @@ -604,7 +606,7 @@ } teamUid:roomUid]; [self updateContrionEntranceWithRoomUid:roomUid type:@"month"];//获取房间榜前三名 } else { - self.contributeEnterView.title = YMLocalizedString(@"XPRoomFunctionContainerView7"); +// self.contributeEnterView.title = YMLocalizedString(@"XPRoomFunctionContainerView7"); [self updateContrionEntranceWithRoomUid:roomUid type:@"day"];//获取房间榜前三名 } if (![[AccountInfoStorage instance].getUid isEqualToString:roomUid]) {//非房主 @@ -681,11 +683,23 @@ } } +- (void)updateContributeEnterViewTitle:(AttachmentModel *)attachment { + if (attachment.first == 111 && attachment.second == 1110) { + NSNumber *num = [attachment.data objectForKey:@"serialValue"]; + if (num) { + self.contributeEnterView.title = num.stringValue; + } + } +} + - (void)handleNIMCustomMessage:(NIMMessage *)message { RoomInfoModel * roomInfo = self.delegate.getRoomInfo; NIMCustomObject *obj = (NIMCustomObject *)message.messageObject; if (obj.attachment != nil && [obj.attachment isKindOfClass:[AttachmentModel class]]) { AttachmentModel *attachment = (AttachmentModel *)obj.attachment; + + [self updateContributeEnterViewTitle:attachment]; + if (attachment.first == CustomMessageType_AnchorRoom_AudienceUpMic) { [self showAskForUpMic:attachment.data]; } else if(attachment.first == CustomMessageType_Gift && (attachment.second == Custom_Message_Sub_Gift_Send || attachment.second == Custom_Message_Sub_Gift_LuckySend || attachment.second == Custom_Message_Sub_Gift_ChannelNotify)) { @@ -1631,6 +1645,7 @@ - (void)configPlayMusicRoomTypeChange { RoomInfoModel * roomInfo = self.delegate.getRoomInfo; + self.contributeEnterView.title = roomInfo.serialValue.stringValue; if (roomInfo.type == RoomType_MiniGame) { [self pauseLayer:self.musicEnterButton.imageView.layer]; [self.musicEnterButton removeFromSuperview]; @@ -1667,6 +1682,7 @@ - (void)handleAcrollPKCountView:(long long)time { RoomInfoModel * roomInfo = self.delegate.getRoomInfo; + self.contributeEnterView.title = roomInfo.serialValue.stringValue; if (!self.acrossPKCountView.superview) { [self addSubview:self.acrossPKCountView]; [self bringSubviewToFront:self.acrossPKCountView]; @@ -1693,6 +1709,7 @@ - (void)configWishGiftEnter { RoomInfoModel * roomInfo = self.delegate.getRoomInfo; + self.contributeEnterView.title = roomInfo.serialValue.stringValue; NSString * roomUid = [NSString stringWithFormat:@"%ld", roomInfo.uid]; if (roomInfo.hasOpenWishGift) { [Api wishGiftList:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) { @@ -1727,6 +1744,7 @@ - (void)roomInfoUpdateConfigWishGift { RoomInfoModel * roomInfo = self.delegate.getRoomInfo; + self.contributeEnterView.title = roomInfo.serialValue.stringValue; if (roomInfo.datingState == RoomDatingStateChangeType_Close) { if (self.wishGiftView.superview) { self.wishGiftView.hidden = NO; diff --git a/YuMi/Modules/YMRoom/View/MessageContainerView/MsRoomMessagChatHallView.m b/YuMi/Modules/YMRoom/View/MessageContainerView/MsRoomMessagChatHallView.m index a4d95961..0c392b9e 100644 --- a/YuMi/Modules/YMRoom/View/MessageContainerView/MsRoomMessagChatHallView.m +++ b/YuMi/Modules/YMRoom/View/MessageContainerView/MsRoomMessagChatHallView.m @@ -550,7 +550,7 @@ return nil; } - (UIImage *)photoBrowser:(SDPhotoBrowser *)browser placeholderImageForIndex:(NSInteger)index { - return [UIImageConstant defalutBannerPlaceholder]; + return [UIImageConstant defaultBannerPlaceholder]; } #pragma mark - Getters And Setters - (UITableView *)messageTableView { diff --git a/YuMi/Modules/YMRoom/View/MessageContainerView/XPRoomMessageContainerView.m b/YuMi/Modules/YMRoom/View/MessageContainerView/XPRoomMessageContainerView.m index 61e8cd3e..34bc79af 100644 --- a/YuMi/Modules/YMRoom/View/MessageContainerView/XPRoomMessageContainerView.m +++ b/YuMi/Modules/YMRoom/View/MessageContainerView/XPRoomMessageContainerView.m @@ -1130,7 +1130,7 @@ NSString * const kRoomShowTopicKey = @"kRoomShowTopicKey"; return nil; } - (UIImage *)photoBrowser:(SDPhotoBrowser *)browser placeholderImageForIndex:(NSInteger)index { - return [UIImageConstant defalutBannerPlaceholder]; + return [UIImageConstant defaultBannerPlaceholder]; } #pragma mark - Getters And Setters - (UITableView *)messageTableView { diff --git a/YuMi/Modules/YMRoom/View/RoomPhotoAlbum/View/PIRoomPhotoAlbumItemVC.m b/YuMi/Modules/YMRoom/View/RoomPhotoAlbum/View/PIRoomPhotoAlbumItemVC.m index 94fbce40..e1440edf 100644 --- a/YuMi/Modules/YMRoom/View/RoomPhotoAlbum/View/PIRoomPhotoAlbumItemVC.m +++ b/YuMi/Modules/YMRoom/View/RoomPhotoAlbum/View/PIRoomPhotoAlbumItemVC.m @@ -393,7 +393,7 @@ return nil; } - (UIImage *)photoBrowser:(SDPhotoBrowser *)browser placeholderImageForIndex:(NSInteger)index { - return [UIImageConstant defalutBannerPlaceholder]; + return [UIImageConstant defaultBannerPlaceholder]; } #pragma mark - 懒加载 - (UICollectionView *)collectionView{ diff --git a/YuMi/Modules/YMRoom/View/RoomPhotoAlbum/View/SubViews/PIRoomPhotoAlbumChoosePhotoView.m b/YuMi/Modules/YMRoom/View/RoomPhotoAlbum/View/SubViews/PIRoomPhotoAlbumChoosePhotoView.m index 856baaf6..220df9ac 100644 --- a/YuMi/Modules/YMRoom/View/RoomPhotoAlbum/View/SubViews/PIRoomPhotoAlbumChoosePhotoView.m +++ b/YuMi/Modules/YMRoom/View/RoomPhotoAlbum/View/SubViews/PIRoomPhotoAlbumChoosePhotoView.m @@ -116,7 +116,7 @@ - (UIImage *)photoBrowser:(SDPhotoBrowser *)browser placeholderImageForIndex:(NSInteger)index { UIImage *image = [self.picList xpSafeObjectAtIndex:index]; - return image != nil ? image : [UIImageConstant defalutBannerPlaceholder]; + return image != nil ? image : [UIImageConstant defaultBannerPlaceholder]; } -(void)clickUploadPicturesAction{ if(self.chooseType == Photo_Type_Unlock){ diff --git a/YuMi/Modules/YMTabbar/View/TabbarViewController.m b/YuMi/Modules/YMTabbar/View/TabbarViewController.m index a709fc0a..835d4831 100644 --- a/YuMi/Modules/YMTabbar/View/TabbarViewController.m +++ b/YuMi/Modules/YMTabbar/View/TabbarViewController.m @@ -847,7 +847,7 @@ UIKIT_EXTERN NSString *kTabShowAnchorCardKey; #pragma mark - 房间最小化 - (void)configRoomMiniNView:(NSDictionary *)dic { UserInfoModel * userInfo = [UserInfoModel modelWithDictionary:dic[@"userInfo"]]; - RoomInfoModel * roomInfo = [RoomInfoModel modelWithDictionary:dic[@"roomInfo"]]; + RoomInfoModel * roomInfo = [RoomInfoModel modelWithDictionary:dic[@"roomInfo"]]; NSMutableDictionary * microQueue = dic[@"microQueue"]; [self.roomMineView configRoomMiniView:roomInfo userInfo:userInfo micQueue:microQueue]; }