@@ -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 = "<group>"; };
|
||||
54C3895D2C2189DD00FD47B1 /* XPHomeMinePresenter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPHomeMinePresenter.h; sourceTree = "<group>"; };
|
||||
54C3895E2C2189DD00FD47B1 /* XPHomeMinePresenter.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPHomeMinePresenter.m; sourceTree = "<group>"; };
|
||||
54C389602C23BD1600FD47B1 /* HomeRankAvatarModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HomeRankAvatarModel.h; sourceTree = "<group>"; };
|
||||
54C389612C23BD1600FD47B1 /* HomeRankAvatarModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HomeRankAvatarModel.m; sourceTree = "<group>"; };
|
||||
54C389642C24448900FD47B1 /* XPHomeMineProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPHomeMineProtocol.h; sourceTree = "<group>"; };
|
||||
54C389652C24464600FD47B1 /* HomeMineRoomModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HomeMineRoomModel.h; sourceTree = "<group>"; };
|
||||
54C389662C24464600FD47B1 /* HomeMineRoomModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HomeMineRoomModel.m; sourceTree = "<group>"; };
|
||||
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 = "<group>"; };
|
||||
9B0086C427BA392B0032BD2B /* AnchorStageView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AnchorStageView.h; sourceTree = "<group>"; };
|
||||
9B0086C527BA392B0032BD2B /* AnchorStageView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AnchorStageView.m; sourceTree = "<group>"; };
|
||||
@@ -9417,6 +9424,7 @@
|
||||
E87DF4E82A42CB24009C1185 /* XPHomeProtocol.h */,
|
||||
E87E62692A3F5756002F68C9 /* XPHomeContainerProtocol.h */,
|
||||
E87E627C2A3F5A63002F68C9 /* XPNewHomeRecommendProtocol.h */,
|
||||
54C389642C24448900FD47B1 /* XPHomeMineProtocol.h */,
|
||||
);
|
||||
path = Protocol;
|
||||
sourceTree = "<group>";
|
||||
@@ -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 = "<group>";
|
||||
@@ -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 */,
|
||||
|
Before Width: | Height: | Size: 530 B After Width: | Height: | Size: 869 B |
Before Width: | Height: | Size: 847 B After Width: | Height: | Size: 1.9 KiB |
22
YuMi/Assets.xcassets/main/home_rank_Headdress_first.imageset/Contents.json
vendored
Normal file
@@ -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
|
||||
}
|
||||
}
|
BIN
YuMi/Assets.xcassets/main/home_rank_Headdress_first.imageset/home_rank_Headdress_first@2x.png
vendored
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
YuMi/Assets.xcassets/main/home_rank_Headdress_first.imageset/home_rank_Headdress_first@3x.png
vendored
Normal file
After Width: | Height: | Size: 30 KiB |
22
YuMi/Assets.xcassets/main/home_rank_Headdress_second.imageset/Contents.json
vendored
Normal file
@@ -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
|
||||
}
|
||||
}
|
BIN
YuMi/Assets.xcassets/main/home_rank_Headdress_second.imageset/home_rank_Headdress_second@2x.png
vendored
Normal file
After Width: | Height: | Size: 7.4 KiB |
BIN
YuMi/Assets.xcassets/main/home_rank_Headdress_second.imageset/home_rank_Headdress_second@3x.png
vendored
Normal file
After Width: | Height: | Size: 15 KiB |
22
YuMi/Assets.xcassets/main/home_rank_Headdress_third.imageset/Contents.json
vendored
Normal file
@@ -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
|
||||
}
|
||||
}
|
BIN
YuMi/Assets.xcassets/main/home_rank_Headdress_third.imageset/home_rank_Headdress_third@2x.png
vendored
Normal file
After Width: | Height: | Size: 7.9 KiB |
BIN
YuMi/Assets.xcassets/main/home_rank_Headdress_third.imageset/home_rank_Headdress_third@3x.png
vendored
Normal file
After Width: | Height: | Size: 16 KiB |
22
YuMi/Assets.xcassets/main/home_rank_Heads_bg.imageset/Contents.json
vendored
Normal file
@@ -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
|
||||
}
|
||||
}
|
BIN
YuMi/Assets.xcassets/main/home_rank_Heads_bg.imageset/home_rank_Heads_bg@2x.png
vendored
Normal file
After Width: | Height: | Size: 32 KiB |
BIN
YuMi/Assets.xcassets/main/home_rank_Heads_bg.imageset/home_rank_Heads_bg@3x.png
vendored
Normal file
After Width: | Height: | Size: 64 KiB |
@@ -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;
|
||||
|
@@ -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"];
|
||||
}
|
||||
|
||||
|
@@ -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){
|
||||
|
@@ -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){
|
||||
|
@@ -240,7 +240,7 @@
|
||||
}
|
||||
|
||||
- (UIImage *)photoBrowser:(SDPhotoBrowser *)browser placeholderImageForIndex:(NSInteger)index {
|
||||
return [UIImageConstant defalutBannerPlaceholder];
|
||||
return [UIImageConstant defaultBannerPlaceholder];
|
||||
}
|
||||
|
||||
#pragma mark - Event Response
|
||||
|
@@ -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){
|
||||
|
@@ -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) {
|
||||
|
@@ -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;
|
||||
|
@@ -219,7 +219,7 @@
|
||||
}
|
||||
|
||||
- (UIImage *)photoBrowser:(SDPhotoBrowser *)browser placeholderImageForIndex:(NSInteger)index {
|
||||
return [UIImageConstant defalutBannerPlaceholder];
|
||||
return [UIImageConstant defaultBannerPlaceholder];
|
||||
}
|
||||
|
||||
#pragma mark - XPMonentsPhotoViewDelegate
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
28
YuMi/Modules/YMNewHome/Model/HomeMineRoomModel.h
Normal file
@@ -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<HomePlayMicUserModel *> *micUsers;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
12
YuMi/Modules/YMNewHome/Model/HomeMineRoomModel.m
Normal file
@@ -0,0 +1,12 @@
|
||||
//
|
||||
// HomeMineRoomModel.m
|
||||
// YuMi
|
||||
//
|
||||
// Created by P on 2024/6/20.
|
||||
//
|
||||
|
||||
#import "HomeMineRoomModel.h"
|
||||
|
||||
@implementation HomeMineRoomModel
|
||||
|
||||
@end
|
21
YuMi/Modules/YMNewHome/Model/HomeRankAvatarModel.h
Normal file
@@ -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
|
12
YuMi/Modules/YMNewHome/Model/HomeRankAvatarModel.m
Normal file
@@ -0,0 +1,12 @@
|
||||
//
|
||||
// HomeRankAvatarModel.m
|
||||
// YuMi
|
||||
//
|
||||
// Created by P on 2024/6/20.
|
||||
//
|
||||
|
||||
#import "HomeRankAvatarModel.h"
|
||||
|
||||
@implementation HomeRankAvatarModel
|
||||
|
||||
@end
|
@@ -19,7 +19,11 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
- (void)homeChatPick;
|
||||
///ip检测
|
||||
-(void)checkIpRegionAction;
|
||||
|
||||
- (void)getHomeTopData;
|
||||
- (void)getHomeAllTopsData;
|
||||
|
||||
- (void)getHomeRanks;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
@@ -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
|
||||
|
@@ -13,7 +13,8 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
- (void)getMyRoom;
|
||||
|
||||
- (void)getMyCollectRooms;
|
||||
- (void)getMyCollectRooms:(NSInteger)page;
|
||||
- (void)getMyRecentRooms:(NSInteger)page;
|
||||
|
||||
@end
|
||||
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
19
YuMi/Modules/YMNewHome/Protocol/XPHomeMineProtocol.h
Normal file
@@ -0,0 +1,19 @@
|
||||
//
|
||||
// XPHomeMineProtocol.h
|
||||
// YuMi
|
||||
//
|
||||
// Created by P on 2024/6/20.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
@class HomeMineRoomModel;
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@protocol XPHomeMineProtocol <NSObject>
|
||||
@optional
|
||||
///首页推荐房间的
|
||||
- (void)getMyRoomSuccess:(nullable HomeMineRoomModel *)model;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -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
|
||||
|
@@ -30,6 +30,8 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
///获取小游戏列表
|
||||
- (void)onGetLittleGameListSuccess:(NSArray<LittleGameInfoModel *> *)items;
|
||||
|
||||
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
@@ -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) {
|
||||
|
@@ -19,6 +19,7 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
@interface XPNewHomeHeadView : UIView
|
||||
@property (nonatomic,copy) NSArray<HomeBannerInfoModel *> *bannerList;
|
||||
@property(nonatomic,copy) NSArray *itemList;
|
||||
@property (nonatomic,copy) NSArray *rankAvatars;
|
||||
@property(nonatomic,weak) id<XPNewHomeHeadViewDelegate>delegate;
|
||||
@end
|
||||
|
||||
|
@@ -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;
|
||||
|
@@ -6,11 +6,14 @@
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#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<HomeRankAvatarModel*> *rankAvatarsModelArray;
|
||||
@property (nonatomic, copy) void(^didTapRankArea)(void);
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
@@ -6,9 +6,145 @@
|
||||
//
|
||||
|
||||
#import "XPNewHomeItemCell.h"
|
||||
@interface XPNewHomeItemCell ()
|
||||
|
||||
#import <SDCycleScrollView/SDCycleScrollView.h>
|
||||
#import "PIHomeItemModel.h"
|
||||
#import "HomeRankAvatarModel.h"
|
||||
|
||||
@interface XPRankAvatarsCell : UICollectionViewCell
|
||||
@property (nonatomic, strong) NSArray<HomeRankAvatarModel*> *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<HomeRankAvatarModel *> *)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 () <SDCycleScrollViewDelegate>
|
||||
///背景
|
||||
@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<HomeRankAvatarModel *> *)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
|
||||
|
||||
|
@@ -15,12 +15,251 @@
|
||||
#import "XPHomePartyViewController.h"
|
||||
#import "PIHomeCategoryTitleModel.h"
|
||||
|
||||
@interface XPHomeMineViewController () <JXPagerViewDelegate, JXPagerMainTableViewGestureDelegate>
|
||||
#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<NobleInfo *> *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 () <JXCategoryViewDelegate, JXPagerViewDelegate, JXPagerMainTableViewGestureDelegate, XPHomeMineProtocol>
|
||||
|
||||
@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<PIHomeCategoryTitleModel *> *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<JXPagerViewListViewDelegate>)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<PIHomeCategoryTitleModel *> *)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<JXCategoryViewListContainer>)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
|
||||
|
@@ -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;
|
||||
}
|
||||
|
||||
|
@@ -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];
|
||||
|
@@ -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<PIHomeCategoryTitleModel *> *)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<JXCategoryViewListContainer>)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<PIHomeCategoryTitleModel *> *)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) {
|
||||
|
@@ -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);
|
||||
|
@@ -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;
|
||||
|
@@ -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 {
|
||||
|
@@ -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 {
|
||||
|
@@ -393,7 +393,7 @@
|
||||
return nil;
|
||||
}
|
||||
- (UIImage *)photoBrowser:(SDPhotoBrowser *)browser placeholderImageForIndex:(NSInteger)index {
|
||||
return [UIImageConstant defalutBannerPlaceholder];
|
||||
return [UIImageConstant defaultBannerPlaceholder];
|
||||
}
|
||||
#pragma mark - 懒加载
|
||||
- (UICollectionView *)collectionView{
|
||||
|
@@ -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){
|
||||
|
@@ -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];
|
||||
}
|
||||
|