个人中心改造

This commit is contained in:
chenguilong
2022-07-22 18:48:23 +08:00
parent 7de25bfc9e
commit 4bf9ede090
45 changed files with 1078 additions and 624 deletions

View File

@@ -171,6 +171,10 @@
9B6E856E281AABAB0041A321 /* XPRoomRecommendModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B6E856D281AABAB0041A321 /* XPRoomRecommendModel.m */; }; 9B6E856E281AABAB0041A321 /* XPRoomRecommendModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B6E856D281AABAB0041A321 /* XPRoomRecommendModel.m */; };
9B6E8573281AB9B20041A321 /* XPRoomInsideRecommendCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B6E8572281AB9B20041A321 /* XPRoomInsideRecommendCell.m */; }; 9B6E8573281AB9B20041A321 /* XPRoomInsideRecommendCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B6E8572281AB9B20041A321 /* XPRoomInsideRecommendCell.m */; };
9B6E8577281ABECC0041A321 /* XPRoomInsideRecommendEmptyCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B6E8576281ABECC0041A321 /* XPRoomInsideRecommendEmptyCell.m */; }; 9B6E8577281ABECC0041A321 /* XPRoomInsideRecommendEmptyCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B6E8576281ABECC0041A321 /* XPRoomInsideRecommendEmptyCell.m */; };
9B734F73288A787000CBDAA9 /* XPMineAccountView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B734F72288A787000CBDAA9 /* XPMineAccountView.m */; };
9B734F76288A92FB00CBDAA9 /* XPMineFuntionItemModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B734F75288A92FB00CBDAA9 /* XPMineFuntionItemModel.m */; };
9B734F79288A9C4B00CBDAA9 /* XPMineGameTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B734F78288A9C4B00CBDAA9 /* XPMineGameTableViewCell.m */; };
9B734F7C288AB05A00CBDAA9 /* XPMIneGameCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B734F7B288AB05A00CBDAA9 /* XPMIneGameCollectionViewCell.m */; };
9B73CD05279A9A6A006AF255 /* XPSkillCardSaveModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B73CD04279A9A6A006AF255 /* XPSkillCardSaveModel.m */; }; 9B73CD05279A9A6A006AF255 /* XPSkillCardSaveModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B73CD04279A9A6A006AF255 /* XPSkillCardSaveModel.m */; };
9B73CD09279A9AA2006AF255 /* XPSkillCardUpdatePropModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B73CD08279A9AA2006AF255 /* XPSkillCardUpdatePropModel.m */; }; 9B73CD09279A9AA2006AF255 /* XPSkillCardUpdatePropModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B73CD08279A9AA2006AF255 /* XPSkillCardUpdatePropModel.m */; };
9B73CD11279AE99B006AF255 /* XPSkillCardListCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B73CD10279AE99B006AF255 /* XPSkillCardListCell.m */; }; 9B73CD11279AE99B006AF255 /* XPSkillCardListCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B73CD10279AE99B006AF255 /* XPSkillCardListCell.m */; };
@@ -194,7 +198,6 @@
9B86D8802817F4A300494FCD /* XPNobleSettingNavView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B86D87F2817F4A300494FCD /* XPNobleSettingNavView.m */; }; 9B86D8802817F4A300494FCD /* XPNobleSettingNavView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B86D87F2817F4A300494FCD /* XPNobleSettingNavView.m */; };
9B86D88328192DC000494FCD /* XPRoomRankEntranceView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B86D88228192DC000494FCD /* XPRoomRankEntranceView.m */; }; 9B86D88328192DC000494FCD /* XPRoomRankEntranceView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B86D88228192DC000494FCD /* XPRoomRankEntranceView.m */; };
9B86D886281942D200494FCD /* SocialMicroView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B86D885281942D200494FCD /* SocialMicroView.m */; }; 9B86D886281942D200494FCD /* SocialMicroView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B86D885281942D200494FCD /* SocialMicroView.m */; };
9B92A3392797BE4500AD168F /* XPMineSkillTipView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B92A3382797BE4500AD168F /* XPMineSkillTipView.m */; };
9B92A33C2797E38100AD168F /* XPMineHeadItemTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B92A33B2797E38100AD168F /* XPMineHeadItemTableViewCell.m */; }; 9B92A33C2797E38100AD168F /* XPMineHeadItemTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B92A33B2797E38100AD168F /* XPMineHeadItemTableViewCell.m */; };
9B92A3442797EE6500AD168F /* XPMatchManagePresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B92A3432797EE6500AD168F /* XPMatchManagePresenter.m */; }; 9B92A3442797EE6500AD168F /* XPMatchManagePresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B92A3432797EE6500AD168F /* XPMatchManagePresenter.m */; };
9B92A3472797EECD00AD168F /* XPMatchManageViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B92A3462797EECD00AD168F /* XPMatchManageViewController.m */; }; 9B92A3472797EECD00AD168F /* XPMatchManageViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B92A3462797EECD00AD168F /* XPMatchManageViewController.m */; };
@@ -1198,6 +1201,14 @@
9B6E8572281AB9B20041A321 /* XPRoomInsideRecommendCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomInsideRecommendCell.m; sourceTree = "<group>"; }; 9B6E8572281AB9B20041A321 /* XPRoomInsideRecommendCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomInsideRecommendCell.m; sourceTree = "<group>"; };
9B6E8575281ABECC0041A321 /* XPRoomInsideRecommendEmptyCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomInsideRecommendEmptyCell.h; sourceTree = "<group>"; }; 9B6E8575281ABECC0041A321 /* XPRoomInsideRecommendEmptyCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomInsideRecommendEmptyCell.h; sourceTree = "<group>"; };
9B6E8576281ABECC0041A321 /* XPRoomInsideRecommendEmptyCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomInsideRecommendEmptyCell.m; sourceTree = "<group>"; }; 9B6E8576281ABECC0041A321 /* XPRoomInsideRecommendEmptyCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomInsideRecommendEmptyCell.m; sourceTree = "<group>"; };
9B734F71288A787000CBDAA9 /* XPMineAccountView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineAccountView.h; sourceTree = "<group>"; };
9B734F72288A787000CBDAA9 /* XPMineAccountView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineAccountView.m; sourceTree = "<group>"; };
9B734F74288A92FB00CBDAA9 /* XPMineFuntionItemModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineFuntionItemModel.h; sourceTree = "<group>"; };
9B734F75288A92FB00CBDAA9 /* XPMineFuntionItemModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineFuntionItemModel.m; sourceTree = "<group>"; };
9B734F77288A9C4B00CBDAA9 /* XPMineGameTableViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineGameTableViewCell.h; sourceTree = "<group>"; };
9B734F78288A9C4B00CBDAA9 /* XPMineGameTableViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineGameTableViewCell.m; sourceTree = "<group>"; };
9B734F7A288AB05A00CBDAA9 /* XPMIneGameCollectionViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMIneGameCollectionViewCell.h; sourceTree = "<group>"; };
9B734F7B288AB05A00CBDAA9 /* XPMIneGameCollectionViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMIneGameCollectionViewCell.m; sourceTree = "<group>"; };
9B73CD03279A9A6A006AF255 /* XPSkillCardSaveModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPSkillCardSaveModel.h; sourceTree = "<group>"; }; 9B73CD03279A9A6A006AF255 /* XPSkillCardSaveModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPSkillCardSaveModel.h; sourceTree = "<group>"; };
9B73CD04279A9A6A006AF255 /* XPSkillCardSaveModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPSkillCardSaveModel.m; sourceTree = "<group>"; }; 9B73CD04279A9A6A006AF255 /* XPSkillCardSaveModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPSkillCardSaveModel.m; sourceTree = "<group>"; };
9B73CD07279A9AA2006AF255 /* XPSkillCardUpdatePropModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPSkillCardUpdatePropModel.h; sourceTree = "<group>"; }; 9B73CD07279A9AA2006AF255 /* XPSkillCardUpdatePropModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPSkillCardUpdatePropModel.h; sourceTree = "<group>"; };
@@ -1243,8 +1254,6 @@
9B86D88228192DC000494FCD /* XPRoomRankEntranceView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomRankEntranceView.m; sourceTree = "<group>"; }; 9B86D88228192DC000494FCD /* XPRoomRankEntranceView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomRankEntranceView.m; sourceTree = "<group>"; };
9B86D884281942D200494FCD /* SocialMicroView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SocialMicroView.h; sourceTree = "<group>"; }; 9B86D884281942D200494FCD /* SocialMicroView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SocialMicroView.h; sourceTree = "<group>"; };
9B86D885281942D200494FCD /* SocialMicroView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SocialMicroView.m; sourceTree = "<group>"; }; 9B86D885281942D200494FCD /* SocialMicroView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SocialMicroView.m; sourceTree = "<group>"; };
9B92A3372797BE4500AD168F /* XPMineSkillTipView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineSkillTipView.h; sourceTree = "<group>"; };
9B92A3382797BE4500AD168F /* XPMineSkillTipView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineSkillTipView.m; sourceTree = "<group>"; };
9B92A33A2797E38100AD168F /* XPMineHeadItemTableViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineHeadItemTableViewCell.h; sourceTree = "<group>"; }; 9B92A33A2797E38100AD168F /* XPMineHeadItemTableViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineHeadItemTableViewCell.h; sourceTree = "<group>"; };
9B92A33B2797E38100AD168F /* XPMineHeadItemTableViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineHeadItemTableViewCell.m; sourceTree = "<group>"; }; 9B92A33B2797E38100AD168F /* XPMineHeadItemTableViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineHeadItemTableViewCell.m; sourceTree = "<group>"; };
9B92A3412797EE1200AD168F /* XPMatchManageProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMatchManageProtocol.h; sourceTree = "<group>"; }; 9B92A3412797EE1200AD168F /* XPMatchManageProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMatchManageProtocol.h; sourceTree = "<group>"; };
@@ -6657,6 +6666,8 @@
E8AC723926F49AAE007D6E91 /* XPMineNotifyStatus.m */, E8AC723926F49AAE007D6E91 /* XPMineNotifyStatus.m */,
E8EEB90A26FC5EBC007C6EBA /* XPMineUserInfoEditModel.h */, E8EEB90A26FC5EBC007C6EBA /* XPMineUserInfoEditModel.h */,
E8EEB90B26FC5EBC007C6EBA /* XPMineUserInfoEditModel.m */, E8EEB90B26FC5EBC007C6EBA /* XPMineUserInfoEditModel.m */,
9B734F74288A92FB00CBDAA9 /* XPMineFuntionItemModel.h */,
9B734F75288A92FB00CBDAA9 /* XPMineFuntionItemModel.m */,
); );
path = Model; path = Model;
sourceTree = "<group>"; sourceTree = "<group>";
@@ -6787,14 +6798,14 @@
E8E70D8226F2F51A00F03460 /* XPMineHeadView.m */, E8E70D8226F2F51A00F03460 /* XPMineHeadView.m */,
E896EFB02771C93B00AD2CC1 /* XPMineFriendNumberView.h */, E896EFB02771C93B00AD2CC1 /* XPMineFriendNumberView.h */,
E896EFB12771C93B00AD2CC1 /* XPMineFriendNumberView.m */, E896EFB12771C93B00AD2CC1 /* XPMineFriendNumberView.m */,
9B734F71288A787000CBDAA9 /* XPMineAccountView.h */,
9B734F72288A787000CBDAA9 /* XPMineAccountView.m */,
E824544126F58FCE00BE8163 /* XPMinePayPwdInputView.h */, E824544126F58FCE00BE8163 /* XPMinePayPwdInputView.h */,
E824544226F58FCE00BE8163 /* XPMinePayPwdInputView.m */, E824544226F58FCE00BE8163 /* XPMinePayPwdInputView.m */,
E824544C26F5BC1A00BE8163 /* XPMineModifPayPwdView.h */, E824544C26F5BC1A00BE8163 /* XPMineModifPayPwdView.h */,
E824544D26F5BC1A00BE8163 /* XPMineModifPayPwdView.m */, E824544D26F5BC1A00BE8163 /* XPMineModifPayPwdView.m */,
E824545726F5E65900BE8163 /* XPMineVerifIdentityView.h */, E824545726F5E65900BE8163 /* XPMineVerifIdentityView.h */,
E824545826F5E65900BE8163 /* XPMineVerifIdentityView.m */, E824545826F5E65900BE8163 /* XPMineVerifIdentityView.m */,
9B92A3372797BE4500AD168F /* XPMineSkillTipView.h */,
9B92A3382797BE4500AD168F /* XPMineSkillTipView.m */,
); );
path = SubViews; path = SubViews;
sourceTree = "<group>"; sourceTree = "<group>";
@@ -6819,6 +6830,10 @@
9B92A33B2797E38100AD168F /* XPMineHeadItemTableViewCell.m */, 9B92A33B2797E38100AD168F /* XPMineHeadItemTableViewCell.m */,
E8E20BED2816A5FC0033B688 /* XPMineBlackListTableViewCell.h */, E8E20BED2816A5FC0033B688 /* XPMineBlackListTableViewCell.h */,
E8E20BEE2816A5FC0033B688 /* XPMineBlackListTableViewCell.m */, E8E20BEE2816A5FC0033B688 /* XPMineBlackListTableViewCell.m */,
9B734F77288A9C4B00CBDAA9 /* XPMineGameTableViewCell.h */,
9B734F78288A9C4B00CBDAA9 /* XPMineGameTableViewCell.m */,
9B734F7A288AB05A00CBDAA9 /* XPMIneGameCollectionViewCell.h */,
9B734F7B288AB05A00CBDAA9 /* XPMIneGameCollectionViewCell.m */,
); );
path = Cell; path = Cell;
sourceTree = "<group>"; sourceTree = "<group>";
@@ -7416,6 +7431,7 @@
E8788950273A699900BF1D57 /* ThemeColor+SendGift.m in Sources */, E8788950273A699900BF1D57 /* ThemeColor+SendGift.m in Sources */,
E81C279D26EEEC620031E639 /* XPConstant.m in Sources */, E81C279D26EEEC620031E639 /* XPConstant.m in Sources */,
9B92A36D2798179B00AD168F /* XPSkillCardTypeCollectionViewCell.m in Sources */, 9B92A36D2798179B00AD168F /* XPSkillCardTypeCollectionViewCell.m in Sources */,
9B734F73288A787000CBDAA9 /* XPMineAccountView.m in Sources */,
E8AA6EF227DF1E97009B4C2B /* XPRoomTopicPresenter.m in Sources */, E8AA6EF227DF1E97009B4C2B /* XPRoomTopicPresenter.m in Sources */,
187EEEFE26E8A82C002833B2 /* NSObject+AutoCoding.m in Sources */, 187EEEFE26E8A82C002833B2 /* NSObject+AutoCoding.m in Sources */,
E873EB0C2809850D0071030D /* MessageContentCustomView.m in Sources */, E873EB0C2809850D0071030D /* MessageContentCustomView.m in Sources */,
@@ -7505,12 +7521,12 @@
E8834E562800585A0029CCC1 /* XPGuildManagerPerPresenter.m in Sources */, E8834E562800585A0029CCC1 /* XPGuildManagerPerPresenter.m in Sources */,
E880B3AC278BD98600A83B0D /* XPAcrossRoomPKEmptyTableViewCell.m in Sources */, E880B3AC278BD98600A83B0D /* XPAcrossRoomPKEmptyTableViewCell.m in Sources */,
18486235271EB794005FC5DC /* AgoraRtcImpl.m in Sources */, 18486235271EB794005FC5DC /* AgoraRtcImpl.m in Sources */,
9B92A3392797BE4500AD168F /* XPMineSkillTipView.m in Sources */,
E8A1E454276208E500B294CA /* CandyTreeInfoModel.m in Sources */, E8A1E454276208E500B294CA /* CandyTreeInfoModel.m in Sources */,
E8C1CD7A27D8B29E00376F83 /* RoomFaceInfoModel.m in Sources */, E8C1CD7A27D8B29E00376F83 /* RoomFaceInfoModel.m in Sources */,
E81C1B1C27705F6B0020D1E4 /* XPArrangeMicPresenter.m in Sources */, E81C1B1C27705F6B0020D1E4 /* XPArrangeMicPresenter.m in Sources */,
184862CE27213FD7005FC5DC /* ZegoRtcImpl.m in Sources */, 184862CE27213FD7005FC5DC /* ZegoRtcImpl.m in Sources */,
E8A88D2727E8193400CA8837 /* XPRoomPKSelectUserView.m in Sources */, E8A88D2727E8193400CA8837 /* XPRoomPKSelectUserView.m in Sources */,
9B734F7C288AB05A00CBDAA9 /* XPMIneGameCollectionViewCell.m in Sources */,
9B0E1C5926E77022005D4442 /* BaseNavigationController.m in Sources */, 9B0E1C5926E77022005D4442 /* BaseNavigationController.m in Sources */,
E8664ED927E4355C000171BA /* XPRoomPKRecordTableViewCell.m in Sources */, E8664ED927E4355C000171BA /* XPRoomPKRecordTableViewCell.m in Sources */,
E8C6FFD027548256004DC9F0 /* XPHomeListCollectionViewCell.m in Sources */, E8C6FFD027548256004DC9F0 /* XPHomeListCollectionViewCell.m in Sources */,
@@ -7604,6 +7620,7 @@
E8DBB70127B6501200AA285D /* XPLittleGameMiniStageView.m in Sources */, E8DBB70127B6501200AA285D /* XPLittleGameMiniStageView.m in Sources */,
E851E46227FF1314002F3ACB /* XPMineGuildEmptyTableViewCell.m in Sources */, E851E46227FF1314002F3ACB /* XPMineGuildEmptyTableViewCell.m in Sources */,
E8834E3B280012B60029CCC1 /* XPMineGuildRemoveMemberViewController.m in Sources */, E8834E3B280012B60029CCC1 /* XPMineGuildRemoveMemberViewController.m in Sources */,
9B734F79288A9C4B00CBDAA9 /* XPMineGameTableViewCell.m in Sources */,
E8664EDC27E43632000171BA /* XPRoomPKEmptyTableViewCell.m in Sources */, E8664EDC27E43632000171BA /* XPRoomPKEmptyTableViewCell.m in Sources */,
E880B3A9278BD82300A83B0D /* AcrossRoomPKInfoModel.m in Sources */, E880B3A9278BD82300A83B0D /* AcrossRoomPKInfoModel.m in Sources */,
E82D5C7A276B25D100858D6D /* SpriteSheetImageManager.m in Sources */, E82D5C7A276B25D100858D6D /* SpriteSheetImageManager.m in Sources */,
@@ -7638,6 +7655,7 @@
E8E20BDE28164D3A0033B688 /* SessionNavView.m in Sources */, E8E20BDE28164D3A0033B688 /* SessionNavView.m in Sources */,
E8E859CE28264C2300EE4857 /* HTTPAuthenticationRequest.m in Sources */, E8E859CE28264C2300EE4857 /* HTTPAuthenticationRequest.m in Sources */,
9B92A3442797EE6500AD168F /* XPMatchManagePresenter.m in Sources */, 9B92A3442797EE6500AD168F /* XPMatchManagePresenter.m in Sources */,
9B734F76288A92FB00CBDAA9 /* XPMineFuntionItemModel.m in Sources */,
E88B5CBD26FB3BDF00DA9178 /* XPTeenagerAlertView.m in Sources */, E88B5CBD26FB3BDF00DA9178 /* XPTeenagerAlertView.m in Sources */,
9B86D87D2817EA0900494FCD /* XPNobleSettingViewController.m in Sources */, 9B86D87D2817EA0900494FCD /* XPNobleSettingViewController.m in Sources */,
E82D5C70276AE60000858D6D /* HeadwearModel.m in Sources */, E82D5C70276AE60000858D6D /* HeadwearModel.m in Sources */,

View File

@@ -31,7 +31,7 @@
</Testables> </Testables>
</TestAction> </TestAction>
<LaunchAction <LaunchAction
buildConfiguration = "Release" buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0" launchStyle = "0"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.8 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 430 B

After

Width:  |  Height:  |  Size: 468 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 750 B

After

Width:  |  Height:  |  Size: 690 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 603 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

After

Width:  |  Height:  |  Size: 785 B

View File

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

View File

@@ -49,6 +49,8 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic , assign) BOOL isBindAlipay; @property (nonatomic , assign) BOOL isBindAlipay;
///是否绑定了密码 ///是否绑定了密码
@property (nonatomic , assign) BOOL isBindPasswd; @property (nonatomic , assign) BOOL isBindPasswd;
@property (nonatomic, assign) NSInteger visitNum;///访客数量
@property (nonatomic, assign) NSInteger inRoomNum;///足迹
///相册 ///相册
@property (nonatomic, strong) NSArray<UserPhoto *> *privatePhoto;//相册 @property (nonatomic, strong) NSArray<UserPhoto *> *privatePhoto;//相册
///签名 ///签名

View File

@@ -108,7 +108,7 @@ NS_ASSUME_NONNULL_BEGIN
/// 快速匹配 /// 快速匹配
/// @param completion 完成 /// @param completion 完成
/// @param uid 用户的uid /// @param uid 用户的uid
+ (void)homeQuickMatchLittleGame:(HttpRequestHelperCompletion)completion uid:(NSString *)uid; + (void)homeQuickMatchLittleGame:(HttpRequestHelperCompletion)completion uid:(NSString *)uid mgId:(NSString *)mgId;
/// 获取首页个播浏览记录 /// 获取首页个播浏览记录
/// @param complection 完成 /// @param complection 完成

View File

@@ -131,7 +131,7 @@
/// ///
/// @param completion /// @param completion
/// @param uid uid /// @param uid uid
+ (void)homeQuickMatchLittleGame:(HttpRequestHelperCompletion)completion uid:(NSString *)uid { + (void)homeQuickMatchLittleGame:(HttpRequestHelperCompletion)completion uid:(NSString *)uid mgId:(NSString *)mgId {
[self makeRequest:@"home/fastPick" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, uid, nil]; [self makeRequest:@"home/fastPick" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, uid, nil];
} }

View File

@@ -32,7 +32,7 @@
HomeLittleGameRoomModel * gameRoom = [HomeLittleGameRoomModel modelWithDictionary:data.data]; HomeLittleGameRoomModel * gameRoom = [HomeLittleGameRoomModel modelWithDictionary:data.data];
NSString * uid = gameRoom.uid; NSString * uid = gameRoom.uid;
[[self getView] quickMatchLittleGameRoomSuccess:uid]; [[self getView] quickMatchLittleGameRoomSuccess:uid];
} showLoading:YES] uid:uid]; } showLoading:YES] uid:uid mgId:@""];
} }
@end @end

View File

@@ -10,6 +10,19 @@
NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_BEGIN
@interface Api (Mine) @interface Api (Mine)
/// 获取个人中心功能列表
/// @param completion 完成
/// @param uid uid
+ (void)requestPersonalFunctionItem:(HttpRequestHelperCompletion)completion
uid:(NSString *)uid;
/// 获取个人中心banner列表
/// @param completion 完成
/// @param uid 用户的uid
/// @param type 类型 10
+ (void)requestMineBannerList:(HttpRequestHelperCompletion)completion uid:(NSString *)uid type:(NSString *)type;
/// 保存反馈的信息 /// 保存反馈的信息
/// @param complection 完成 /// @param complection 完成
/// @param feedbackDesc 反馈的内容 /// @param feedbackDesc 反馈的内容

View File

@@ -9,6 +9,21 @@
@implementation Api (Mine) @implementation Api (Mine)
///
/// @param completion
/// @param uid uid
+ (void)requestPersonalFunctionItem:(HttpRequestHelperCompletion)completion
uid:(NSString *)uid {
[self makeRequest:@"personal/center/list" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, uid, nil];
}
/// banner
/// @param completion
/// @param uid uid
/// @param type 10
+ (void)requestMineBannerList:(HttpRequestHelperCompletion)completion uid:(NSString *)uid type:(NSString *)type {
[self makeRequest:@"home/banner" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, uid, type, nil];
}
/// ///
/// @param completion /// @param completion

View File

@@ -0,0 +1,28 @@
//
// XPMineFuntionItemModel.h
// xplan-ios
//
// Created by GreenLand on 2022/7/22.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface XPMineFuntionItemModel : NSObject
@property (nonatomic, assign) NSInteger centerStatus;
@property (nonatomic, copy) NSString *centerPic;
@property (nonatomic, assign) NSInteger centerId;
@property (nonatomic, copy) NSString *centerBadge;
@property (nonatomic, assign) NSInteger skipType;
@property (nonatomic, assign) NSInteger centerSeq;
@property (nonatomic, copy) NSString *centerName;
@property (nonatomic, copy) NSString *centerUrl;
///未读消息
@property (nonatomic, assign) NSInteger unReadCount;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,12 @@
//
// XPMineFuntionItemModel.m
// xplan-ios
//
// Created by GreenLand on 2022/7/22.
//
#import "XPMineFuntionItemModel.h"
@implementation XPMineFuntionItemModel
@end

View File

@@ -9,30 +9,29 @@
NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_BEGIN
typedef NS_ENUM(NSInteger, XPMineItemType) { typedef NS_ENUM(NSInteger, XPMineItemType) {
XPMineItemType_Match_Apply_Record, ///报名记录 XPMineItemType_Match_Relevance_Account = 2, ///跳转url (关联账号,实名认证, 邀请好友)
XPMineItemType_Match_Bonus,///奖金 XPMineItemType_Match_Apply_Record, ///报名记录
XPMineItemType_Match_Standings, ///战绩 XPMineItemType_Match_Bonus,///奖金
XPMineItemType_Match_Card_Bag, ///卡包 XPMineItemType_Match_Standings, ///战绩
XPMineItemType_Match_Shopping, ///商城 XPMineItemType_Match_Card_Bag, ///卡包
XPMineItemType_Match_Relevance_Account, ///关联账号 XPMineItemType_Match_Shopping, ///商城
XPMineItemType_My_Room, ///我的房间 XPMineItemType_Account,///我的账户
XPMineItemType_Collect_Room, ///收藏房间 XPMineItemType_Personinfo,///个人中心
XPMineItemType_My_Level,///我的等级 XPMineItemType_Attention_List,///关注列表
XPMineItemType_Teenager_Mode, ///青少年模式 XPMineItemType_Fans_List,///粉丝列表
XPMineItemType_Real_Name_Authentic,///实名认证
XPMineItemType_Account,///我的账户
XPMineItemType_Invite_Friend,///邀请好友
XPMineItemType_Personinfo,///个人中心
XPMineItemType_My_Dressup,///我的装扮
XPMineItemType_Attention_List,///关注列表
XPMineItemType_Fans_List,///粉丝列表
XPMineItemType_Noble_Center,///贵族中心 XPMineItemType_Noble_Center,///贵族中心
XPMineItemType_Match_Manage, ///赛程管理
XPMineItemType_Skill_Card, ///技能卡 XPMineItemType_Skill_Card, ///技能卡
XPMineItemType_Visitor,///访客记录 XPMineItemType_My_Room = 64, ///我的房间
XPMineItemType_FansTeam,///粉丝团 XPMineItemType_Collect_Room = 65, ///收藏房间
///我的公会 XPMineItemType_My_Guild = 67,///我的公会
XPMineItemType_My_Guild, XPMineItemType_Teenager_Mode = 68, ///青少年模式
XPMineItemType_Match_Manage = 69, ///赛程管理
XPMineItemType_Visitor = 70,///访客记录
XPMineItemType_CP = 71,///cp关系
XPMineItemType_FansTeam = 72,///粉丝团
XPMineItemType_DressUp_Market = 73, ///装扮商场
XPMineItemType_My_Dressup = 74,///我的装扮
}; };

View File

@@ -11,17 +11,28 @@ NS_ASSUME_NONNULL_BEGIN
@interface XPMinePresent : BaseMvpPresenter @interface XPMinePresent : BaseMvpPresenter
/// 获取普通的items
- (void)getNormalItems;
///获取卡片items
- (void)getCardItems;
/// 获取用户信息 /// 获取用户信息
- (void)getUserInfo; - (void)getUserInfo;
/// 获取钱包信息
- (void)getUserWalletInfo;
/// 获取家族详细的信息 /// 获取家族详细的信息
- (void)getClanDetailInfo; - (void)getClanDetailInfo;
///获取个人功能列表
- (void)getPersonItemList;
///获取小游戏列表
- (void)getLittleGameList;
///获取个人中心banner
- (void)getMineBannerList;
///快速匹配小游戏房
/// @param mgId 游戏ID
- (void)quickMatchLittleGameWithMgId:(NSString *)mgId;
@end @end
NS_ASSUME_NONNULL_END NS_ASSUME_NONNULL_END

View File

@@ -11,10 +11,17 @@
///Api ///Api
#import "Api+Mine.h" #import "Api+Mine.h"
#import "Api+Guild.h" #import "Api+Guild.h"
#import "Api+LittleGame.h"
#import "Api+Home.h"
///Model ///Model
#import "XPMineItemModel.h" #import "XPMineItemModel.h"
#import "UserInfoModel.h" #import "UserInfoModel.h"
#import "ClanDetailInfoModel.h" #import "ClanDetailInfoModel.h"
#import "XPMineFuntionItemModel.h"
#import "LittleGameInfoModel.h"
#import "HomeBannerInfoModel.h"
#import "HomeLittleGameRoomModel.h"
#import "WalletInfoModel.h"
///Protocol ///Protocol
#import "XPMineProtocol.h" #import "XPMineProtocol.h"
@implementation XPMinePresent @implementation XPMinePresent
@@ -23,78 +30,6 @@
return ((id<XPMineProtocol>) [super getView]); return ((id<XPMineProtocol>) [super getView]);
} }
///items
- (void)getCardItems {
XPMineItemModel *myAccountItem = [[XPMineItemModel alloc] init];
myAccountItem.itemName = @"我的账户";
myAccountItem.itemImageName = @"mine_normal_my_account";
myAccountItem.type = XPMineItemType_Account;
XPMineItemModel * matchItem = [[XPMineItemModel alloc] init];
matchItem.itemName = @"赛程管理";
matchItem.itemImageName = @"mine_normal_match_manage";
matchItem.type = XPMineItemType_Match_Manage;
XPMineItemModel * skillCardItem = [[XPMineItemModel alloc] init];
skillCardItem.itemName = @"技能卡";
skillCardItem.itemImageName = @"mine_normal_skill_card";
skillCardItem.type = XPMineItemType_Skill_Card;
NSArray * array = @[myAccountItem, matchItem, skillCardItem];
[[self getView] onGetCardItemsSuccess:array];
}
/// items
- (void)getNormalItems {
XPMineItemModel * myRoomItem = [[XPMineItemModel alloc] init];
myRoomItem.itemName = @"我的房间";
myRoomItem.itemImageName = @"mine_normal_my_room";
myRoomItem.type = XPMineItemType_My_Room;
myRoomItem.cornerType = UIRectCornerTopLeft | UIRectCornerTopRight;
XPMineItemModel * teenagerItem = [[XPMineItemModel alloc] init];
teenagerItem.itemName = @"青少年模式";
teenagerItem.itemImageName = @"mine_normal_teenager";
teenagerItem.type = XPMineItemType_Teenager_Mode;
XPMineItemModel * myDressUp = [[XPMineItemModel alloc] init];
myDressUp.itemName = @"我的装扮";
myDressUp.itemImageName = @"mine_normal_my_dressup";
myDressUp.type = XPMineItemType_My_Dressup;
XPMineItemModel * mylevel = [[XPMineItemModel alloc] init];
mylevel.itemName = @"我的等级";
mylevel.itemImageName = @"mine_normal_my_level";
mylevel.type = XPMineItemType_My_Level;
XPMineItemModel *inviteFriend = [[XPMineItemModel alloc] init];
inviteFriend.itemName = @"推荐给好友";
inviteFriend.itemImageName = @"mine_normal_invite_friend";
inviteFriend.type = XPMineItemType_Invite_Friend;
XPMineItemModel * realNameItem = [[XPMineItemModel alloc] init];
realNameItem.itemName = @"实名认证";
realNameItem.itemImageName = @"mine_normal_real_name_authentic";
realNameItem.type = XPMineItemType_Real_Name_Authentic;
realNameItem.cornerType = UIRectCornerBottomLeft | UIRectCornerBottomRight;
XPMineItemModel * visitorItem = [[XPMineItemModel alloc] init];
visitorItem.itemName = @"访客记录";
visitorItem.itemImageName = @"mine_normal_visitor";
visitorItem.type = XPMineItemType_Visitor;
BaseViewController *vc = [self getView];
visitorItem.unReadCount = [vc.tabBarItem.badgeValue integerValue];
XPMineItemModel * fansTeamItem = [[XPMineItemModel alloc] init];
fansTeamItem.itemName = @"粉丝团";
fansTeamItem.itemImageName = @"mine_normal_anchor_fansTeam";
fansTeamItem.type = XPMineItemType_FansTeam;
NSArray * array = @[myRoomItem,teenagerItem, myDressUp, mylevel, inviteFriend, visitorItem,fansTeamItem, realNameItem];
[[self getView] onGetNormalItemsSuccess:array];
}
/// ///
- (void)getUserInfo { - (void)getUserInfo {
NSString * uid = [[AccountInfoStorage instance] getUid]; NSString * uid = [[AccountInfoStorage instance] getUid];
@@ -107,6 +42,16 @@
}] uid:uid]; }] uid:uid];
} }
///
- (void)getUserWalletInfo {
NSString * uid = [AccountInfoStorage instance].getUid;
NSString * ticket = [AccountInfoStorage instance].getTicket;
[Api getUserWalletInfo:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
WalletInfoModel * model = [WalletInfoModel modelWithDictionary:data.data];
[[self getView] getUserWalletInfo:model];
}] uid:uid ticket:ticket];
}
/// ///
- (void)getClanDetailInfo { - (void)getClanDetailInfo {
NSString * uid = [[AccountInfoStorage instance] getUid]; NSString * uid = [[AccountInfoStorage instance] getUid];
@@ -119,4 +64,49 @@
}] uid:uid]; }] uid:uid];
} }
///
- (void)getPersonItemList {
NSString * uid = [[AccountInfoStorage instance] getUid];
if (uid == nil) {
return;
}
[Api requestPersonalFunctionItem:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
NSArray *array = [XPMineFuntionItemModel modelsWithArray:data.data];
[[self getView] onGetMineFuntionItemSuccess:array];
}] uid:uid];
}
///
- (void)getLittleGameList {
[Api getLittleGameList:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
NSArray * array = [LittleGameInfoModel modelsWithArray:data.data];
[[self getView] onGetLittleGameListSuccess:array];
}]];
}
///banner
- (void)getMineBannerList {
NSString * uid = [[AccountInfoStorage instance] getUid];
if (uid == nil) {
return;
}
[Api requestMineBannerList:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
NSArray * array = [HomeBannerInfoModel modelsWithArray:data.data];
[[self getView] onGetPersonalBannerListSuccess:array];
}] uid:uid type:@"10"];
}
///
/// @param mgId ID
- (void)quickMatchLittleGameWithMgId:(NSString *)mgId {
NSString * uid = [AccountInfoStorage instance].getUid;
[Api homeQuickMatchLittleGame:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
HomeLittleGameRoomModel * gameRoom = [HomeLittleGameRoomModel modelWithDictionary:data.data];
NSString * uid = gameRoom.uid;
[[self getView] quickMatchLittleGameRoomSuccess:uid];
} fail:^(NSInteger code, NSString * _Nullable msg) {
[[self getView] quickMatchLittleGameRoomFail:mgId];
} errorToast:NO] uid:uid mgId:mgId];
}
@end @end

View File

@@ -8,22 +8,28 @@
#import <Foundation/Foundation.h> #import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_BEGIN
@class XPMineItemModel, UserInfoModel, ClanDetailInfoModel; @class XPMineItemModel, UserInfoModel, ClanDetailInfoModel, XPMineFuntionItemModel, LittleGameInfoModel, HomeBannerInfoModel, WalletInfoModel;
@protocol XPMineProtocol <NSObject> @protocol XPMineProtocol <NSObject>
/// 获取赛事模块的items
/// @param matchItems 数据源
- (void)onGetMatchItemsSuccess:(NSArray<XPMineItemModel *> *)matchItems;
/// 获取普通的选项
/// @param matchItems 数据源
- (void)onGetNormalItemsSuccess:(NSArray<XPMineItemModel *> *)matchItems;
///获取卡片选项
///@param cardItems 数据源
- (void)onGetCardItemsSuccess:(NSArray<XPMineItemModel *> *)cardItems;
///获取用户信息成功 ///获取用户信息成功
- (void)onGetUserInfoSuccess:(UserInfoModel *)userInfo; - (void)onGetUserInfoSuccess:(UserInfoModel *)userInfo;
///获取家族公会信息成功 ///获取家族公会信息成功
- (void)onGetClanDetailInfoSuccess:(ClanDetailInfoModel *)clanInfo; - (void)onGetClanDetailInfoSuccess:(ClanDetailInfoModel *)clanInfo;
///获取账户余额
- (void)getUserWalletInfo:(WalletInfoModel *)balanceInfo;
///获取个人中心功能
- (void)onGetMineFuntionItemSuccess:(NSArray<XPMineFuntionItemModel *> *)items;
///获取小游戏列表
- (void)onGetLittleGameListSuccess:(NSArray<LittleGameInfoModel *> *)items;
///获取个人中心banner
- (void)onGetPersonalBannerListSuccess:(NSArray<HomeBannerInfoModel *> *)items;
///匹配游戏房成功
- (void)quickMatchLittleGameRoomSuccess:(NSString *)uid;
///匹配游戏房失败
- (void)quickMatchLittleGameRoomFail:(NSString *)mgId;
@end @end
NS_ASSUME_NONNULL_END NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,19 @@
//
// XPMIneGameCollectionViewCell.h
// xplan-ios
//
// Created by GreenLand on 2022/7/22.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@class LittleGameInfoModel;
@interface XPMIneGameCollectionViewCell : UICollectionViewCell
///游戏
@property (nonatomic, strong) LittleGameInfoModel *gameModel;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,80 @@
//
// XPMIneGameCollectionViewCell.m
// xplan-ios
//
// Created by GreenLand on 2022/7/22.
//
#import "XPMIneGameCollectionViewCell.h"
///Third
#import <Masonry/Masonry.h>
#import "NetImageView.h"
///Tool
#import "ThemeColor.h"
///Model
#import "LittleGameInfoModel.h"
@interface XPMIneGameCollectionViewCell ()
///
@property (nonatomic,strong) NetImageView *logoImageView;
///
@property (nonatomic,strong) UILabel *titleLabel;
@end
@implementation XPMIneGameCollectionViewCell
- (instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[self initSubViews];
[self initSubViewConstraints];
}
return self;
}
#pragma mark - Private Method
- (void)initSubViews {
[self.contentView addSubview:self.logoImageView];
[self.contentView addSubview:self.titleLabel];
}
- (void)initSubViewConstraints {
[self.logoImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(40, 40));
make.centerX.top.mas_equalTo(self.contentView);
}];
[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.logoImageView.mas_bottom).offset(6);
make.centerX.mas_equalTo(self.contentView);
}];
}
#pragma mark - Getters And Setters
- (void)setGameModel:(LittleGameInfoModel *)gameModel {
_gameModel = gameModel;
if (gameModel) {
self.titleLabel.text = gameModel.name;
self.logoImageView.imageUrl = gameModel.pic;
}
}
- (NetImageView *)logoImageView {
if (!_logoImageView) {
_logoImageView = [[NetImageView alloc] init];
}
return _logoImageView;
}
- (UILabel *)titleLabel {
if (!_titleLabel) {
_titleLabel = [[UILabel alloc] init];
_titleLabel.font = [UIFont systemFontOfSize:13];
_titleLabel.textAlignment = NSTextAlignmentCenter;
_titleLabel.textColor = [ThemeColor secondTextColor];
}
return _titleLabel;
}
@end

View File

@@ -0,0 +1,28 @@
//
// XPMineGameTableViewCell.h
// xplan-ios
//
// Created by GreenLand on 2022/7/22.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@class LittleGameInfoModel, XPMineGameTableViewCell;
@protocol XPMineGameTableViewCellDelegate <NSObject>
///选择了某个item
- (void)xPMineGameTableViewCell:(XPMineGameTableViewCell *)cell didSelectItem:(LittleGameInfoModel *)item;
@end
@interface XPMineGameTableViewCell : UITableViewCell
///数据
@property (nonatomic,strong) NSArray<LittleGameInfoModel *> *datasource;
///代理
@property (nonatomic,weak) id<XPMineGameTableViewCellDelegate> delegate;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,181 @@
//
// XPMineGameTableViewCell.m
// xplan-ios
//
// Created by GreenLand on 2022/7/22.
//
#import "XPMineGameTableViewCell.h"
///Third
#import <Masonry/Masonry.h>
///Tool
#import "ThemeColor.h"
#import "XPMacro.h"
///View
#import "XPMIneGameCollectionViewCell.h"
@interface XPMineGameTableViewCell ()<UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout>
@property (nonatomic, strong) UIView *mainView;
@property (nonatomic, strong) UILabel *titleLabel;
///
@property (nonatomic,strong) UICollectionView *collectionView;
@property (nonatomic, strong) UIView *slideBackView;
@property (nonatomic, strong) UIView *sliderView;
@end
@implementation XPMineGameTableViewCell
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
[self initSubViews];
[self initSubViewConstraints];
}
return self;
}
#pragma mark - Private Method
- (void)initSubViews {
self.backgroundColor = [UIColor clearColor];
[self.contentView addSubview:self.mainView];
[self.mainView addSubview:self.titleLabel];
[self.mainView addSubview:self.collectionView];
}
- (void)initSubViewConstraints {
[self.mainView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.bottom.mas_equalTo(0);
make.left.right.mas_equalTo(self.contentView).inset(15);
}];
[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.left.mas_equalTo(12);
make.height.mas_equalTo(18);
}];
[self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.titleLabel.mas_bottom).mas_offset(14);
make.left.right.mas_equalTo(0);
make.height.mas_equalTo(63);
}];
}
#pragma mark - UICollectionViewDatasource And UICollectionViewDelegate
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
return self.datasource.count;
}
- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
XPMIneGameCollectionViewCell * cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([XPMIneGameCollectionViewCell class]) forIndexPath:indexPath];
LittleGameInfoModel * item = [self.datasource objectAtIndex:indexPath.row];
cell.gameModel = item;
return cell;
}
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
[collectionView deselectItemAtIndexPath:indexPath animated:YES];
if (self.delegate && [self.delegate respondsToSelector:@selector(xPMineGameTableViewCell:didSelectItem:)]) {
LittleGameInfoModel * model = [self.datasource objectAtIndex:indexPath.row];
[self.delegate xPMineGameTableViewCell:self didSelectItem:model];
}
}
#pragma mark - UICollectionViewFlowlayout
- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section {
return 0;
}
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
CGFloat width = (KScreenWidth - 30) / 4;
return CGSizeMake(width, 63);
}
- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section {
return 0;
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
CGPoint offset = scrollView.contentOffset;
CGRect frame = self.sliderView.frame;
frame.origin.x = offset.x*12/(scrollView.contentSize.width-scrollView.frame.size.width);
self.sliderView.frame = frame;
}
#pragma mark - Getters And Setters
- (void)setDatasource:(NSArray<LittleGameInfoModel *> *)datasource {
_datasource = datasource;
if(datasource.count > 4) {
[self.mainView addSubview:self.slideBackView];
[self.slideBackView addSubview:self.sliderView];
[self.slideBackView mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.mas_equalTo(self.mainView);
make.size.mas_equalTo(CGSizeMake(24, 4));
make.top.mas_equalTo(self.collectionView.mas_bottom).mas_offset(10);
}];
[self.sliderView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(12, 4));
make.top.left.bottom.mas_equalTo(self.slideBackView);
}];
} else {
[self.sliderView removeFromSuperview];
[self.slideBackView removeFromSuperview];
}
[self.collectionView reloadData];
}
- (UIView *)mainView {
if (!_mainView) {
_mainView = [[UIView alloc] init];
_mainView.backgroundColor = [UIColor whiteColor];
_mainView.layer.cornerRadius = 8;
_mainView.layer.masksToBounds = YES;
}
return _mainView;
}
- (UILabel *)titleLabel {
if (!_titleLabel) {
_titleLabel = [[UILabel alloc] init];
_titleLabel.text = @"快捷进房";
_titleLabel.font = [UIFont systemFontOfSize:14 weight:UIFontWeightBold];
_titleLabel.textColor = [ThemeColor mainTextColor];
}
return _titleLabel;
}
- (UICollectionView *)collectionView{
if (!_collectionView) {
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
layout.scrollDirection = UICollectionViewScrollDirectionHorizontal;
_collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout];
_collectionView.showsHorizontalScrollIndicator = NO;
_collectionView.dataSource = self;
_collectionView.delegate = self;
_collectionView.backgroundColor = [ThemeColor appCellBackgroundColor];
[_collectionView registerClass:[XPMIneGameCollectionViewCell class] forCellWithReuseIdentifier:NSStringFromClass([XPMIneGameCollectionViewCell class])];
}
return _collectionView;
}
- (UIView *)sliderView {
if (!_sliderView) {
_sliderView = [[UIView alloc] init];
_sliderView.backgroundColor = UIColorFromRGB(0xFFBC51);
_sliderView.layer.cornerRadius = 2;
_sliderView.layer.masksToBounds = YES;
}
return _sliderView;
}
- (UIView *)slideBackView {
if (!_slideBackView) {
_slideBackView = [[UIView alloc] init];
_slideBackView.backgroundColor = UIColorRGBAlpha(0x000000, 0.1);
_slideBackView.layer.cornerRadius = 2;
_slideBackView.layer.masksToBounds = YES;
_sliderView.clipsToBounds = YES;
}
return _slideBackView;
}
@end

View File

@@ -8,10 +8,12 @@
#import <UIKit/UIKit.h> #import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_BEGIN
@class XPMineItemModel; @class XPMineFuntionItemModel, LittleGameInfoModel;
@interface XPMineHeadItemCollectionViewCell : UICollectionViewCell @interface XPMineHeadItemCollectionViewCell : UICollectionViewCell
///
@property (nonatomic,strong) XPMineItemModel *itemModel; ///功能
@property (nonatomic,strong) XPMineFuntionItemModel *itemModel;
@end @end
NS_ASSUME_NONNULL_END NS_ASSUME_NONNULL_END

View File

@@ -8,14 +8,15 @@
#import "XPMineHeadItemCollectionViewCell.h" #import "XPMineHeadItemCollectionViewCell.h"
///Third ///Third
#import <Masonry/Masonry.h> #import <Masonry/Masonry.h>
#import "NetImageView.h"
///Tool ///Tool
#import "ThemeColor.h" #import "ThemeColor.h"
///Model ///Model
#import "XPMineItemModel.h" #import "XPMineFuntionItemModel.h"
@interface XPMineHeadItemCollectionViewCell () @interface XPMineHeadItemCollectionViewCell ()
/// ///
@property (nonatomic,strong) UIImageView *logoImageView; @property (nonatomic,strong) NetImageView *logoImageView;
/// ///
@property (nonatomic,strong) UILabel *titleLabel; @property (nonatomic,strong) UILabel *titleLabel;
@end @end
@@ -41,28 +42,29 @@
- (void)initSubViewConstraints { - (void)initSubViewConstraints {
[self.logoImageView mas_makeConstraints:^(MASConstraintMaker *make) { [self.logoImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(40, 40)); make.size.mas_equalTo(CGSizeMake(32, 32));
make.centerX.top.mas_equalTo(self.contentView); make.centerX.top.mas_equalTo(self.contentView);
}]; }];
[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.logoImageView.mas_bottom).offset(8); make.top.mas_equalTo(self.logoImageView.mas_bottom).offset(4);
make.centerX.mas_equalTo(self.contentView); make.centerX.mas_equalTo(self.contentView);
make.height.mas_equalTo(17);
}]; }];
} }
#pragma mark - Getters And Setters #pragma mark - Getters And Setters
- (void)setItemModel:(XPMineItemModel *)itemModel { - (void)setItemModel:(XPMineFuntionItemModel *)itemModel {
_itemModel = itemModel; _itemModel = itemModel;
if (_itemModel) { if (_itemModel) {
self.logoImageView.image = [UIImage imageNamed:_itemModel.itemImageName]; self.logoImageView.imageUrl = itemModel.centerPic;
self.titleLabel.text = _itemModel.itemName; self.titleLabel.text = _itemModel.centerName;
} }
} }
- (UIImageView *)logoImageView { - (NetImageView *)logoImageView {
if (!_logoImageView) { if (!_logoImageView) {
_logoImageView = [[UIImageView alloc] init]; _logoImageView = [[NetImageView alloc] init];
_logoImageView.userInteractionEnabled = YES; _logoImageView.userInteractionEnabled = YES;
} }
return _logoImageView; return _logoImageView;

View File

@@ -8,18 +8,18 @@
#import <UIKit/UIKit.h> #import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_BEGIN
@class XPMineItemModel, XPMineHeadItemTableViewCell; @class XPMineFuntionItemModel, XPMineHeadItemTableViewCell;
@protocol XPMineHeadItemTableViewCellDelegate <NSObject> @protocol XPMineHeadItemTableViewCellDelegate <NSObject>
///选择了某个item ///选择了某个item
- (void)xPMineHeadItemTableViewCell:(XPMineHeadItemTableViewCell *)cell didSelectItem:(XPMineItemModel *)item; - (void)xPMineHeadItemTableViewCell:(XPMineHeadItemTableViewCell *)cell didSelectItem:(XPMineFuntionItemModel *)item;
@end @end
@interface XPMineHeadItemTableViewCell : UITableViewCell @interface XPMineHeadItemTableViewCell : UITableViewCell
///数据 ///数据
@property (nonatomic,strong) NSArray<XPMineItemModel *> *datasource; @property (nonatomic,strong) NSArray<XPMineFuntionItemModel *> *datasource;
///代理 ///代理
@property (nonatomic,weak) id<XPMineHeadItemTableViewCellDelegate> delegate; @property (nonatomic,weak) id<XPMineHeadItemTableViewCellDelegate> delegate;

View File

@@ -18,6 +18,10 @@
/// ///
@property (nonatomic,strong) UICollectionView *collectionView; @property (nonatomic,strong) UICollectionView *collectionView;
@property (nonatomic, strong) UIView *mainView;
@property (nonatomic, strong) UIView *slideBackView;
@property (nonatomic, strong) UIView *sliderView;
@end @end
@@ -33,13 +37,19 @@
#pragma mark - Private Method #pragma mark - Private Method
- (void)initSubViews { - (void)initSubViews {
self.backgroundColor = [UIColor clearColor]; self.backgroundColor = [UIColor clearColor];
[self.contentView addSubview:self.collectionView]; [self.contentView addSubview:self.mainView];
[self.mainView addSubview:self.collectionView];
} }
- (void)initSubViewConstraints { - (void)initSubViewConstraints {
[self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) { [self.mainView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.bottom.mas_equalTo(self.contentView);
make.left.right.mas_equalTo(self.contentView).inset(15); make.left.right.mas_equalTo(self.contentView).inset(15);
make.top.bottom.mas_equalTo(self.contentView);
}];
[self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(20);
make.left.right.mas_equalTo(self.mainView);
make.height.mas_equalTo(77+32+17);
}]; }];
} }
@@ -50,7 +60,7 @@
- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { - (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
XPMineHeadItemCollectionViewCell * cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([XPMineHeadItemCollectionViewCell class]) forIndexPath:indexPath]; XPMineHeadItemCollectionViewCell * cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([XPMineHeadItemCollectionViewCell class]) forIndexPath:indexPath];
XPMineItemModel * item = [self.datasource objectAtIndex:indexPath.row]; XPMineFuntionItemModel * item = [self.datasource objectAtIndex:indexPath.row];
cell.itemModel = item; cell.itemModel = item;
return cell; return cell;
} }
@@ -58,48 +68,97 @@
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { - (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
[collectionView deselectItemAtIndexPath:indexPath animated:YES]; [collectionView deselectItemAtIndexPath:indexPath animated:YES];
if (self.delegate && [self.delegate respondsToSelector:@selector(xPMineHeadItemTableViewCell:didSelectItem:)]) { if (self.delegate && [self.delegate respondsToSelector:@selector(xPMineHeadItemTableViewCell:didSelectItem:)]) {
XPMineItemModel * model = [self.datasource objectAtIndex:indexPath.row]; XPMineFuntionItemModel * model = [self.datasource objectAtIndex:indexPath.row];
[self.delegate xPMineHeadItemTableViewCell:self didSelectItem:model]; [self.delegate xPMineHeadItemTableViewCell:self didSelectItem:model];
} }
} }
#pragma mark - UICollectionViewFlowlayout #pragma mark - UICollectionViewFlowlayout
- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section {
return UIEdgeInsetsMake(14, 0, 0, 0);
}
- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section { - (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section {
return 0; return 0;
} }
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
CGFloat width = (KScreenWidth - 30) / 3; CGFloat width = (KScreenWidth - 30) / 4;
return CGSizeMake(width, 68); return CGSizeMake(width, 32+4+17);
} }
- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section { - (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section {
return 0; return 0;
} }
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
CGPoint offset = scrollView.contentOffset;
CGRect frame = self.sliderView.frame;
frame.origin.x = offset.x*12/(scrollView.contentSize.width-scrollView.frame.size.width);
self.sliderView.frame = frame;
}
#pragma mark - Getters And Setters #pragma mark - Getters And Setters
- (void)setDatasource:(NSArray<XPMineItemModel *> *)datasource { - (void)setDatasource:(NSArray<XPMineFuntionItemModel *> *)datasource {
_datasource = datasource; _datasource = datasource;
if(datasource.count > 4) {
[self.mainView addSubview:self.slideBackView];
[self.slideBackView addSubview:self.sliderView];
[self.slideBackView mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.mas_equalTo(self.mainView);
make.size.mas_equalTo(CGSizeMake(24, 4));
make.top.mas_equalTo(self.collectionView.mas_bottom).mas_offset(10);
}];
[self.sliderView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(12, 4));
make.top.left.bottom.mas_equalTo(self.slideBackView);
}];
} else {
[self.sliderView removeFromSuperview];
[self.slideBackView removeFromSuperview];
}
[self.collectionView reloadData]; [self.collectionView reloadData];
} }
- (UICollectionView *)collectionView{ - (UICollectionView *)collectionView{
if (!_collectionView) { if (!_collectionView) {
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
layout.scrollDirection = UICollectionViewScrollDirectionHorizontal;
_collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout]; _collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout];
_collectionView.dataSource = self; _collectionView.dataSource = self;
_collectionView.delegate = self; _collectionView.delegate = self;
_collectionView.backgroundColor = [ThemeColor appCellBackgroundColor]; _collectionView.backgroundColor = [ThemeColor appCellBackgroundColor];
[_collectionView registerClass:[XPMineHeadItemCollectionViewCell class] forCellWithReuseIdentifier:NSStringFromClass([XPMineHeadItemCollectionViewCell class])]; [_collectionView registerClass:[XPMineHeadItemCollectionViewCell class] forCellWithReuseIdentifier:NSStringFromClass([XPMineHeadItemCollectionViewCell class])];
_collectionView.layer.masksToBounds = YES; _collectionView.showsHorizontalScrollIndicator = NO;
_collectionView.layer.cornerRadius = 10;
} }
return _collectionView; return _collectionView;
} }
- (UIView *)sliderView {
if (!_sliderView) {
_sliderView = [[UIView alloc] init];
_sliderView.backgroundColor = UIColorFromRGB(0xFFBC51);
_sliderView.layer.cornerRadius = 2;
_sliderView.layer.masksToBounds = YES;
}
return _sliderView;
}
- (UIView *)slideBackView {
if (!_slideBackView) {
_slideBackView = [[UIView alloc] init];
_slideBackView.backgroundColor = UIColorRGBAlpha(0x000000, 0.1);
_slideBackView.layer.cornerRadius = 2;
_slideBackView.layer.masksToBounds = YES;
_slideBackView.clipsToBounds = YES;
}
return _slideBackView;
}
- (UIView *)mainView {
if (!_mainView) {
_mainView = [[UIView alloc] init];
_mainView.backgroundColor = [UIColor whiteColor];
_mainView.layer.cornerRadius = 8;
_mainView.layer.masksToBounds = YES;
}
return _mainView;
}
@end @end

View File

@@ -6,6 +6,7 @@
// //
#import <UIKit/UIKit.h> #import <UIKit/UIKit.h>
#import "UserVipInfoVo.h"
NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_BEGIN

View File

@@ -13,6 +13,7 @@
@property (nonatomic, strong) UIImageView *bgImageView; @property (nonatomic, strong) UIImageView *bgImageView;
@property (nonatomic, strong) UILabel *titleLabel; @property (nonatomic, strong) UILabel *titleLabel;
@property (nonatomic, strong) UILabel *descLabel;
@end @end
@@ -31,24 +32,32 @@
#pragma mark - Private Method #pragma mark - Private Method
- (void)initSubViews { - (void)initSubViews {
[self addSubview:self.bgImageView]; [self addSubview:self.bgImageView];
[self.bgImageView addSubview:self.titleLabel]; [self addSubview:self.titleLabel];
[self addSubview:self.descLabel];
} }
- (void)initSubViewConstraints { - (void)initSubViewConstraints {
[self.bgImageView mas_makeConstraints:^(MASConstraintMaker *make) { [self.bgImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.mas_equalTo(self).inset(15).priority(500); make.edges.mas_equalTo(0);
make.bottom.top.mas_equalTo(0);
}]; }];
[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerY.mas_equalTo(self.bgImageView); make.bottom.mas_equalTo(self.mas_centerY);
make.right.mas_equalTo(self.bgImageView).mas_offset(-8); make.left.mas_equalTo(48);
make.right.mas_equalTo(0);
make.height.mas_equalTo(22);
}];
[self.descLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.titleLabel.mas_bottom).mas_offset(2);
make.left.mas_equalTo(self.titleLabel);
make.right.mas_equalTo(0);
make.height.mas_equalTo(14);
}]; }];
} }
- (void)setHadNoble:(BOOL)hadNoble { - (void)setHadNoble:(BOOL)hadNoble {
if (hadNoble) { if (hadNoble) {
self.titleLabel.text = @"查看我的特权>>"; self.descLabel.text = @"查看我的特权";
} }
} }
@@ -64,11 +73,21 @@
- (UILabel *)titleLabel { - (UILabel *)titleLabel {
if (!_titleLabel) { if (!_titleLabel) {
_titleLabel = [[UILabel alloc] init]; _titleLabel = [[UILabel alloc] init];
_titleLabel.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; _titleLabel.font = [UIFont systemFontOfSize:16 weight:UIFontWeightMedium];
_titleLabel.textColor = UIColorFromRGB(0xffffff); _titleLabel.textColor = UIColorFromRGB(0xFFE595);
_titleLabel.text = @"开通贵族立享各项特权>>"; _titleLabel.text = @"贵族中心";
} }
return _titleLabel; return _titleLabel;
} }
- (UILabel *)descLabel {
if (!_descLabel) {
_descLabel = [[UILabel alloc] init];
_descLabel.font = [UIFont systemFontOfSize:10 weight:UIFontWeightMedium];
_descLabel.textColor = UIColorFromRGB(0x9F8052);
_descLabel.text = @"开通贵族立享各项特权";
}
return _descLabel;
}
@end @end

View File

@@ -0,0 +1,18 @@
//
// XPMineAccountView.h
// xplan-ios
//
// Created by GreenLand on 2022/7/22.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface XPMineAccountView : UIView
@property (nonatomic, copy) NSString *diamonds;
@end
NS_ASSUME_NONNULL_END

View File

@@ -2,139 +2,91 @@
// XPMineAccountView.m // XPMineAccountView.m
// xplan-ios // xplan-ios
// //
// Created by on 2021/9/16. // Created by GreenLand on 2022/7/22.
// //
#import "XPMineAccountView.h" #import "XPMineAccountView.h"
///Third
#import <Masonry/Masonry.h> #import <Masonry/Masonry.h>
///Tool
#import "ThemeColor.h" #import "ThemeColor.h"
#import "XPMacro.h"
#import "UIImage+Utils.h"
@implementation XPMineAccountSubView
- (instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[self initSubViews];
[self initSubViewConstraints];
}
return self;
}
#pragma mark - Private Method
- (void)initSubViews {
[self addSubview:self.backImageView];
[self addSubview:self.titleLabel];
[self addSubview:self.freeTicketButton];
}
- (void)initSubViewConstraints {
[self.backImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.mas_equalTo(self);
}];
[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.backImageView).offset(18);
make.left.mas_equalTo(self.backImageView).offset(16);
make.right.mas_lessThanOrEqualTo(self.backImageView);
}];
[self.freeTicketButton mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.top.mas_equalTo(self.backImageView);
}];
}
- (UIImageView *)backImageView {
if (!_backImageView) {
_backImageView = [[UIImageView alloc] init];
_backImageView.userInteractionEnabled = YES;
_backImageView.layer.masksToBounds = YES;
_backImageView.layer.cornerRadius = 10;
_backImageView.contentMode = UIViewContentModeScaleAspectFill;
}
return _backImageView;
}
- (UILabel *)titleLabel {
if (!_titleLabel) {
_titleLabel = [[UILabel alloc] init];
_titleLabel.font = [UIFont fontWithName:@"PingFang-SC-Bold" size:16];
_titleLabel.textColor = [ThemeColor mainTextColor];
}
return _titleLabel;
}
- (UIButton *)freeTicketButton {
if (!_freeTicketButton) {
_freeTicketButton = [UIButton buttonWithType:UIButtonTypeCustom];
[_freeTicketButton setBackgroundImage:[UIImage imageNamed:@"mine_head_free_ticket"] forState:UIControlStateNormal];
}
return _freeTicketButton;
}
@end
@interface XPMineAccountView () @interface XPMineAccountView ()
///
@property (nonatomic,strong) XPMineAccountSubView *accountView; @property (nonatomic, strong) UIImageView *bgImageView;
/// @property (nonatomic, strong) UILabel *coinLabel;
@property (nonatomic,strong) XPMineAccountSubView *recommendView; @property (nonatomic, strong) UILabel *descLabel;
@end @end
@implementation XPMineAccountView @implementation XPMineAccountView
- (instancetype)initWithFrame:(CGRect)frame { - (instancetype)initWithFrame:(CGRect)frame
self = [super initWithFrame:frame]; {
if (self) { self = [super initWithFrame:frame];
[self initSubViews]; if (self) {
[self initSubViewConstraints]; [self initSubViews];
} [self initSubViewConstraints];
return self; }
return self;
} }
#pragma mark - Private Method #pragma mark - Private Method
- (void)initSubViews { - (void)initSubViews {
[self addSubview:self.accountView]; [self addSubview:self.bgImageView];
[self addSubview:self.recommendView]; [self addSubview:self.coinLabel];
[self addSubview:self.descLabel];
} }
- (void)initSubViewConstraints { - (void)initSubViewConstraints {
[self.accountView mas_makeConstraints:^(MASConstraintMaker *make) { [self.bgImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self).offset(15); make.edges.mas_equalTo(0);
make.top.bottom.mas_equalTo(self); }];
make.width.mas_equalTo((KScreenWidth - 15 * 3) / 2);
}];
[self.recommendView mas_makeConstraints:^(MASConstraintMaker *make) { [self.coinLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.mas_equalTo(self).offset(-15); make.bottom.mas_equalTo(self.mas_centerY);
make.top.bottom.width.mas_equalTo(self.accountView); make.left.mas_equalTo(15);
}]; make.right.mas_equalTo(0);
make.height.mas_equalTo(24);
}];
[self.descLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.coinLabel);
make.top.mas_equalTo(self.coinLabel.mas_bottom).mas_offset(4);
make.height.mas_equalTo(14);
}];
} }
- (void)setDiamonds:(NSString *)diamonds {
self.coinLabel.text = diamonds;
}
#pragma mark - Getters And Setters #pragma mark - Getters And Setters
- (UIImageView *)bgImageView {
- (XPMineAccountSubView *)accountView { if (!_bgImageView) {
if (!_accountView) { _bgImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"mine_head_account_bg"]];
_accountView = [[XPMineAccountSubView alloc] init]; _bgImageView.contentMode = UIViewContentModeScaleAspectFit;
_accountView.backImageView.image = [UIImage imageNamed:@"mine_head_account_bg"]; }
_accountView.titleLabel.text = @"我的账户"; return _bgImageView;
_accountView.freeTicketButton.hidden = YES;
}
return _accountView;
} }
- (XPMineAccountSubView *)recommendView { - (UILabel *)descLabel {
if (!_recommendView) { if (!_descLabel) {
_recommendView = [[XPMineAccountSubView alloc] init]; _descLabel = [[UILabel alloc] init];
_recommendView.backImageView.image = [UIImage imageNamed:@"mine_head_recommend_bg"]; _descLabel.font = [UIFont systemFontOfSize:10 weight:UIFontWeightMedium];
_recommendView.titleLabel.text = @"推荐给好友"; _descLabel.textColor = UIColorRGBAlpha(0x000000, 0.3);
} _descLabel.text = @"钻石余额";
return _recommendView; }
return _descLabel;
} }
- (UILabel *)coinLabel {
if (!_coinLabel) {
_coinLabel = [[UILabel alloc] init];
_coinLabel.font = [UIFont systemFontOfSize:20 weight:UIFontWeightBold];
_coinLabel.textColor = [ThemeColor mainTextColor];
}
return _coinLabel;
}
@end @end

View File

@@ -8,18 +8,22 @@
#import <UIKit/UIKit.h> #import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_BEGIN
@class UserInfoModel,XPMineHeadView; @class UserInfoModel,XPMineHeadView, WalletInfoModel;
@protocol XPMineHeadViewDelegate <NSObject> @protocol XPMineHeadViewDelegate <NSObject>
///点击了头像 ///点击了头像
- (void)xPMineHeadView:(XPMineHeadView *)view didClickAvatar:(UserInfoModel *)info; - (void)xPMineHeadView:(XPMineHeadView *)view didClickAvatar:(UserInfoModel *)info;
//点击我的账户
- (void)xPMineHeadView:(XPMineHeadView *)view didClickAccount:(UserInfoModel *)info;
//点击邀请好友
- (void)xPMineHeadView:(XPMineHeadView *)view didClickInviteFriend:(UserInfoModel *)info;
///点击了关注 ///点击了关注
- (void)xpMineHeadViewClickAttention; - (void)xpMineHeadViewClickAttention;
///点击了粉丝 ///点击了粉丝
- (void)xpMineHeadViewClickFans; - (void)xpMineHeadViewClickFans;
///点击了技能卡
- (void)xpMineHeadViewClickSkillCard;
///点击了访客
- (void)xpMineHeadViewClickVisitor;
///点击了足迹
- (void)xpMineHeadViewClickFootprint;
///点击了账户中心
- (void)xpMineHeadViewClickAcount;
///点击了贵族中心 ///点击了贵族中心
- (void)xPMineHeadViewCliekNobleCenter; - (void)xPMineHeadViewCliekNobleCenter;
@@ -27,6 +31,7 @@ NS_ASSUME_NONNULL_BEGIN
@interface XPMineHeadView : UIView @interface XPMineHeadView : UIView
///用户信息 ///用户信息
@property (nonatomic,strong) UserInfoModel *userInfo; @property (nonatomic,strong) UserInfoModel *userInfo;
@property (nonatomic, strong) WalletInfoModel *walletInfo;
///代理 ///代理
@property (nonatomic,assign) id<XPMineHeadViewDelegate> delegate; @property (nonatomic,assign) id<XPMineHeadViewDelegate> delegate;
@end @end

View File

@@ -18,15 +18,17 @@
#import "UIImage+Utils.h" #import "UIImage+Utils.h"
#import "XPMineFriendNumberView.h" #import "XPMineFriendNumberView.h"
#import "XPNobleCenterEntranceView.h" #import "XPNobleCenterEntranceView.h"
#import "XPMineAccountView.h"
///Model ///Model
#import "UserInfoModel.h" #import "UserInfoModel.h"
#import "WalletInfoModel.h"
@interface XPMineHeadView () @interface XPMineHeadView ()
/// ///
@property (nonatomic,strong) NetImageView * avatarImageView; @property (nonatomic,strong) NetImageView * avatarImageView;
///name ///name
@property (nonatomic,strong) UIStackView *nameStackView; @property (nonatomic,strong) UIStackView *nameStackView;
/// ///icon
@property (nonatomic,strong) NetImageView *nobleImageView; @property (nonatomic,strong) NetImageView *nobleImageView;
/// ///
@property (nonatomic,strong) UILabel *nameLabel; @property (nonatomic,strong) UILabel *nameLabel;
@@ -40,12 +42,20 @@
@property (nonatomic,strong) UIImageView *sexImageView; @property (nonatomic,strong) UIImageView *sexImageView;
/// ///
@property (nonatomic,strong) YYLabel *levelLabel; @property (nonatomic,strong) YYLabel *levelLabel;
///线 ///
@property (nonatomic,strong) UIView * lineView; @property (nonatomic,strong) UIStackView *attentionStackView;
/// ///
@property (nonatomic,strong) XPMineFriendNumberView *attentionView; @property (nonatomic,strong) XPMineFriendNumberView *attentionView;
/// ///
@property (nonatomic,strong) XPMineFriendNumberView *fansView; @property (nonatomic,strong) XPMineFriendNumberView *fansView;
///访
@property (nonatomic,strong) XPMineFriendNumberView *visitorView;
///
@property (nonatomic,strong) XPMineFriendNumberView *footprintView;
///
@property (nonatomic, strong) UIButton *skillCardButton;
///
@property (nonatomic, strong) XPMineAccountView *accountView;
/// ///
@property (nonatomic, strong) XPNobleCenterEntranceView *nobleEntranceView; @property (nonatomic, strong) XPNobleCenterEntranceView *nobleEntranceView;
@@ -63,48 +73,28 @@
return self; return self;
} }
#pragma mark - Response
- (void)tapAvatarImageView {
if (self.delegate && [self.delegate respondsToSelector:@selector(xPMineHeadView:didClickAvatar:)]) {
[self.delegate xPMineHeadView:self didClickAvatar:self.userInfo];
}
}
- (void)tapFansRecognizer {
if (self.delegate && [self.delegate respondsToSelector:@selector(xpMineHeadViewClickFans)]) {
[self.delegate xpMineHeadViewClickFans];
}
}
- (void)tapAttentionRecognizer {
if (self.delegate && [self.delegate respondsToSelector:@selector(xpMineHeadViewClickAttention)]) {
[self.delegate xpMineHeadViewClickAttention];
}
}
- (void)tapNobleCenterrecognizer {
if (self.delegate && [self.delegate respondsToSelector:@selector(xPMineHeadViewCliekNobleCenter)]) {
[self.delegate xPMineHeadViewCliekNobleCenter];
}
}
#pragma mark - Private Method #pragma mark - Private Method
- (void)initSubViews { - (void)initSubViews {
self.backgroundColor = [UIColor clearColor]; self.backgroundColor = [UIColor clearColor];
[self addSubview:self.avatarImageView]; [self addSubview:self.avatarImageView];
[self addSubview:self.nobleImageView];
[self addSubview:self.nameStackView]; [self addSubview:self.nameStackView];
[self addSubview:self.idStackView]; [self addSubview:self.idStackView];
[self.nameStackView addArrangedSubview:self.nameLabel];
[self.nameStackView addArrangedSubview:self.editButton];
[self.idStackView addArrangedSubview:self.idLabel];
[self.idStackView addArrangedSubview:self.sexImageView];
[self addSubview:self.levelLabel]; [self addSubview:self.levelLabel];
[self addSubview:self.lineView]; [self addSubview:self.skillCardButton];
[self addSubview:self.attentionView];
[self addSubview:self.fansView];
[self addSubview:self.nobleEntranceView];
[self addSubview:self.nobleImageView];
[self.nameStackView addArrangedSubview:self.nameLabel]; [self addSubview:self.attentionStackView];
[self.nameStackView addArrangedSubview:self.editButton]; [self.attentionStackView addArrangedSubview:self.attentionView];
[self.idStackView addArrangedSubview:self.idLabel]; [self.attentionStackView addArrangedSubview:self.fansView];
[self.idStackView addArrangedSubview:self.sexImageView]; [self.attentionStackView addArrangedSubview:self.visitorView];
[self.attentionStackView addArrangedSubview:self.footprintView];
[self addSubview:self.accountView];
[self addSubview:self.nobleEntranceView];
UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapAvatarImageView)]; UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapAvatarImageView)];
[self.avatarImageView addGestureRecognizer:tap]; [self.avatarImageView addGestureRecognizer:tap];
@@ -136,29 +126,95 @@
make.left.mas_equalTo(self.nobleImageView); make.left.mas_equalTo(self.nobleImageView);
make.top.mas_equalTo(self.idStackView.mas_bottom).offset(4); make.top.mas_equalTo(self.idStackView.mas_bottom).offset(4);
}]; }];
[self.lineView mas_makeConstraints:^(MASConstraintMaker *make) { [self.skillCardButton mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(1, 30)); make.centerY.mas_equalTo(self.avatarImageView);
make.centerY.mas_equalTo(self.idLabel.mas_bottom).offset(2); make.right.mas_equalTo(15);
make.left.mas_equalTo(self.idLabel.mas_right).offset(30); make.width.mas_equalTo(87);
}]; make.height.mas_equalTo(28);
[self.attentionView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.lineView.mas_right);
make.centerY.mas_equalTo(self.lineView);
make.width.mas_equalTo(80);
}];
[self.fansView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.centerY.mas_equalTo(self.attentionView);
make.left.mas_equalTo(self.attentionView.mas_right);
}];
CGFloat nobleH = (KScreenWidth - 30.0)/ 345.0 * 44;
[self.nobleEntranceView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.mas_equalTo(self);
make.height.mas_equalTo(nobleH);
make.bottom.mas_equalTo(self.mas_bottom).offset(0);
}]; }];
[self.attentionStackView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.levelLabel.mas_bottom).mas_offset(10);
make.height.mas_equalTo(44);
make.left.mas_equalTo(15);
make.right.mas_equalTo(-15);
}];
CGFloat width = (KScreenWidth - 30) / 4;
CGFloat height = 44;
[self.attentionView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(width, height));
}];
[self.fansView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(width, height));
}];
[self.visitorView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(width, height));
}];
[self.footprintView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(width, height));
}];
width = (KScreenWidth - 30 - 17) * 0.5;
height = width * 64 / 164;
[self.accountView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.attentionStackView.mas_bottom).mas_offset(16);
make.size.mas_equalTo(CGSizeMake(width, height));
make.left.mas_equalTo(15);
}];
[self.nobleEntranceView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.accountView);
make.size.mas_equalTo(CGSizeMake(width, height));
make.right.mas_equalTo(-15);
}];
}
#pragma mark - Action
- (void)tapAvatarImageView {
if (self.delegate && [self.delegate respondsToSelector:@selector(xPMineHeadView:didClickAvatar:)]) {
[self.delegate xPMineHeadView:self didClickAvatar:self.userInfo];
}
}
///
- (void)tapSkillCardRecognizer {
if (self.delegate && [self.delegate respondsToSelector:@selector(xpMineHeadViewClickSkillCard)]) {
[self.delegate xpMineHeadViewClickSkillCard];
}
}
///
- (void)tapFansRecognizer {
if (self.delegate && [self.delegate respondsToSelector:@selector(xpMineHeadViewClickFans)]) {
[self.delegate xpMineHeadViewClickFans];
}
}
///
- (void)tapAttentionRecognizer {
if (self.delegate && [self.delegate respondsToSelector:@selector(xpMineHeadViewClickAttention)]) {
[self.delegate xpMineHeadViewClickAttention];
}
}
///访
- (void)tapVisitorRecognizer {
if (self.delegate && [self.delegate respondsToSelector:@selector(xpMineHeadViewClickVisitor)]) {
[self.delegate xpMineHeadViewClickVisitor];
}
}
///
- (void)tapFootprintRecognizer {
if (self.delegate && [self.delegate respondsToSelector:@selector(xpMineHeadViewClickFootprint)]) {
[self.delegate xpMineHeadViewClickFootprint];
}
}
///
- (void)tapAccountrecognizer {
if (self.delegate && [self.delegate respondsToSelector:@selector(xpMineHeadViewClickAcount)]) {
[self.delegate xpMineHeadViewClickAcount];
}
}
///
- (void)tapNobleCenterrecognizer {
if (self.delegate && [self.delegate respondsToSelector:@selector(xPMineHeadViewCliekNobleCenter)]) {
[self.delegate xPMineHeadViewCliekNobleCenter];
}
} }
#pragma mark - NSMutableAttributedString #pragma mark - NSMutableAttributedString
@@ -371,9 +427,16 @@
self.levelLabel.attributedText = [self creatNameplateLevleAttribute:_userInfo]; self.levelLabel.attributedText = [self creatNameplateLevleAttribute:_userInfo];
self.fansView.number = [NSString stringWithFormat:@"%ld",_userInfo.fansNum]; self.fansView.number = [NSString stringWithFormat:@"%ld",_userInfo.fansNum];
self.attentionView.number = [NSString stringWithFormat:@"%ld",_userInfo.followNum]; self.attentionView.number = [NSString stringWithFormat:@"%ld",_userInfo.followNum];
self.visitorView.number = [NSString stringWithFormat:@"%ld", _userInfo.visitNum];
self.footprintView.number = [NSString stringWithFormat:@"%ld", _userInfo.inRoomNum];
self.nobleEntranceView.hadNoble = userInfo.userVipInfoVO; self.nobleEntranceView.hadNoble = userInfo.userVipInfoVO;
} }
} }
- (void)setWalletInfo:(WalletInfoModel *)walletInfo {
self.accountView.diamonds = walletInfo.diamonds;
}
- (NetImageView *)avatarImageView { - (NetImageView *)avatarImageView {
if (!_avatarImageView) { if (!_avatarImageView) {
NetImageConfig * config = [[NetImageConfig alloc]init]; NetImageConfig * config = [[NetImageConfig alloc]init];
@@ -460,12 +523,30 @@
return _levelLabel; return _levelLabel;
} }
- (UIView *)lineView { - (UIButton *)skillCardButton {
if (!_lineView) { if (!_skillCardButton) {
_lineView = [[UIView alloc] init]; _skillCardButton = [UIButton buttonWithType:UIButtonTypeCustom];
_lineView.backgroundColor = [ThemeColor dividerColor]; [_skillCardButton setImage:[UIImage imageNamed:@"mine_normal_skill_card"] forState:UIControlStateNormal];
} [_skillCardButton setTitle:@"技能卡" forState:UIControlStateNormal];
return _lineView; _skillCardButton.titleLabel.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium];
[_skillCardButton setTitleColor:UIColorFromRGB(0x000000) forState:UIControlStateNormal];
[_skillCardButton setImageEdgeInsets:UIEdgeInsetsMake(0, -10, 0, 0)];
_skillCardButton.backgroundColor = [UIColor whiteColor];
_skillCardButton.layer.cornerRadius = 14;
_skillCardButton.layer.masksToBounds = YES;
[_skillCardButton addTarget:self action:@selector(tapSkillCardRecognizer) forControlEvents:UIControlEventTouchUpInside];
}
return _skillCardButton;
}
- (UIStackView *)attentionStackView {
if (!_attentionStackView) {
_attentionStackView = [[UIStackView alloc] init];
_attentionStackView.axis = UILayoutConstraintAxisHorizontal;
_attentionStackView.distribution = UIStackViewDistributionFill;
_attentionStackView.alignment = UIStackViewAlignmentFill;
}
return _attentionStackView;
} }
- (XPMineFriendNumberView *)attentionView { - (XPMineFriendNumberView *)attentionView {
@@ -488,6 +569,35 @@
return _fansView; return _fansView;
} }
- (XPMineFriendNumberView *)visitorView {
if (!_visitorView) {
_visitorView = [[XPMineFriendNumberView alloc] init];
_visitorView.title = @"访客";
UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapVisitorRecognizer)];
[_visitorView addGestureRecognizer:tap];
}
return _visitorView;
}
- (XPMineFriendNumberView *)footprintView {
if (!_footprintView) {
_footprintView = [[XPMineFriendNumberView alloc] init];
_footprintView.title = @"足迹";
UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapFootprintRecognizer)];
[_footprintView addGestureRecognizer:tap];
}
return _footprintView;
}
- (XPMineAccountView *)accountView {
if (!_accountView) {
_accountView = [[XPMineAccountView alloc] init];
UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapAccountrecognizer)];
[_accountView addGestureRecognizer:tap];
}
return _accountView;
}
- (XPNobleCenterEntranceView *)nobleEntranceView { - (XPNobleCenterEntranceView *)nobleEntranceView {
if (!_nobleEntranceView) { if (!_nobleEntranceView) {
_nobleEntranceView = [[XPNobleCenterEntranceView alloc] init]; _nobleEntranceView = [[XPNobleCenterEntranceView alloc] init];

View File

@@ -1,19 +0,0 @@
//
// XPMineSkillTipView.h
// xplan-ios
//
// Created by GreenLand on 2022/1/19.
//
#import <UIKit/UIKit.h>
static NSString * const kYinyouSkillCardTipKey = @"kYinyouSkillCardTipKey";
NS_ASSUME_NONNULL_BEGIN
@interface XPMineSkillTipView : UIView
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,85 +0,0 @@
//
// XPMineSkillTipView.m
// xplan-ios
//
// Created by GreenLand on 2022/1/19.
//
#import "XPMineSkillTipView.h"
///Third
#import <Masonry/Masonry.h>
///Tool
#import "ThemeColor.h"
#import "XPMacro.h"
@interface XPMineSkillTipView()
@property (nonatomic, strong) UIView *bgView;
@property (nonatomic, strong) UIImageView *tipImageView;
@end
@implementation XPMineSkillTipView
- (instancetype)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
[self initSubViews];
[self initSubViewConstraints];
}
return self;
}
#pragma mark - Response
- (void)onTapSkillTip:(UITapGestureRecognizer *)ges {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:@"isShow" forKey:kYinyouSkillCardTipKey];
[defaults synchronize];
[self removeFromSuperview];
}
#pragma mark - Private Method
- (void)initSubViews {
[self addSubview:self.bgView];
[self addSubview:self.tipImageView];
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onTapSkillTip:)];
[self.tipImageView addGestureRecognizer:tap];
}
- (void)initSubViewConstraints {
CGFloat nobleH = (KScreenWidth - 30.0)/ 345.0 * 44;
[self.bgView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.mas_equalTo(0);
}];
CGFloat margin = ((KScreenWidth - 30) / 3 - 40) * 0.5 * 0.5;
CGFloat mutiple = 405/292.0;
[self.tipImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(123 + nobleH + kSafeAreaTopHeight + kStatusBarHeight);
make.centerX.mas_equalTo(self);
// make.width.mas_equalTo(292);
// make.height.mas_equalTo(405);
make.height.mas_equalTo(self.tipImageView.mas_width).multipliedBy(mutiple);
make.right.mas_equalTo(-15 - margin);
}];
}
- (UIView *)bgView {
if (!_bgView) {
_bgView = [[UIView alloc] init];
_bgView.backgroundColor = [ThemeColor tabbarNormalColor];
}
return _bgView;
}
- (UIImageView *)tipImageView {
if (!_tipImageView) {
_tipImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"mine_skillCard_guild"]];
_tipImageView.contentMode = UIViewContentModeScaleAspectFit;
_tipImageView.userInteractionEnabled = YES;
}
return _tipImageView;
}
@end

View File

@@ -22,15 +22,19 @@
#import "UserInfoModel.h" #import "UserInfoModel.h"
#import "XPMineVisitorUnReadModel.h" #import "XPMineVisitorUnReadModel.h"
#import "ClanDetailInfoModel.h" #import "ClanDetailInfoModel.h"
#import "HomeBannerInfoModel.h"
#import "XPMineFuntionItemModel.h"
#import "LittleGameInfoModel.h"
#import "WalletInfoModel.h"
///P ///P
#import "XPMineProtocol.h" #import "XPMineProtocol.h"
#import "XPMinePresent.h" #import "XPMinePresent.h"
///View ///View
#import "XPMineMenuTableViewCell.h"
#import "XPMineHeadItemTableViewCell.h" #import "XPMineHeadItemTableViewCell.h"
#import "XPMineHeadView.h" #import "XPMineHeadView.h"
#import "XPMineSkillTipView.h"
#import "XPLittleGameRoomOpenView.h" #import "XPLittleGameRoomOpenView.h"
#import "XPMineGameTableViewCell.h"
#import "XPHomeBannerTableViewCell.h"
///VC ///VC
#import "XPMineSettingViewController.h" #import "XPMineSettingViewController.h"
#import "XPMineTeenagerViewController.h" #import "XPMineTeenagerViewController.h"
@@ -50,25 +54,23 @@
#import "XPMineGuildViewController.h" #import "XPMineGuildViewController.h"
@interface XPMineViewController ()<UITableViewDelegate, UITableViewDataSource, XPMineProtocol, XPMineHeadItemTableViewCellDelegate, XPMineHeadViewDelegate> @interface XPMineViewController ()<UITableViewDelegate, UITableViewDataSource, XPMineProtocol, XPMineHeadItemTableViewCellDelegate, XPMineHeadViewDelegate, XPMineGameTableViewCellDelegate, XPHomeBannerTableViewCellDelegate>
/// ///
@property (nonatomic, strong) UIView *bgImageView; @property (nonatomic, strong) UIView *bgImageView;
@property (nonatomic,strong) UITableView *tableView; @property (nonatomic,strong) UITableView *tableView;
/// ///
@property (nonatomic,strong) NSMutableArray<XPMineItemModel *> *datasource; @property (nonatomic, strong) NSMutableArray<XPMineFuntionItemModel *> *functionArray;
/// ///
@property (nonatomic,strong) NSArray<XPMineItemModel *> *matchItemArray; @property (nonatomic, strong) NSMutableArray<LittleGameInfoModel *> *littleGameArray;
///item ///banner
@property (nonatomic, strong) NSArray<XPMineItemModel *> *cardItemArray; @property (nonatomic, strong) NSMutableArray<HomeBannerInfoModel *> *bannerArray;
/// ///
@property (nonatomic,strong) XPMineHeadView *headView; @property (nonatomic,strong) XPMineHeadView *headView;
/// ///
@property (nonatomic,strong) UIButton *settingButton; @property (nonatomic,strong) UIButton *settingButton;
/// ///
@property (nonatomic,strong) UserInfoModel *userInfo; @property (nonatomic,strong) UserInfoModel *userInfo;
@property (nonatomic, strong) XPMineSkillTipView *skillTipView;
/// ///
@property (nonatomic,strong) ClanDetailInfoModel *clanInfo; @property (nonatomic,strong) ClanDetailInfoModel *clanInfo;
/// ///
@@ -101,13 +103,19 @@
[super viewDidLoad]; [super viewDidLoad];
[self initSubViews]; [self initSubViews];
[self initSubViewConstraints]; [self initSubViewConstraints];
[self showSkillCardTipView];
} }
- (void)viewWillAppear:(BOOL)animated { - (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated]; [super viewWillAppear:animated];
[self.presenter getUserInfo]; [self.presenter getUserInfo];
[self.presenter getClanDetailInfo]; [self.presenter getPersonItemList];
[self.presenter getLittleGameList];
[self.presenter getMineBannerList];
}
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[self.presenter getUserWalletInfo];
} }
#pragma mark - Response #pragma mark - Response
@@ -123,8 +131,6 @@
[self.view addSubview:self.tableView]; [self.view addSubview:self.tableView];
[self.view addSubview:self.settingButton]; [self.view addSubview:self.settingButton];
self.tableView.tableHeaderView = self.headView; self.tableView.tableHeaderView = self.headView;
[self.presenter getNormalItems];
[self.presenter getCardItems];
if (@available(iOS 15.0, *)) {//iOS1522 if (@available(iOS 15.0, *)) {//iOS1522
self.tableView.sectionHeaderTopPadding = 0; self.tableView.sectionHeaderTopPadding = 0;
} }
@@ -146,38 +152,15 @@
}]; }];
} }
/// - (void)pushViewControllerWithType:(NSInteger)type functionItem:(XPMineFuntionItemModel *)item {
- (void)showSkillCardTipView {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *skillCardTip = [defaults objectForKey:kYinyouSkillCardTipKey];
if (!skillCardTip) {
UIWindow *window = [UIApplication sharedApplication].delegate.window;
[window addSubview:self.skillTipView];
[window bringSubviewToFront:self.skillTipView];
}
}
- (void)pushViewControllerWithType:(XPMineItemType)type {
switch (type) { switch (type) {
case XPMineItemType_Match_Manage: { case XPMineItemType_Match_Manage: {
XPMatchManageViewController *vc = [[XPMatchManageViewController alloc] init]; XPMatchManageViewController *vc = [[XPMatchManageViewController alloc] init];
[self.navigationController pushViewController:vc animated:YES]; [self.navigationController pushViewController:vc animated:YES];
} }
break; break;
case XPMineItemType_Match_Apply_Record:
[self pushMatchVCWithKey:@"quotaRecord"];
break;
case XPMineItemType_Match_Standings:
[self pushMatchVCWithKey:@"performance"];
break;
case XPMineItemType_Match_Card_Bag:
[self pushMatchVCWithKey:@"bag"];
break;
case XPMineItemType_Match_Shopping:
[self pushMatchVCWithKey:@"mall"];
break;
case XPMineItemType_Match_Relevance_Account: case XPMineItemType_Match_Relevance_Account:
[self pushWebViewWIthUrl:URLWithType(kGameBindAccountURL)]; [self pushWebViewWIthUrl:item.centerUrl];
break; break;
case XPMineItemType_Teenager_Mode: case XPMineItemType_Teenager_Mode:
{ {
@@ -186,18 +169,12 @@
[self.navigationController pushViewController:vc animated:YES]; [self.navigationController pushViewController:vc animated:YES];
} }
break; break;
case XPMineItemType_Real_Name_Authentic:
[self pushWebViewWIthUrl:URLWithType(kIdentityURL)];
break;
case XPMineItemType_Account: case XPMineItemType_Account:
{ {
XPMineRechargeViewController * rechargeVC = [[XPMineRechargeViewController alloc] init]; XPMineRechargeViewController * rechargeVC = [[XPMineRechargeViewController alloc] init];
[self.navigationController pushViewController:rechargeVC animated:YES]; [self.navigationController pushViewController:rechargeVC animated:YES];
} }
break; break;
case XPMineItemType_Invite_Friend:
[self pushWebViewWIthUrl:URLWithType(kUserInviteFriendURL)];
break;
case XPMineItemType_Personinfo: case XPMineItemType_Personinfo:
{ {
XPMineUserInfoViewController * infoVC = [[XPMineUserInfoViewController alloc] init]; XPMineUserInfoViewController * infoVC = [[XPMineUserInfoViewController alloc] init];
@@ -243,9 +220,6 @@
[self.navigationController pushViewController:attentionVC animated:YES]; [self.navigationController pushViewController:attentionVC animated:YES];
} }
break; break;
case XPMineItemType_My_Level:
[self pushWebViewWIthUrl:URLWithType(kUserLevelURL)];
break;
case XPMineItemType_Noble_Center: case XPMineItemType_Noble_Center:
{ {
XPNobleCenterViewController *nobleCenterVC = [[XPNobleCenterViewController alloc] init]; XPNobleCenterViewController *nobleCenterVC = [[XPNobleCenterViewController alloc] init];
@@ -262,8 +236,8 @@
case XPMineItemType_Visitor: case XPMineItemType_Visitor:
{ {
[self.tabBarItem setBadgeValue:nil]; [self.tabBarItem setBadgeValue:nil];
for (XPMineItemModel * model in self.datasource) { for (XPMineFuntionItemModel * model in self.functionArray) {
if (model.type == XPMineItemType_Visitor) { if (model.skipType == XPMineItemType_Visitor) {
model.unReadCount = 0; model.unReadCount = 0;
} }
} }
@@ -302,28 +276,23 @@
[self.navigationController pushViewController:webVC animated:YES]; [self.navigationController pushViewController:webVC animated:YES];
} }
- (void)pushMatchVCWithKey:(NSString *)key {
[[FlutterBoost instance] open:key arguments:@{@"animated":@(YES)} completion:^(BOOL success) {
}];
}
#pragma mark - UITableViewDelegate And UITableViewDataSource #pragma mark - UITableViewDelegate And UITableViewDataSource
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
if (section == 0) { return 3;
return 1;
}
return self.datasource.count;
} }
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return 2; return 1;
} }
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.section == 0) { if (indexPath.section == 0) {
return 96; return 172;
}; } else if (indexPath.section == 1) {
return 129;
} else {
return 80;
}
return 53; return 53;
} }
@@ -333,24 +302,35 @@
if (cell == nil) { if (cell == nil) {
cell = [[XPMineHeadItemTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPMineHeadItemTableViewCell class])]; cell = [[XPMineHeadItemTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPMineHeadItemTableViewCell class])];
} }
cell.datasource = self.cardItemArray; if (self.functionArray.count) {
cell.datasource = self.functionArray;
}
cell.delegate = self; cell.delegate = self;
return cell; return cell;
} else { } else if (indexPath.section == 1) {
XPMineMenuTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPMineMenuTableViewCell class])]; XPMineGameTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPMineGameTableViewCell class])];
if (cell == nil) { if (cell == nil) {
cell = [[XPMineMenuTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPMineMenuTableViewCell class])]; cell = [[XPMineGameTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPMineGameTableViewCell class])];
} }
XPMineItemModel * item = [self.datasource objectAtIndex:indexPath.row]; if (self.littleGameArray.count) {
cell.itemModel = item; cell.datasource = self.littleGameArray;
}
cell.delegate = self;
return cell; return cell;
} } else {
XPHomeBannerTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPHomeBannerTableViewCell class])];
if (cell == nil) {
cell = [[XPHomeBannerTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPHomeBannerTableViewCell class])];
}
if (self.bannerArray.count) {
cell.bannerList = self.bannerArray;
}
cell.delegate = self;
return cell;
}
} }
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
if (section == 1) {
return 13;
}
return 16; return 16;
} }
@@ -360,47 +340,67 @@
return view; return view;
} }
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[tableView deselectRowAtIndexPath:indexPath animated:YES];
XPMineItemModel * model = [self.datasource objectAtIndex:indexPath.row];
[self pushViewControllerWithType:model.type];
}
#pragma mark - XPMineHeadViewDelegate #pragma mark - XPMineHeadViewDelegate
/// ///
- (void)xPMineHeadView:(XPMineHeadView *)view didClickAvatar:(UserInfoModel *)info { - (void)xPMineHeadView:(XPMineHeadView *)view didClickAvatar:(UserInfoModel *)info {
[self pushViewControllerWithType:XPMineItemType_Personinfo]; [self pushViewControllerWithType:XPMineItemType_Personinfo functionItem:nil];
}
- (void)xPMineHeadView:(XPMineHeadView *)view didClickAccount:(UserInfoModel *)info {
[self pushViewControllerWithType:XPMineItemType_Account];
}
- (void)xPMineHeadView:(XPMineHeadView *)view didClickInviteFriend:(UserInfoModel *)info {
[self pushViewControllerWithType:XPMineItemType_Invite_Friend];
} }
///
- (void)xpMineHeadViewClickFans { - (void)xpMineHeadViewClickFans {
[self pushViewControllerWithType:XPMineItemType_Fans_List]; [self pushViewControllerWithType:XPMineItemType_Fans_List functionItem:nil];
} }
///
- (void)xpMineHeadViewClickAttention { - (void)xpMineHeadViewClickAttention {
[self pushViewControllerWithType:XPMineItemType_Attention_List]; [self pushViewControllerWithType:XPMineItemType_Attention_List functionItem:nil];
} }
///
- (void)xpMineHeadViewClickSkillCard {
[self pushViewControllerWithType:XPMineItemType_Skill_Card functionItem:nil];
}
///访
- (void)xpMineHeadViewClickVisitor {
[self pushViewControllerWithType:XPMineItemType_Visitor functionItem:nil];
}
///
- (void)xpMineHeadViewClickFootprint {
// [self pushViewControllerWithType:XPMineItemType_Attention_List];
}
///
- (void)xpMineHeadViewClickAcount {
[self pushViewControllerWithType:XPMineItemType_Account functionItem:nil];
}
///
- (void)xPMineHeadViewCliekNobleCenter { - (void)xPMineHeadViewCliekNobleCenter {
[StatisticsServiceHelper trackEventWithKey:StatisticsServiceEventvipEntranceMeClick]; [StatisticsServiceHelper trackEventWithKey:StatisticsServiceEventvipEntranceMeClick];
[self pushViewControllerWithType:XPMineItemType_Noble_Center]; [self pushViewControllerWithType:XPMineItemType_Noble_Center functionItem:nil];
} }
#pragma mark - XPMineProtocol #pragma mark - XPMineProtocol
- (void)onGetNormalItemsSuccess:(NSArray<XPMineItemModel *> *)normalItems { ///
[self.datasource removeAllObjects]; - (void)onGetMineFuntionItemSuccess:(NSArray<XPMineFuntionItemModel *> *)items {
[self.datasource addObjectsFromArray:normalItems]; [self.functionArray removeAllObjects];
[self.tableView reloadData]; [self.functionArray addObjectsFromArray:items];
[self.tableView reloadData];
} }
- (void)onGetCardItemsSuccess:(NSArray<XPMineItemModel *> *)cardItems { ///
self.cardItemArray = cardItems; - (void)onGetLittleGameListSuccess:(NSArray<LittleGameInfoModel *> *)items {
[self.littleGameArray removeAllObjects];
[self.littleGameArray addObjectsFromArray:items];
[self.tableView reloadData];
}
///banner
- (void)onGetPersonalBannerListSuccess:(NSArray<HomeBannerInfoModel *> *)items {
[self.bannerArray removeAllObjects];
[self.bannerArray addObjectsFromArray:items];
[self.tableView reloadData]; [self.tableView reloadData];
} }
@@ -410,23 +410,58 @@
[self.tableView reloadData]; [self.tableView reloadData];
} }
- (void)getUserWalletInfo:(WalletInfoModel *)balanceInfo {
self.headView.walletInfo = balanceInfo;
}
- (void)onGetClanDetailInfoSuccess:(ClanDetailInfoModel *)clanInfo { - (void)onGetClanDetailInfoSuccess:(ClanDetailInfoModel *)clanInfo {
self.clanInfo = clanInfo; self.clanInfo = clanInfo;
if (self.clanInfo.clan.elderUid.length > 0 || self.clanInfo.hall.hallId) { }
if (![self.datasource containsObject:self.guildItemModel]) {
[self.datasource insertObject:self.guildItemModel atIndex:3]; ///
} - (void)quickMatchLittleGameRoomSuccess:(NSString *)uid {
} else { if (uid.length > 0) {
if ([self.datasource containsObject:self.guildItemModel]) { [XPRoomViewController openRoom:uid viewController:self];
[self.datasource removeObject:self.guildItemModel]; }
} }
}
[self.tableView reloadData]; ///
- (void)quickMatchLittleGameRoomFail:(NSString *)mgId {
[XPRoomViewController openRoom:[NSString stringWithFormat:@"%ld", self.userInfo.uid] mgId:mgId viewController:self];
} }
#pragma mark - XPMineHeadItemTableViewCellDelegate #pragma mark - XPMineHeadItemTableViewCellDelegate
- (void)xPMineHeadItemTableViewCell:(XPMineHeadItemTableViewCell *)cell didSelectItem:(XPMineItemModel *)item { - (void)xPMineHeadItemTableViewCell:(XPMineHeadItemTableViewCell *)cell didSelectItem:(XPMineFuntionItemModel *)item {
[self pushViewControllerWithType:item.type]; [self pushViewControllerWithType:item.skipType functionItem:item];
}
#pragma mark - XPHomeBannerTableViewCellDelegate
///banner
- (void)xPHomeBannerTableViewCell:(XPHomeBannerTableViewCell *)view didClickBanner:(HomeBannerInfoModel *)info {
switch (info.skipType) {
case HomeBannerInfoSkipType_Room:
{
if (info.skipUri.length > 0) {
[XPRoomViewController openRoom:info.skipUri viewController:self];
}
}
break;
case HomeBannerInfoSkipType_Web:
{
XPWebViewController *vc = [[XPWebViewController alloc]init];
vc.url = info.skipUri;
[self.navigationController pushViewController:vc animated:YES];
}
break;
default:
break;
}
}
#pragma mark - XPMineGameTableViewCellDelegate
///
- (void)xPMineGameTableViewCell:(XPMineGameTableViewCell *)cell didSelectItem:(LittleGameInfoModel *)item {
[self.presenter quickMatchLittleGameWithMgId:item.mgId];
} }
#pragma mark - NSNotification #pragma mark - NSNotification
@@ -438,9 +473,9 @@
[self.tabBarItem setBadgeValue:nil]; [self.tabBarItem setBadgeValue:nil];
} }
for (int i = 0; i<self.datasource.count; i++) { for (int i = 0; i<self.functionArray.count; i++) {
XPMineItemModel * item = [self.datasource objectAtIndex:i]; XPMineFuntionItemModel * item = [self.functionArray objectAtIndex:i];
if (item.type == XPMineItemType_Visitor) { if (item.skipType == XPMineItemType_Visitor) {
item.unReadCount = model.visitNum; item.unReadCount = model.visitNum;
} }
} }
@@ -455,8 +490,9 @@
_tableView.dataSource = self; _tableView.dataSource = self;
_tableView.showsVerticalScrollIndicator = NO; _tableView.showsVerticalScrollIndicator = NO;
_tableView.separatorStyle = UITableViewCellSeparatorStyleNone; _tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
[_tableView registerClass:[XPMineMenuTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPMineMenuTableViewCell class])]; [_tableView registerClass:[XPMineGameTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPMineGameTableViewCell class])];
[_tableView registerClass:[XPMineHeadItemTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPMineHeadItemTableViewCell class])]; [_tableView registerClass:[XPMineHeadItemTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPMineHeadItemTableViewCell class])];
[_tableView registerClass:[XPHomeBannerTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPHomeBannerTableViewCell class])];
_tableView.backgroundColor = [UIColor clearColor]; _tableView.backgroundColor = [UIColor clearColor];
} }
return _tableView; return _tableView;
@@ -464,8 +500,8 @@
- (XPMineHeadView *)headView { - (XPMineHeadView *)headView {
if (!_headView) { if (!_headView) {
CGFloat nobleH = (KScreenWidth - 30.0)/ 345.0 * 44; CGFloat height = (KScreenWidth - 30 - 17) * 0.5 * 64 / 164;
_headView = [[XPMineHeadView alloc] initWithFrame:CGRectMake(0, 0,KScreenWidth , 123 + nobleH + kSafeAreaTopHeight)]; _headView = [[XPMineHeadView alloc] initWithFrame:CGRectMake(0, 0,KScreenWidth , 123 + height + kSafeAreaTopHeight + 50)];
_headView.delegate = self; _headView.delegate = self;
} }
return _headView; return _headView;
@@ -490,29 +526,25 @@
return _bgImageView; return _bgImageView;
} }
- (XPMineSkillTipView *)skillTipView { - (NSMutableArray<XPMineFuntionItemModel *> *)functionArray {
if (!_skillTipView) { if (!_functionArray) {
_skillTipView = [[XPMineSkillTipView alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, KScreenHeight)]; _functionArray = [NSMutableArray array];
} }
return _skillTipView; return _functionArray;
} }
- (XPMineItemModel *)guildItemModel { - (NSMutableArray<LittleGameInfoModel *> *)littleGameArray {
if (!_guildItemModel) { if (!_littleGameArray) {
XPMineItemModel * guildItem = [[XPMineItemModel alloc] init]; _littleGameArray = [NSMutableArray array];
guildItem.itemName = @"我的公会"; }
guildItem.itemImageName = @"mine_normal_my_guild"; return _littleGameArray;
guildItem.type = XPMineItemType_My_Guild;
_guildItemModel = guildItem;
}
return _guildItemModel;
} }
- (NSMutableArray<XPMineItemModel *> *)datasource { - (NSMutableArray<HomeBannerInfoModel *> *)bannerArray {
if (!_datasource) { if (!_bannerArray) {
_datasource = [NSMutableArray array]; _bannerArray = [NSMutableArray array];
} }
return _datasource; return _bannerArray;
} }
@end @end