diff --git a/xplan-ios.xcodeproj/project.pbxproj b/xplan-ios.xcodeproj/project.pbxproj index 05fb897c..aa0c945a 100644 --- a/xplan-ios.xcodeproj/project.pbxproj +++ b/xplan-ios.xcodeproj/project.pbxproj @@ -169,6 +169,13 @@ E833ED0D274FAD1C00A2463B /* XPKickUserModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E833ED0C274FAD1C00A2463B /* XPKickUserModel.m */; }; E838D9A0275E1BF60079E0B5 /* XPRoomAnimationView.m in Sources */ = {isa = PBXBuildFile; fileRef = E838D99F275E1BF60079E0B5 /* XPRoomAnimationView.m */; }; E83953222769F33B00CF2F24 /* XPRoomFunctionContainerView.m in Sources */ = {isa = PBXBuildFile; fileRef = E83953212769F33B00CF2F24 /* XPRoomFunctionContainerView.m */; }; + E839532A276A002800CF2F24 /* XPMineDressUpViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E8395329276A002800CF2F24 /* XPMineDressUpViewController.m */; }; + E839532D276A030F00CF2F24 /* XPMineDressUpListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E839532C276A030F00CF2F24 /* XPMineDressUpListViewController.m */; }; + E8395331276A03AE00CF2F24 /* Api+DressUp.m in Sources */ = {isa = PBXBuildFile; fileRef = E8395330276A03AE00CF2F24 /* Api+DressUp.m */; }; + E8395334276A03C300CF2F24 /* XPMineDressUpPresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = E8395333276A03C300CF2F24 /* XPMineDressUpPresenter.m */; }; + E8395339276A0CC100CF2F24 /* XPMineHeadwearTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E8395338276A0CC100CF2F24 /* XPMineHeadwearTableViewCell.m */; }; + E839533C276A0CCD00CF2F24 /* XPMineCarTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E839533B276A0CCD00CF2F24 /* XPMineCarTableViewCell.m */; }; + E839533F276A0CDB00CF2F24 /* XPMineNameplateTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E839533E276A0CDB00CF2F24 /* XPMineNameplateTableViewCell.m */; }; E83DB47A27462C4500D8CBD1 /* XPGiftBigPrizeModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E83DB47927462C4500D8CBD1 /* XPGiftBigPrizeModel.m */; }; E83DB47D2746372300D8CBD1 /* XPRoomGiftBannerView.m in Sources */ = {isa = PBXBuildFile; fileRef = E83DB47C2746372300D8CBD1 /* XPRoomGiftBannerView.m */; }; E83DB481274649FB00D8CBD1 /* XPGiftBannerUserInfoModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E83DB480274649FB00D8CBD1 /* XPGiftBannerUserInfoModel.m */; }; @@ -665,6 +672,21 @@ E838D99F275E1BF60079E0B5 /* XPRoomAnimationView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomAnimationView.m; sourceTree = ""; }; E83953202769F33B00CF2F24 /* XPRoomFunctionContainerView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomFunctionContainerView.h; sourceTree = ""; }; E83953212769F33B00CF2F24 /* XPRoomFunctionContainerView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomFunctionContainerView.m; sourceTree = ""; }; + E8395328276A002800CF2F24 /* XPMineDressUpViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineDressUpViewController.h; sourceTree = ""; }; + E8395329276A002800CF2F24 /* XPMineDressUpViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineDressUpViewController.m; sourceTree = ""; }; + E839532B276A030F00CF2F24 /* XPMineDressUpListViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineDressUpListViewController.h; sourceTree = ""; }; + E839532C276A030F00CF2F24 /* XPMineDressUpListViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineDressUpListViewController.m; sourceTree = ""; }; + E839532F276A03AE00CF2F24 /* Api+DressUp.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Api+DressUp.h"; sourceTree = ""; }; + E8395330276A03AE00CF2F24 /* Api+DressUp.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "Api+DressUp.m"; sourceTree = ""; }; + E8395332276A03C300CF2F24 /* XPMineDressUpPresenter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineDressUpPresenter.h; sourceTree = ""; }; + E8395333276A03C300CF2F24 /* XPMineDressUpPresenter.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineDressUpPresenter.m; sourceTree = ""; }; + E8395335276A03E200CF2F24 /* XPMineDressUpProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineDressUpProtocol.h; sourceTree = ""; }; + E8395337276A0CC100CF2F24 /* XPMineHeadwearTableViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineHeadwearTableViewCell.h; sourceTree = ""; }; + E8395338276A0CC100CF2F24 /* XPMineHeadwearTableViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineHeadwearTableViewCell.m; sourceTree = ""; }; + E839533A276A0CCD00CF2F24 /* XPMineCarTableViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineCarTableViewCell.h; sourceTree = ""; }; + E839533B276A0CCD00CF2F24 /* XPMineCarTableViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineCarTableViewCell.m; sourceTree = ""; }; + E839533D276A0CDB00CF2F24 /* XPMineNameplateTableViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineNameplateTableViewCell.h; sourceTree = ""; }; + E839533E276A0CDB00CF2F24 /* XPMineNameplateTableViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineNameplateTableViewCell.m; sourceTree = ""; }; E83DB47827462C4500D8CBD1 /* XPGiftBigPrizeModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPGiftBigPrizeModel.h; sourceTree = ""; }; E83DB47927462C4500D8CBD1 /* XPGiftBigPrizeModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPGiftBigPrizeModel.m; sourceTree = ""; }; E83DB47B2746372300D8CBD1 /* XPRoomGiftBannerView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomGiftBannerView.h; sourceTree = ""; }; @@ -1892,6 +1914,76 @@ path = AnimationView; sourceTree = ""; }; + E83953232769FF2400CF2F24 /* DressUp */ = { + isa = PBXGroup; + children = ( + E83953272769FFF100CF2F24 /* Model */, + E839532E276A038500CF2F24 /* Api */, + E83953242769FFD000CF2F24 /* View */, + E83953262769FFE200CF2F24 /* Presenter */, + E83953252769FFD900CF2F24 /* Protocol */, + ); + path = DressUp; + sourceTree = ""; + }; + E83953242769FFD000CF2F24 /* View */ = { + isa = PBXGroup; + children = ( + E8395336276A0C9400CF2F24 /* Cell */, + E8395328276A002800CF2F24 /* XPMineDressUpViewController.h */, + E8395329276A002800CF2F24 /* XPMineDressUpViewController.m */, + E839532B276A030F00CF2F24 /* XPMineDressUpListViewController.h */, + E839532C276A030F00CF2F24 /* XPMineDressUpListViewController.m */, + ); + path = View; + sourceTree = ""; + }; + E83953252769FFD900CF2F24 /* Protocol */ = { + isa = PBXGroup; + children = ( + E8395335276A03E200CF2F24 /* XPMineDressUpProtocol.h */, + ); + path = Protocol; + sourceTree = ""; + }; + E83953262769FFE200CF2F24 /* Presenter */ = { + isa = PBXGroup; + children = ( + E8395332276A03C300CF2F24 /* XPMineDressUpPresenter.h */, + E8395333276A03C300CF2F24 /* XPMineDressUpPresenter.m */, + ); + path = Presenter; + sourceTree = ""; + }; + E83953272769FFF100CF2F24 /* Model */ = { + isa = PBXGroup; + children = ( + ); + path = Model; + sourceTree = ""; + }; + E839532E276A038500CF2F24 /* Api */ = { + isa = PBXGroup; + children = ( + E839532F276A03AE00CF2F24 /* Api+DressUp.h */, + E8395330276A03AE00CF2F24 /* Api+DressUp.m */, + ); + path = Api; + sourceTree = ""; + }; + E8395336276A0C9400CF2F24 /* Cell */ = { + isa = PBXGroup; + children = ( + E8395337276A0CC100CF2F24 /* XPMineHeadwearTableViewCell.h */, + E8395338276A0CC100CF2F24 /* XPMineHeadwearTableViewCell.m */, + E839533A276A0CCD00CF2F24 /* XPMineCarTableViewCell.h */, + E839533B276A0CCD00CF2F24 /* XPMineCarTableViewCell.m */, + E839533D276A0CDB00CF2F24 /* XPMineNameplateTableViewCell.h */, + E839533E276A0CDB00CF2F24 /* XPMineNameplateTableViewCell.m */, + ); + path = Cell; + sourceTree = ""; + }; E83DB47E274649B200D8CBD1 /* Model */ = { isa = PBXGroup; children = ( @@ -2689,6 +2781,7 @@ E8E70D7126F2EB4900F03460 /* View */ = { isa = PBXGroup; children = ( + E83953232769FF2400CF2F24 /* DressUp */, E8E70D8026F2F3C500F03460 /* Cell */, E8E70D7F26F2F39000F03460 /* SubViews */, E8E70D7526F2F15100F03460 /* XPMineViewController.h */, @@ -2986,6 +3079,7 @@ files = ( 181D7F1B2726CE2A00B7C059 /* StageView.m in Sources */, 18EE3FF12750D2AD00A452BF /* NIMTimeUtils.m in Sources */, + E839532D276A030F00CF2F24 /* XPMineDressUpListViewController.m in Sources */, E8B846D826FDE17300A777FE /* XPMineRechargeProtocol.h in Sources */, E8B846C726FDB45000A777FE /* XPMineUserInfoAlbumProtocol.h in Sources */, E8DEC992276441AA0078CB70 /* XPCandyTreeAnimationModel.m in Sources */, @@ -3121,6 +3215,7 @@ E816C11527608A7500C84014 /* XPRoomMiniManager.m in Sources */, E8EEB91726FC7B35007C6EBA /* XPMineUserInfoDesViewController.m in Sources */, 180806FB2729A354001FD836 /* ThemeColor+Room.m in Sources */, + E8395331276A03AE00CF2F24 /* Api+DressUp.m in Sources */, E8DEC99E2764A5B60078CB70 /* XPRoomMoreMenuViewController.m in Sources */, E82325F2274E2DE6003A3332 /* XPUserCardViewController.m in Sources */, E8E70D8626F2F55C00F03460 /* XPMineAccountView.m in Sources */, @@ -3191,7 +3286,9 @@ 189DD56526DE465A00AB55B1 /* LoginViewController.m in Sources */, E824544B26F5BBB800BE8163 /* XPMineModifPayPwdViewController.m in Sources */, E8A1E4512762082A00B294CA /* Api+CandyTree.m in Sources */, + E839533C276A0CCD00CF2F24 /* XPMineCarTableViewCell.m in Sources */, E8EEB8FE26FC2DF8007C6EBA /* XPMineUserInfoCustomNavView.m in Sources */, + E839532A276A002800CF2F24 /* XPMineDressUpViewController.m in Sources */, E88B5CAD26FB16A800DA9178 /* XPMineTeenagerDesView.m in Sources */, E8C6FFDA2754BE81004DC9F0 /* ThemeColor+Home.m in Sources */, E824545126F5CE6E00BE8163 /* XPMineModifPayPwdPresenter.m in Sources */, @@ -3232,6 +3329,7 @@ 18EE3FEE2750CE6D00A452BF /* NIMMessageUtils.m in Sources */, E8DEC9AC2764A6CD0078CB70 /* XPRoomMoreMenuCollectionViewCell.m in Sources */, 9B7D804A2753783D003DAC0C /* SessionViewController.m in Sources */, + E839533F276A0CDB00CF2F24 /* XPMineNameplateTableViewCell.m in Sources */, E8B846BC26FD7C1200A777FE /* UploadImage.m in Sources */, 186A534D26FC6ED900D67B2C /* TTActionSheetView.m in Sources */, E83DB481274649FB00D8CBD1 /* XPGiftBannerUserInfoModel.m in Sources */, @@ -3262,9 +3360,12 @@ E89D60BA271D643A001F8895 /* Api+Room.m in Sources */, E872308926E89BE000B90D4F /* LoginPhoneViewController.m in Sources */, E8C6FFEA2755040B004DC9F0 /* XPHomeSearchNavView.m in Sources */, + E8395339276A0CC100CF2F24 /* XPMineHeadwearTableViewCell.m in Sources */, 18E7B29026EA0E6B0064BC9B /* FlutterBoost+Xplan.m in Sources */, E8B846DC26FDE24300A777FE /* RechargeListModel.m in Sources */, E884C36C2743951B00E1EBED /* GiftReceiveInfoModel.m in Sources */, + E839531E2769CCCE00CF2F24 /* RoomRankModel.m in Sources */, + E8395334276A03C300CF2F24 /* XPMineDressUpPresenter.m in Sources */, 189DD75926E6003C00AB55B1 /* Api.m in Sources */, E8133916273E532D00708B66 /* XPGiftItemCollectionViewCell.m in Sources */, E833ED0D274FAD1C00A2463B /* XPKickUserModel.m in Sources */, diff --git a/xplan-ios/Main/Mine/View/DressUp/Api/Api+DressUp.h b/xplan-ios/Main/Mine/View/DressUp/Api/Api+DressUp.h new file mode 100644 index 00000000..4b1b778c --- /dev/null +++ b/xplan-ios/Main/Mine/View/DressUp/Api/Api+DressUp.h @@ -0,0 +1,58 @@ +// +// Api+DressUp.h +// xplan-ios +// +// Created by 冯硕 on 2021/12/15. +// + +#import "Api.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface Api (DressUp) +/// 获取头饰列表 +/// @param completion 完成 +/// @param ticket ticket +/// @param uid uid ++ (void)headwearList:(HttpRequestHelperCompletion)completion ticket:(NSString *)ticket uid:(NSString *)uid; + +/// 获取座驾列表 +/// @param completion 完成 +/// @param ticket ticket +/// @param uid uid ++ (void)carList:(HttpRequestHelperCompletion)completion ticket:(NSString *)ticket uid:(NSString *)uid; + +/// 获取铭牌列表 +/// @param completion 完成 +/// @param ticket ticket +/// @param uid uid ++ (void)nameplatList:(HttpRequestHelperCompletion)completion ticket:(NSString *)ticket uid:(NSString *)uid page:(NSString *)page pageSize:(NSString *)pageSize; + +/// 使用头饰 +/// @param completion 完成 +/// @param headwearId 头饰id 0 取消使用头饰 +/// @param ticket ticket +/// @param uid uid ++ (void)useHeadWear:(HttpRequestHelperCompletion)completion headwearId:(NSString *)headwearId ticket:(NSString *)ticket uid:(NSString *)uid; + +/// 使用座驾 +/// @param completion 完成 +/// @param carId 座驾id 0 取消使用座驾 +/// @param ticket ticket +/// @param uid uid ++ (void)useCar:(HttpRequestHelperCompletion)completion carId:(NSString *)carId ticket:(NSString *)ticket uid:(NSString *)uid; + +/// 使用座驾 +/// @param completion 完成 +/// @param userNameplateId 座驾id 0 取消使用座驾 +/// @param ticket ticket +/// @param uid uid ++ (void)useNamePlate:(HttpRequestHelperCompletion)completion userNameplateId:(NSString *)userNameplateId ticket:(NSString *)ticket uid:(NSString *)uid; + +/// 活动 +/// @param completion 完成 +/// @param type 类型 2 房间的 1 首页的 3 我的装扮 ++ (void)dressupBannerList:(HttpRequestHelperCompletion)completion type:(NSString *)type; +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Mine/View/DressUp/Api/Api+DressUp.m b/xplan-ios/Main/Mine/View/DressUp/Api/Api+DressUp.m new file mode 100644 index 00000000..fe9d8ee6 --- /dev/null +++ b/xplan-ios/Main/Mine/View/DressUp/Api/Api+DressUp.m @@ -0,0 +1,70 @@ +// +// Api+DressUp.m +// xplan-ios +// +// Created by 冯硕 on 2021/12/15. +// + +#import "Api+DressUp.h" + +@implementation Api (DressUp) + +/// 获取头饰列表 +/// @param completion 完成 +/// @param ticket ticket +/// @param uid uid ++ (void)headwearList:(HttpRequestHelperCompletion)completion ticket:(NSString *)ticket uid:(NSString *)uid { + [self makeRequest:@"headwear/v2/user/list" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, ticket, uid, nil]; +} + +/// 获取座驾列表 +/// @param completion 完成 +/// @param ticket ticket +/// @param uid uid ++ (void)carList:(HttpRequestHelperCompletion)completion ticket:(NSString *)ticket uid:(NSString *)uid { + [self makeRequest:@"car/carport/v2/list" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, ticket, uid, nil]; +} + +/// 获取铭牌列表 +/// @param completion 完成 +/// @param ticket ticket +/// @param uid uid ++ (void)nameplatList:(HttpRequestHelperCompletion)completion ticket:(NSString *)ticket uid:(NSString *)uid page:(NSString *)page pageSize:(NSString *)pageSize { + [self makeRequest:@"nameplate/userNameplateList" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, ticket, uid, page, pageSize, nil]; +} + +/// 使用头饰 +/// @param completion 完成 +/// @param headwearId 头饰id 0 取消使用头饰 +/// @param ticket ticket +/// @param uid uid ++ (void)useHeadWear:(HttpRequestHelperCompletion)completion headwearId:(NSString *)headwearId ticket:(NSString *)ticket uid:(NSString *)uid { + [self makeRequest:@"v1/user/headwear/use" method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, headwearId, ticket, uid, nil]; +} + +/// 使用座驾 +/// @param completion 完成 +/// @param carId 座驾id 0 取消使用座驾 +/// @param ticket ticket +/// @param uid uid ++ (void)useCar:(HttpRequestHelperCompletion)completion carId:(NSString *)carId ticket:(NSString *)ticket uid:(NSString *)uid { + [self makeRequest:@"car/carport/use" method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, carId, ticket, uid, nil]; +} + +/// 使用座驾 +/// @param completion 完成 +/// @param userNameplateId 座驾id 0 取消使用座驾 +/// @param ticket ticket +/// @param uid uid ++ (void)useNamePlate:(HttpRequestHelperCompletion)completion userNameplateId:(NSString *)userNameplateId ticket:(NSString *)ticket uid:(NSString *)uid { + [self makeRequest:@"nameplate/useNameplate" method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, userNameplateId, ticket, uid, nil]; +} + +/// 活动 +/// @param completion 完成 +/// @param type 类型 2 房间的 1 首页的 3 我的装扮 ++ (void)dressupBannerList:(HttpRequestHelperCompletion)completion type:(NSString *)type { + [self makeRequest:@"home/banner" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, type, nil]; +} + +@end diff --git a/xplan-ios/Main/Mine/View/DressUp/Presenter/XPMineDressUpPresenter.h b/xplan-ios/Main/Mine/View/DressUp/Presenter/XPMineDressUpPresenter.h new file mode 100644 index 00000000..e1b2990b --- /dev/null +++ b/xplan-ios/Main/Mine/View/DressUp/Presenter/XPMineDressUpPresenter.h @@ -0,0 +1,16 @@ +// +// DressUpPresenter.h +// xplan-ios +// +// Created by 冯硕 on 2021/12/15. +// + +#import "BaseMvpPresenter.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface XPMineDressUpPresenter : BaseMvpPresenter + +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Mine/View/DressUp/Presenter/XPMineDressUpPresenter.m b/xplan-ios/Main/Mine/View/DressUp/Presenter/XPMineDressUpPresenter.m new file mode 100644 index 00000000..e822ed44 --- /dev/null +++ b/xplan-ios/Main/Mine/View/DressUp/Presenter/XPMineDressUpPresenter.m @@ -0,0 +1,12 @@ +// +// DressUpPresenter.m +// xplan-ios +// +// Created by 冯硕 on 2021/12/15. +// + +#import "XPMineDressUpPresenter.h" + +@implementation XPMineDressUpPresenter + +@end diff --git a/xplan-ios/Main/Mine/View/DressUp/Protocol/XPMineDressUpProtocol.h b/xplan-ios/Main/Mine/View/DressUp/Protocol/XPMineDressUpProtocol.h new file mode 100644 index 00000000..9ab53ba7 --- /dev/null +++ b/xplan-ios/Main/Mine/View/DressUp/Protocol/XPMineDressUpProtocol.h @@ -0,0 +1,16 @@ +// +// XPMineDressUpProtocol.h +// xplan-ios +// +// Created by 冯硕 on 2021/12/15. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol XPMineDressUpProtocol + +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Mine/View/DressUp/View/Cell/XPMineCarTableViewCell.h b/xplan-ios/Main/Mine/View/DressUp/View/Cell/XPMineCarTableViewCell.h new file mode 100644 index 00000000..b3dbd320 --- /dev/null +++ b/xplan-ios/Main/Mine/View/DressUp/View/Cell/XPMineCarTableViewCell.h @@ -0,0 +1,16 @@ +// +// XPMineCarTableViewCell.h +// xplan-ios +// +// Created by 冯硕 on 2021/12/15. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface XPMineCarTableViewCell : UITableViewCell + +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Mine/View/DressUp/View/Cell/XPMineCarTableViewCell.m b/xplan-ios/Main/Mine/View/DressUp/View/Cell/XPMineCarTableViewCell.m new file mode 100644 index 00000000..87b93826 --- /dev/null +++ b/xplan-ios/Main/Mine/View/DressUp/View/Cell/XPMineCarTableViewCell.m @@ -0,0 +1,23 @@ +// +// XPMineCarTableViewCell.m +// xplan-ios +// +// Created by 冯硕 on 2021/12/15. +// + +#import "XPMineCarTableViewCell.h" + +@implementation XPMineCarTableViewCell + +- (void)awakeFromNib { + [super awakeFromNib]; + // Initialization code +} + +- (void)setSelected:(BOOL)selected animated:(BOOL)animated { + [super setSelected:selected animated:animated]; + + // Configure the view for the selected state +} + +@end diff --git a/xplan-ios/Main/Mine/View/DressUp/View/Cell/XPMineHeadwearTableViewCell.h b/xplan-ios/Main/Mine/View/DressUp/View/Cell/XPMineHeadwearTableViewCell.h new file mode 100644 index 00000000..e1caef8e --- /dev/null +++ b/xplan-ios/Main/Mine/View/DressUp/View/Cell/XPMineHeadwearTableViewCell.h @@ -0,0 +1,16 @@ +// +// XPMineHeadwearTableViewCell.h +// xplan-ios +// +// Created by 冯硕 on 2021/12/15. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface XPMineHeadwearTableViewCell : UITableViewCell + +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Mine/View/DressUp/View/Cell/XPMineHeadwearTableViewCell.m b/xplan-ios/Main/Mine/View/DressUp/View/Cell/XPMineHeadwearTableViewCell.m new file mode 100644 index 00000000..8ae77fbf --- /dev/null +++ b/xplan-ios/Main/Mine/View/DressUp/View/Cell/XPMineHeadwearTableViewCell.m @@ -0,0 +1,198 @@ +// +// XPMineHeadwearTableViewCell.m +// xplan-ios +// +// Created by 冯硕 on 2021/12/15. +// + +#import "XPMineHeadwearTableViewCell.h" + +///Third +#import +///Tool +#import "ThemeColor.h" +#import "NetImageView.h" +#import "UIImage+Utils.h" + +@interface XPMineHeadwearTableViewCell () +///赠送 +@property (nonatomic, strong) UIImageView *giveImageView; +///铭牌图片的背景 +@property (nonatomic, strong) UIView *backView; +///铭牌 +@property (nonatomic, strong) NetImageView *namePlateImageView; +///名字 +@property (nonatomic, strong) UILabel *titleLabel; +///状态icon +@property (nonatomic, strong) UIImageView *timeImageView; +///剩余天数 +@property (nonatomic, strong) UILabel *timeLabel; +///使用 +@property (nonatomic,strong) UIButton *useButton; +///显示分割线 +@property (nonatomic,strong) UIView * lineView; + +@end + +@implementation XPMineHeadwearTableViewCell + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self initSubViews]; + [self initSubViewConstraints]; + } + return self; +} +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor];; + [self.contentView addSubview:self.backView]; + [self.contentView addSubview:self.titleLabel]; + [self.contentView addSubview:self.timeImageView]; + [self.contentView addSubview:self.timeLabel]; + [self.contentView addSubview:self.useButton]; + [self.contentView addSubview:self.lineView]; + [self.backView addSubview:self.namePlateImageView]; + +} + +- (void)initSubViewConstraints { + [self.backView mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.width.mas_equalTo(80); + make.centerY.mas_equalTo(self.contentView); + make.left.mas_equalTo(self.contentView).offset(20); + }]; + + [self.namePlateImageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.backView); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.backView.mas_right).offset(10); + make.top.mas_equalTo(self.backView).offset(10); + }]; + [self.timeImageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.titleLabel); + make.height.width.mas_equalTo(11); + make.top.mas_equalTo(self.titleLabel.mas_bottom).inset(11); + }]; + [self.timeLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.timeImageView.mas_right).offset(2); + make.centerY.mas_equalTo(self.timeImageView); + }]; + + [self.useButton mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self); + make.right.mas_equalTo(self.contentView).offset(-15); + make.height.mas_equalTo(33); + make.width.mas_equalTo(85); + }]; + + [self.lineView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.contentView).offset(105); + make.height.mas_equalTo(0.5); + make.bottom.mas_equalTo(self.contentView); + make.right.mas_equalTo(self.contentView).offset(-15); + }]; + +} + +#pragma mark - private + +//- (void)pricenamePlate:(UserNamePlateList *)namePlate{ +// +// self.namePlate = namePlate; +// +// [self.namePlateIcon qn_setImageImageWithUrl:namePlate.nameplateImage placeholderImage:@"dress_headwear_placehoder" type:ImageTypeRoomFace]; +// +// BOOL isUse = namePlate.isUsing; +// NSString *expireDays = [NSString stringWithFormat:@"%ld", namePlate.expireDays]; +// +// self.dressUpNameLabel.text = namePlate.nameplateName; +// self.giveIcon.hidden = YES; +// +// //是否已过期 +// BOOL isExpired = namePlate.isExpired; +// +// self.useBtn.hidden = isExpired || isUse;//已过期|使用中 不显示使用 +// self.cancelUseBtn.hidden = isExpired || !isUse;//已过期|未使用 不显示取消使用 +// +// self.timeLabel.text = isExpired ? @"已过期" : [NSString stringWithFormat:@"剩余%@天", expireDays]; +// +//} +#pragma mark - Event Response +- (void)useButtonAction:(UIButton *)sender { + +} + +#pragma mark - Getter && Setter +- (UIView *)backView { + if (!_backView) { + _backView = [[UIView alloc] init]; + _backView.backgroundColor = [ThemeColor appCellBackgroundColor]; + _backView.layer.masksToBounds = YES; + _backView.layer.cornerRadius = 10; + } + return _backView; +} + +- (NetImageView *)namePlateImageView { + if (!_namePlateImageView) { + _namePlateImageView = [[NetImageView alloc] init]; + _namePlateImageView.image = [UIImageConstant defaultAvatarPlaceholder]; + } + return _namePlateImageView;; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:15]; + _titleLabel.textColor = [ThemeColor mainTextColor]; + } + return _titleLabel; +} + +- (UIButton *)useButton { + if (!_useButton) { + _useButton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_useButton setTitle:@"使用" forState:UIControlStateNormal]; + [_useButton setTitleColor:[ThemeColor confirmButtonTextColor] forState:UIControlStateNormal]; + [_useButton addTarget:self action:@selector(useButtonAction:) forControlEvents:UIControlEventTouchUpInside]; + _useButton.layer.masksToBounds = YES; + _useButton.layer.cornerRadius = 33/2; + _useButton.titleLabel.font = [UIFont systemFontOfSize:14]; + [_useButton setBackgroundImage:[UIImage gradientColorImageFromColors:@[[ThemeColor confirmButtonGradientStartColor], [ThemeColor confirmButtonGradientEndColor]] gradientType:GradientTypeLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + } + return _useButton; +} + + + +- (UIImageView *)timeImageView { + if (!_timeImageView) { + _timeImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"person_Dressup_time"]]; + } + return _timeImageView; +} + +- (UILabel *)timeLabel { + if (!_timeLabel) { + _timeLabel = [[UILabel alloc] init]; + _timeLabel.font = [UIFont systemFontOfSize:12]; + _timeLabel.textColor = [ThemeColor secondTextColor]; + } + return _timeLabel; +} + +- (UIView *)lineView { + if (!_lineView) { + _lineView = [[UIView alloc] init]; + _lineView.backgroundColor = [ThemeColor dividerColor]; + } + return _lineView; +} + + +@end diff --git a/xplan-ios/Main/Mine/View/DressUp/View/Cell/XPMineNameplateTableViewCell.h b/xplan-ios/Main/Mine/View/DressUp/View/Cell/XPMineNameplateTableViewCell.h new file mode 100644 index 00000000..f7e92047 --- /dev/null +++ b/xplan-ios/Main/Mine/View/DressUp/View/Cell/XPMineNameplateTableViewCell.h @@ -0,0 +1,16 @@ +// +// XPMineNameplateTableViewCell.h +// xplan-ios +// +// Created by 冯硕 on 2021/12/15. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface XPMineNameplateTableViewCell : UITableViewCell + +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Mine/View/DressUp/View/Cell/XPMineNameplateTableViewCell.m b/xplan-ios/Main/Mine/View/DressUp/View/Cell/XPMineNameplateTableViewCell.m new file mode 100644 index 00000000..0597a7cd --- /dev/null +++ b/xplan-ios/Main/Mine/View/DressUp/View/Cell/XPMineNameplateTableViewCell.m @@ -0,0 +1,194 @@ +// +// XPMineNameplateTableViewCell.m +// xplan-ios +// +// Created by 冯硕 on 2021/12/15. +// + +#import "XPMineNameplateTableViewCell.h" +///Third +#import +///Tool +#import "ThemeColor.h" +#import "NetImageView.h" +#import "UIImage+Utils.h" + +@interface XPMineNameplateTableViewCell () +///铭牌图片的背景 +@property (nonatomic, strong) UIView *backView; +///铭牌 +@property (nonatomic, strong) NetImageView *namePlateImageView; +///名字 +@property (nonatomic, strong) UILabel *titleLabel; +///状态icon +@property (nonatomic, strong) UIImageView *timeImageView; +///剩余天数 +@property (nonatomic, strong) UILabel *timeLabel; +///使用 +@property (nonatomic,strong) UIButton *useButton; +///显示分割线 +@property (nonatomic,strong) UIView * lineView; + +@end + +@implementation XPMineNameplateTableViewCell + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self initSubViews]; + [self initSubViewConstraints]; + } + return self; +} +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor];; + [self.contentView addSubview:self.backView]; + [self.contentView addSubview:self.titleLabel]; + [self.contentView addSubview:self.timeImageView]; + [self.contentView addSubview:self.timeLabel]; + [self.contentView addSubview:self.useButton]; + [self.contentView addSubview:self.lineView]; + [self.backView addSubview:self.namePlateImageView]; + +} + +- (void)initSubViewConstraints { + [self.backView mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.width.mas_equalTo(80); + make.centerY.mas_equalTo(self.contentView); + make.left.mas_equalTo(self.contentView).offset(20); + }]; + + [self.namePlateImageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.backView); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.backView.mas_right).offset(10); + make.top.mas_equalTo(self.backView).offset(10); + }]; + [self.timeImageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.titleLabel); + make.height.width.mas_equalTo(11); + make.top.mas_equalTo(self.titleLabel.mas_bottom).inset(11); + }]; + [self.timeLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.timeImageView.mas_right).offset(2); + make.centerY.mas_equalTo(self.timeImageView); + }]; + + [self.useButton mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self); + make.right.mas_equalTo(self.contentView).offset(-15); + make.height.mas_equalTo(33); + make.width.mas_equalTo(85); + }]; + + [self.lineView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.contentView).offset(105); + make.height.mas_equalTo(0.5); + make.bottom.mas_equalTo(self.contentView); + make.right.mas_equalTo(self.contentView).offset(-15); + }]; + +} + +#pragma mark - private + +//- (void)pricenamePlate:(UserNamePlateList *)namePlate{ +// +// self.namePlate = namePlate; +// +// [self.namePlateIcon qn_setImageImageWithUrl:namePlate.nameplateImage placeholderImage:@"dress_headwear_placehoder" type:ImageTypeRoomFace]; +// +// BOOL isUse = namePlate.isUsing; +// NSString *expireDays = [NSString stringWithFormat:@"%ld", namePlate.expireDays]; +// +// self.dressUpNameLabel.text = namePlate.nameplateName; +// self.giveIcon.hidden = YES; +// +// //是否已过期 +// BOOL isExpired = namePlate.isExpired; +// +// self.useBtn.hidden = isExpired || isUse;//已过期|使用中 不显示使用 +// self.cancelUseBtn.hidden = isExpired || !isUse;//已过期|未使用 不显示取消使用 +// +// self.timeLabel.text = isExpired ? @"已过期" : [NSString stringWithFormat:@"剩余%@天", expireDays]; +// +//} +#pragma mark - Event Response +- (void)useButtonAction:(UIButton *)sender { + +} + +#pragma mark - Getter && Setter +- (UIView *)backView { + if (!_backView) { + _backView = [[UIView alloc] init]; + _backView.backgroundColor = [ThemeColor appCellBackgroundColor]; + _backView.layer.masksToBounds = YES; + _backView.layer.cornerRadius = 10; + } + return _backView; +} + +- (NetImageView *)namePlateImageView { + if (!_namePlateImageView) { + _namePlateImageView = [[NetImageView alloc] init]; + _namePlateImageView.image = [UIImageConstant defaultAvatarPlaceholder]; + } + return _namePlateImageView;; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:15]; + _titleLabel.textColor = [ThemeColor mainTextColor]; + } + return _titleLabel; +} + +- (UIButton *)useButton { + if (!_useButton) { + _useButton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_useButton setTitle:@"使用" forState:UIControlStateNormal]; + [_useButton setTitleColor:[ThemeColor confirmButtonTextColor] forState:UIControlStateNormal]; + [_useButton addTarget:self action:@selector(useButtonAction:) forControlEvents:UIControlEventTouchUpInside]; + _useButton.layer.masksToBounds = YES; + _useButton.layer.cornerRadius = 33/2; + _useButton.titleLabel.font = [UIFont systemFontOfSize:14]; + [_useButton setBackgroundImage:[UIImage gradientColorImageFromColors:@[[ThemeColor confirmButtonGradientStartColor], [ThemeColor confirmButtonGradientEndColor]] gradientType:GradientTypeLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + } + return _useButton; +} + + + +- (UIImageView *)timeImageView { + if (!_timeImageView) { + _timeImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"person_Dressup_time"]]; + } + return _timeImageView; +} + +- (UILabel *)timeLabel { + if (!_timeLabel) { + _timeLabel = [[UILabel alloc] init]; + _timeLabel.font = [UIFont systemFontOfSize:12]; + _timeLabel.textColor = [ThemeColor secondTextColor]; + } + return _timeLabel; +} + +- (UIView *)lineView { + if (!_lineView) { + _lineView = [[UIView alloc] init]; + _lineView.backgroundColor = [ThemeColor dividerColor]; + } + return _lineView; +} + +@end diff --git a/xplan-ios/Main/Mine/View/DressUp/View/XPMineDressUpListViewController.h b/xplan-ios/Main/Mine/View/DressUp/View/XPMineDressUpListViewController.h new file mode 100644 index 00000000..f21c9bc8 --- /dev/null +++ b/xplan-ios/Main/Mine/View/DressUp/View/XPMineDressUpListViewController.h @@ -0,0 +1,23 @@ +// +// XPMineDressUpListViewController.h +// xplan-ios +// +// Created by 冯硕 on 2021/12/15. +// + +#import "MvpViewController.h" +#import +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSInteger, DressUpListType) { + DressUpListType_HeadWear = 1, + DressUpListType_Car, + DressUpListType_Nameplate, +}; + +@interface XPMineDressUpListViewController : MvpViewController +///类型 +@property (nonatomic,assign) DressUpListType type; +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Mine/View/DressUp/View/XPMineDressUpListViewController.m b/xplan-ios/Main/Mine/View/DressUp/View/XPMineDressUpListViewController.m new file mode 100644 index 00000000..5913210d --- /dev/null +++ b/xplan-ios/Main/Mine/View/DressUp/View/XPMineDressUpListViewController.m @@ -0,0 +1,48 @@ +// +// XPMineDressUpListViewController.m +// xplan-ios +// +// Created by 冯硕 on 2021/12/15. +// + +#import "XPMineDressUpListViewController.h" + +@interface XPMineDressUpListViewController () +///列表 +@property (nonatomic,strong) UITableView *tableView; +@end + +@implementation XPMineDressUpListViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + +} +#pragma mark - JXCategoryListContentViewDelegate +- (UIView *)listView { + return self.view; +} + +#pragma mark - Getters And Setters +- (void)setType:(DressUpListType)type { + _type = type; + +} + +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + } + return _tableView; +} + + +@end diff --git a/xplan-ios/Main/Mine/View/DressUp/View/XPMineDressUpViewController.h b/xplan-ios/Main/Mine/View/DressUp/View/XPMineDressUpViewController.h new file mode 100644 index 00000000..d80831dc --- /dev/null +++ b/xplan-ios/Main/Mine/View/DressUp/View/XPMineDressUpViewController.h @@ -0,0 +1,15 @@ +// +// XPMineDressUpViewController.h +// xplan-ios +// +// Created by 冯硕 on 2021/12/15. +// + +#import "BaseViewController.h" +NS_ASSUME_NONNULL_BEGIN + +@interface XPMineDressUpViewController : BaseViewController + +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Mine/View/DressUp/View/XPMineDressUpViewController.m b/xplan-ios/Main/Mine/View/DressUp/View/XPMineDressUpViewController.m new file mode 100644 index 00000000..57d2bad3 --- /dev/null +++ b/xplan-ios/Main/Mine/View/DressUp/View/XPMineDressUpViewController.m @@ -0,0 +1,206 @@ +// +// XPMineDressUpViewController.m +// xplan-ios +// +// Created by 冯硕 on 2021/12/15. +// + +#import "XPMineDressUpViewController.h" +///Third +#import +#import +#import +#import +///Tool +#import "ThemeColor.h" +#import "Api+DressUp.h" +///Model +#import "ActivityInfoModel.h" +///View +#import "XPMineDressUpListViewController.h" +#import "XPRoomViewController.h" +#import "XPWebViewController.h" +@interface XPMineDressUpViewController () +///分页标题 +@property (nonatomic, strong) NSArray *titles; +///分页控件 +@property (nonatomic, strong) JXCategoryTitleView *titleView; +///分页lineView +@property (nonatomic, strong) JXCategoryListContainerView *contentView; +///头饰 +@property (nonatomic,strong) XPMineDressUpListViewController *headwearView; +///座驾 +@property (nonatomic,strong) XPMineDressUpListViewController *carView; +///铭牌 +@property (nonatomic,strong) XPMineDressUpListViewController *nameplateView; +///轮播图 +@property (nonatomic,strong) SDCycleScrollView *cycleScrollView; +///房间活动的列表 +@property (nonatomic,copy) NSArray *activityList; +@end + +@implementation XPMineDressUpViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + [self requestActivityList]; + [self initSubViews]; + [self initSubViewConstraints]; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.view addSubview:self.cycleScrollView]; + [self.view addSubview:self.titleView]; + [self.view addSubview:self.contentView]; +} + +- (void)initSubViewConstraints { + [self.cycleScrollView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.view); + make.left.mas_equalTo(15); + make.right.mas_equalTo(-15); + make.height.mas_equalTo(100); + }]; + + [self.titleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.view); + make.height.mas_equalTo(50); + make.top.mas_equalTo(self.cycleScrollView.mas_bottom); + }]; + + [self.contentView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self.view); + make.top.mas_equalTo(self.titleView.mas_bottom); + }]; +} + +- (void)requestActivityList { + [Api dressupBannerList:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + NSArray * array = [ActivityInfoModel modelsWithArray:data.data]; + if (array.count <=0) return; + self.activityList = array; + NSMutableArray * picList = [NSMutableArray array]; + [array enumerateObjectsUsingBlock:^(ActivityInfoModel * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (obj.bannerPic.length > 0) { + [picList addObject:obj.bannerPic]; + } + }]; + self.cycleScrollView.imageURLStringsGroup = picList; + if (array.count > 1) { + [self.cycleScrollView setAutoScroll:YES]; + self.cycleScrollView.autoScrollTimeInterval = 3; + } else { + [self.cycleScrollView setAutoScroll:NO]; + } + } + } type:@"3"]; +} + +#pragma mark - JXCategoryViewDelegate +- (NSInteger)numberOfListsInlistContainerView:(JXCategoryListContainerView *)listContainerView { + return self.titles.count; +} + +- (id)listContainerView:(JXCategoryListContainerView *)listContainerView initListForIndex:(NSInteger)index { + if (index == 0) { + return self.headwearView; + } else if(index == 1) { + return self.carView; + } + return self.nameplateView; +} + +- (void)cycleScrollView:(SDCycleScrollView *)cycleScrollView didSelectItemAtIndex:(NSInteger)index { + if (self.activityList.count > index) { + ActivityInfoModel * info = [self.activityList objectAtIndex:index]; + if (info.skipType == ActivitySkipType_Room) { + [XPRoomViewController openRoom:info.skipUri viewController:self.navigationController]; + } else if(info.skipType == ActivitySkipType_Web) { + XPWebViewController * webVC = [[XPWebViewController alloc] init]; + webVC.url = info.skipUri; + [self.navigationController pushViewController:webVC animated:YES]; + } + } +} + +#pragma mark - Getters And Setters +- (JXCategoryTitleView *)titleView { + if (!_titleView) { + _titleView = [[JXCategoryTitleView alloc] init]; + _titleView.delegate = self; + _titleView.titles = self.titles; + _titleView.titleColor = [ThemeColor secondTextColor]; + _titleView.titleSelectedColor = [ThemeColor mainTextColor]; + _titleView.titleFont = [UIFont fontWithName:@"PingFang-SC-Medium" size:16]; + _titleView.titleSelectedFont = [UIFont fontWithName:@"PingFang-SC-Medium" size:16]; + _titleView.titleLabelAnchorPointStyle = JXCategoryTitleLabelAnchorPointStyleCenter; + _titleView.contentScrollViewClickTransitionAnimationEnabled = NO; + _titleView.defaultSelectedIndex = 0; + _titleView.listContainer = self.contentView; + + JXCategoryIndicatorLineView *lineView = [[JXCategoryIndicatorLineView alloc] init]; + lineView.indicatorColor = UIColor.whiteColor; + lineView.indicatorWidth = 8.f; + lineView.indicatorHeight = 4.f; + lineView.indicatorCornerRadius = 2.f; + _titleView.indicators = @[lineView]; + } + return _titleView; +} + +- (JXCategoryListContainerView *)contentView { + if (!_contentView) { + _contentView = [[JXCategoryListContainerView alloc] initWithType:JXCategoryListContainerType_ScrollView delegate:self]; + _contentView.defaultSelectedIndex = 0; + } + return _contentView; +} + +- (NSArray *)titles { + return @[@"头饰", @"座驾", @"铭牌"]; +} + +- (XPMineDressUpListViewController *)headwearView { + if (!_headwearView) { + _headwearView = [[XPMineDressUpListViewController alloc] init]; + _headwearView.type = DressUpListType_HeadWear; + } + return _headwearView; +} + +- (XPMineDressUpListViewController *)carView { + if (!_carView) { + _carView = [[XPMineDressUpListViewController alloc] init]; + _carView.type = DressUpListType_Car; + } + return _carView; +} + +- (XPMineDressUpListViewController *)nameplateView { + if (!_nameplateView) { + _nameplateView = [[XPMineDressUpListViewController alloc] init]; + _nameplateView.type = DressUpListType_Nameplate; + } + return _nameplateView; +} + +- (SDCycleScrollView *)cycleScrollView { + if (!_cycleScrollView) { + _cycleScrollView = [SDCycleScrollView cycleScrollViewWithFrame:CGRectZero delegate:self placeholderImage:nil]; + _cycleScrollView.pageControlAliment = SDCycleScrollViewPageContolAlimentCenter; + _cycleScrollView.currentPageDotColor = [UIColor whiteColor]; + _cycleScrollView.pageDotColor = [UIColor colorWithWhite:1 alpha:0.15]; + _cycleScrollView.currentPageDotImage = [UIImage imageNamed:@"room_activity_banner_select"]; + _cycleScrollView.pageDotImage = [UIImage imageNamed:@"room_activity_banner_normal"]; + _cycleScrollView.backgroundColor = [UIColor colorWithWhite:1 alpha:0.00]; + _cycleScrollView.bannerImageViewContentMode = UIViewContentModeScaleAspectFit; + _cycleScrollView.pageControlBottomOffset = -20; + _cycleScrollView.hidden = YES; + } + return _cycleScrollView; +} + + +@end