feat:完善个人主页 cp 模块
@@ -517,6 +517,8 @@
|
|||||||
548E01C92C3F78600071C83D /* FeedBackConfigModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 548E01C82C3F78600071C83D /* FeedBackConfigModel.m */; };
|
548E01C92C3F78600071C83D /* FeedBackConfigModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 548E01C82C3F78600071C83D /* FeedBackConfigModel.m */; };
|
||||||
548E01CC2C3FB1C70071C83D /* i18nGiftNameMap.m in Sources */ = {isa = PBXBuildFile; fileRef = 548E01CB2C3FB1C70071C83D /* i18nGiftNameMap.m */; };
|
548E01CC2C3FB1C70071C83D /* i18nGiftNameMap.m in Sources */ = {isa = PBXBuildFile; fileRef = 548E01CB2C3FB1C70071C83D /* i18nGiftNameMap.m */; };
|
||||||
54ACDCC22C5B31BD0099472C /* XPBeautIDView.m in Sources */ = {isa = PBXBuildFile; fileRef = 54ACDCC12C5B31BD0099472C /* XPBeautIDView.m */; };
|
54ACDCC22C5B31BD0099472C /* XPBeautIDView.m in Sources */ = {isa = PBXBuildFile; fileRef = 54ACDCC12C5B31BD0099472C /* XPBeautIDView.m */; };
|
||||||
|
54AE7E142C9AD9AB006D2BE2 /* CPCard.m in Sources */ = {isa = PBXBuildFile; fileRef = 54AE7E132C9AD9A6006D2BE2 /* CPCard.m */; };
|
||||||
|
54AE7E172C9AE589006D2BE2 /* CPListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 54AE7E162C9AE589006D2BE2 /* CPListViewController.m */; };
|
||||||
54C3895C2C215F5100FD47B1 /* XPHomeMineViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 54C3895B2C215F5100FD47B1 /* XPHomeMineViewController.m */; };
|
54C3895C2C215F5100FD47B1 /* XPHomeMineViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 54C3895B2C215F5100FD47B1 /* XPHomeMineViewController.m */; };
|
||||||
54C3895F2C2189DD00FD47B1 /* XPHomeMinePresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 54C3895E2C2189DD00FD47B1 /* XPHomeMinePresenter.m */; };
|
54C3895F2C2189DD00FD47B1 /* XPHomeMinePresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 54C3895E2C2189DD00FD47B1 /* XPHomeMinePresenter.m */; };
|
||||||
54C389622C23BD1600FD47B1 /* HomeRankAvatarModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 54C389612C23BD1600FD47B1 /* HomeRankAvatarModel.m */; };
|
54C389622C23BD1600FD47B1 /* HomeRankAvatarModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 54C389612C23BD1600FD47B1 /* HomeRankAvatarModel.m */; };
|
||||||
@@ -538,6 +540,12 @@
|
|||||||
54F4693B2C2A984D00A83655 /* MedalModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 54F4693A2C2A984D00A83655 /* MedalModel.m */; };
|
54F4693B2C2A984D00A83655 /* MedalModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 54F4693A2C2A984D00A83655 /* MedalModel.m */; };
|
||||||
54F4693E2C2A9D4E00A83655 /* XPMineMedalsTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 54F4693D2C2A9D4E00A83655 /* XPMineMedalsTableViewCell.m */; };
|
54F4693E2C2A9D4E00A83655 /* XPMineMedalsTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 54F4693D2C2A9D4E00A83655 /* XPMineMedalsTableViewCell.m */; };
|
||||||
54F469412C2AB56900A83655 /* XPMineGiftsTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 54F469402C2AB56900A83655 /* XPMineGiftsTableViewCell.m */; };
|
54F469412C2AB56900A83655 /* XPMineGiftsTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 54F469402C2AB56900A83655 /* XPMineGiftsTableViewCell.m */; };
|
||||||
|
54FFD37A2C9BCB1900DE61E5 /* RelationUserVO.m in Sources */ = {isa = PBXBuildFile; fileRef = 54FFD3792C9BCB1900DE61E5 /* RelationUserVO.m */; };
|
||||||
|
54FFD3812C9BD12600DE61E5 /* 4.svga in Resources */ = {isa = PBXBuildFile; fileRef = 54FFD37E2C9BD12600DE61E5 /* 4.svga */; };
|
||||||
|
54FFD3822C9BD12600DE61E5 /* 1.svga in Resources */ = {isa = PBXBuildFile; fileRef = 54FFD37B2C9BD12600DE61E5 /* 1.svga */; };
|
||||||
|
54FFD3832C9BD12600DE61E5 /* 5.svga in Resources */ = {isa = PBXBuildFile; fileRef = 54FFD37F2C9BD12600DE61E5 /* 5.svga */; };
|
||||||
|
54FFD3842C9BD12600DE61E5 /* 3.svga in Resources */ = {isa = PBXBuildFile; fileRef = 54FFD37D2C9BD12600DE61E5 /* 3.svga */; };
|
||||||
|
54FFD3852C9BD12600DE61E5 /* 2.svga in Resources */ = {isa = PBXBuildFile; fileRef = 54FFD37C2C9BD12600DE61E5 /* 2.svga */; };
|
||||||
73FFADDC93E195344047A2EC /* Pods_YuMi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CACF623970097D653132D69A /* Pods_YuMi.framework */; };
|
73FFADDC93E195344047A2EC /* Pods_YuMi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CACF623970097D653132D69A /* Pods_YuMi.framework */; };
|
||||||
9B0086C627BA392B0032BD2B /* AnchorStageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B0086C527BA392B0032BD2B /* AnchorStageView.m */; };
|
9B0086C627BA392B0032BD2B /* AnchorStageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B0086C527BA392B0032BD2B /* AnchorStageView.m */; };
|
||||||
9B0086CA27BA4F570032BD2B /* AnchorMicroView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B0086C927BA4F570032BD2B /* AnchorMicroView.m */; };
|
9B0086CA27BA4F570032BD2B /* AnchorMicroView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B0086C927BA4F570032BD2B /* AnchorMicroView.m */; };
|
||||||
@@ -2568,6 +2576,10 @@
|
|||||||
548E01CB2C3FB1C70071C83D /* i18nGiftNameMap.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = i18nGiftNameMap.m; sourceTree = "<group>"; };
|
548E01CB2C3FB1C70071C83D /* i18nGiftNameMap.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = i18nGiftNameMap.m; sourceTree = "<group>"; };
|
||||||
54ACDCC02C5B31BD0099472C /* XPBeautIDView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPBeautIDView.h; sourceTree = "<group>"; };
|
54ACDCC02C5B31BD0099472C /* XPBeautIDView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPBeautIDView.h; sourceTree = "<group>"; };
|
||||||
54ACDCC12C5B31BD0099472C /* XPBeautIDView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPBeautIDView.m; sourceTree = "<group>"; };
|
54ACDCC12C5B31BD0099472C /* XPBeautIDView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPBeautIDView.m; sourceTree = "<group>"; };
|
||||||
|
54AE7E122C9AD98C006D2BE2 /* CPCard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CPCard.h; sourceTree = "<group>"; };
|
||||||
|
54AE7E132C9AD9A6006D2BE2 /* CPCard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CPCard.m; sourceTree = "<group>"; };
|
||||||
|
54AE7E152C9AE589006D2BE2 /* CPListViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CPListViewController.h; sourceTree = "<group>"; };
|
||||||
|
54AE7E162C9AE589006D2BE2 /* CPListViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CPListViewController.m; sourceTree = "<group>"; };
|
||||||
54C3895A2C215F5100FD47B1 /* XPHomeMineViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPHomeMineViewController.h; sourceTree = "<group>"; };
|
54C3895A2C215F5100FD47B1 /* XPHomeMineViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPHomeMineViewController.h; sourceTree = "<group>"; };
|
||||||
54C3895B2C215F5100FD47B1 /* XPHomeMineViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPHomeMineViewController.m; sourceTree = "<group>"; };
|
54C3895B2C215F5100FD47B1 /* XPHomeMineViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPHomeMineViewController.m; sourceTree = "<group>"; };
|
||||||
54C3895D2C2189DD00FD47B1 /* XPHomeMinePresenter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPHomeMinePresenter.h; sourceTree = "<group>"; };
|
54C3895D2C2189DD00FD47B1 /* XPHomeMinePresenter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPHomeMinePresenter.h; sourceTree = "<group>"; };
|
||||||
@@ -2610,6 +2622,13 @@
|
|||||||
54F4693D2C2A9D4E00A83655 /* XPMineMedalsTableViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineMedalsTableViewCell.m; sourceTree = "<group>"; };
|
54F4693D2C2A9D4E00A83655 /* XPMineMedalsTableViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineMedalsTableViewCell.m; sourceTree = "<group>"; };
|
||||||
54F4693F2C2AB56900A83655 /* XPMineGiftsTableViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineGiftsTableViewCell.h; sourceTree = "<group>"; };
|
54F4693F2C2AB56900A83655 /* XPMineGiftsTableViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineGiftsTableViewCell.h; sourceTree = "<group>"; };
|
||||||
54F469402C2AB56900A83655 /* XPMineGiftsTableViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineGiftsTableViewCell.m; sourceTree = "<group>"; };
|
54F469402C2AB56900A83655 /* XPMineGiftsTableViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineGiftsTableViewCell.m; sourceTree = "<group>"; };
|
||||||
|
54FFD3782C9BCB1900DE61E5 /* RelationUserVO.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RelationUserVO.h; sourceTree = "<group>"; };
|
||||||
|
54FFD3792C9BCB1900DE61E5 /* RelationUserVO.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RelationUserVO.m; sourceTree = "<group>"; };
|
||||||
|
54FFD37B2C9BD12600DE61E5 /* 1.svga */ = {isa = PBXFileReference; lastKnownFileType = file; path = 1.svga; sourceTree = "<group>"; };
|
||||||
|
54FFD37C2C9BD12600DE61E5 /* 2.svga */ = {isa = PBXFileReference; lastKnownFileType = file; path = 2.svga; sourceTree = "<group>"; };
|
||||||
|
54FFD37D2C9BD12600DE61E5 /* 3.svga */ = {isa = PBXFileReference; lastKnownFileType = file; path = 3.svga; sourceTree = "<group>"; };
|
||||||
|
54FFD37E2C9BD12600DE61E5 /* 4.svga */ = {isa = PBXFileReference; lastKnownFileType = file; path = 4.svga; sourceTree = "<group>"; };
|
||||||
|
54FFD37F2C9BD12600DE61E5 /* 5.svga */ = {isa = PBXFileReference; lastKnownFileType = file; path = 5.svga; sourceTree = "<group>"; };
|
||||||
7DB00EC07F1D0ADFF900B38D /* Pods-YuMi.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-YuMi.debug.xcconfig"; path = "Target Support Files/Pods-YuMi/Pods-YuMi.debug.xcconfig"; sourceTree = "<group>"; };
|
7DB00EC07F1D0ADFF900B38D /* Pods-YuMi.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-YuMi.debug.xcconfig"; path = "Target Support Files/Pods-YuMi/Pods-YuMi.debug.xcconfig"; sourceTree = "<group>"; };
|
||||||
9B0086C427BA392B0032BD2B /* AnchorStageView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AnchorStageView.h; sourceTree = "<group>"; };
|
9B0086C427BA392B0032BD2B /* AnchorStageView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AnchorStageView.h; sourceTree = "<group>"; };
|
||||||
9B0086C527BA392B0032BD2B /* AnchorStageView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AnchorStageView.m; sourceTree = "<group>"; };
|
9B0086C527BA392B0032BD2B /* AnchorStageView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AnchorStageView.m; sourceTree = "<group>"; };
|
||||||
@@ -4978,6 +4997,8 @@
|
|||||||
9B2A12DD2783FEDD00CED41B /* UserVipInfoVo.m */,
|
9B2A12DD2783FEDD00CED41B /* UserVipInfoVo.m */,
|
||||||
54F469392C2A984D00A83655 /* MedalModel.h */,
|
54F469392C2A984D00A83655 /* MedalModel.h */,
|
||||||
54F4693A2C2A984D00A83655 /* MedalModel.m */,
|
54F4693A2C2A984D00A83655 /* MedalModel.m */,
|
||||||
|
54FFD3782C9BCB1900DE61E5 /* RelationUserVO.h */,
|
||||||
|
54FFD3792C9BCB1900DE61E5 /* RelationUserVO.m */,
|
||||||
);
|
);
|
||||||
path = Model;
|
path = Model;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -6444,6 +6465,18 @@
|
|||||||
path = SubViews;
|
path = SubViews;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
|
54FFD3802C9BD12600DE61E5 /* cp */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
54FFD37B2C9BD12600DE61E5 /* 1.svga */,
|
||||||
|
54FFD37C2C9BD12600DE61E5 /* 2.svga */,
|
||||||
|
54FFD37D2C9BD12600DE61E5 /* 3.svga */,
|
||||||
|
54FFD37E2C9BD12600DE61E5 /* 4.svga */,
|
||||||
|
54FFD37F2C9BD12600DE61E5 /* 5.svga */,
|
||||||
|
);
|
||||||
|
path = cp;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
9B0086C727BA4F4A0032BD2B /* Anchor */ = {
|
9B0086C727BA4F4A0032BD2B /* Anchor */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
@@ -9920,6 +9953,7 @@
|
|||||||
E8A1E45C276220B100B294CA /* Resources */ = {
|
E8A1E45C276220B100B294CA /* Resources */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
54FFD3802C9BD12600DE61E5 /* cp */,
|
||||||
54F179062C8EA48C00CB5219 /* Combo_Boom.svga */,
|
54F179062C8EA48C00CB5219 /* Combo_Boom.svga */,
|
||||||
23EE96F12B9FF6BE00475D69 /* pi_crazy_zoo.svga */,
|
23EE96F12B9FF6BE00475D69 /* pi_crazy_zoo.svga */,
|
||||||
237701182BD6143700D661F1 /* pi_happy_egg_smash.svga */,
|
237701182BD6143700D661F1 /* pi_happy_egg_smash.svga */,
|
||||||
@@ -10746,6 +10780,8 @@
|
|||||||
E8E70D7F26F2F39000F03460 /* SubViews */,
|
E8E70D7F26F2F39000F03460 /* SubViews */,
|
||||||
E8E70D7526F2F15100F03460 /* XPMineViewController.h */,
|
E8E70D7526F2F15100F03460 /* XPMineViewController.h */,
|
||||||
E8E70D7626F2F15100F03460 /* XPMineViewController.m */,
|
E8E70D7626F2F15100F03460 /* XPMineViewController.m */,
|
||||||
|
54AE7E152C9AE589006D2BE2 /* CPListViewController.h */,
|
||||||
|
54AE7E162C9AE589006D2BE2 /* CPListViewController.m */,
|
||||||
54C9A1112C3D5A2300C6D970 /* XPGameOrdersListViewController.h */,
|
54C9A1112C3D5A2300C6D970 /* XPGameOrdersListViewController.h */,
|
||||||
54C9A1122C3D5A2300C6D970 /* XPGameOrdersListViewController.m */,
|
54C9A1122C3D5A2300C6D970 /* XPGameOrdersListViewController.m */,
|
||||||
23CEFB6A2AFB803B00576D89 /* PISwitchingEnvironmentVC.h */,
|
23CEFB6A2AFB803B00576D89 /* PISwitchingEnvironmentVC.h */,
|
||||||
@@ -10871,6 +10907,8 @@
|
|||||||
E8E70D7F26F2F39000F03460 /* SubViews */ = {
|
E8E70D7F26F2F39000F03460 /* SubViews */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
54AE7E122C9AD98C006D2BE2 /* CPCard.h */,
|
||||||
|
54AE7E132C9AD9A6006D2BE2 /* CPCard.m */,
|
||||||
E87E545229AA05EA00EBE52B /* XPFootPrintNavView.h */,
|
E87E545229AA05EA00EBE52B /* XPFootPrintNavView.h */,
|
||||||
E87E545329AA05EA00EBE52B /* XPFootPrintNavView.m */,
|
E87E545329AA05EA00EBE52B /* XPFootPrintNavView.m */,
|
||||||
E8B846CC26FDD93D00A777FE /* Recharge */,
|
E8B846CC26FDD93D00A777FE /* Recharge */,
|
||||||
@@ -11164,6 +11202,11 @@
|
|||||||
E80EC81928ACD84000D133C5 /* emoji_80@2x.png in Resources */,
|
E80EC81928ACD84000D133C5 /* emoji_80@2x.png in Resources */,
|
||||||
237701192BD6143700D661F1 /* pi_happy_egg_smash.svga in Resources */,
|
237701192BD6143700D661F1 /* pi_happy_egg_smash.svga in Resources */,
|
||||||
E80EC8B328ACD84100D133C5 /* emoji_115@2x.png in Resources */,
|
E80EC8B328ACD84100D133C5 /* emoji_115@2x.png in Resources */,
|
||||||
|
54FFD3812C9BD12600DE61E5 /* 4.svga in Resources */,
|
||||||
|
54FFD3822C9BD12600DE61E5 /* 1.svga in Resources */,
|
||||||
|
54FFD3832C9BD12600DE61E5 /* 5.svga in Resources */,
|
||||||
|
54FFD3842C9BD12600DE61E5 /* 3.svga in Resources */,
|
||||||
|
54FFD3852C9BD12600DE61E5 /* 2.svga in Resources */,
|
||||||
E80EC8A828ACD84100D133C5 /* emoji_76@2x.png in Resources */,
|
E80EC8A828ACD84100D133C5 /* emoji_76@2x.png in Resources */,
|
||||||
2368ECCF2BC38F9800EDF4C9 /* InfoPlist.strings in Resources */,
|
2368ECCF2BC38F9800EDF4C9 /* InfoPlist.strings in Resources */,
|
||||||
E80EC88E28ACD84000D133C5 /* emoji_142@2x.png in Resources */,
|
E80EC88E28ACD84000D133C5 /* emoji_142@2x.png in Resources */,
|
||||||
@@ -11811,6 +11854,7 @@
|
|||||||
E8412F9927799249006E1101 /* InviteFansModel.m in Sources */,
|
E8412F9927799249006E1101 /* InviteFansModel.m in Sources */,
|
||||||
E88C72912828EA4E0047FB2B /* Music+CoreDataProperties.m in Sources */,
|
E88C72912828EA4E0047FB2B /* Music+CoreDataProperties.m in Sources */,
|
||||||
E84BF7CA277AF79D00EF8877 /* XPRoomSettingTagCell.m in Sources */,
|
E84BF7CA277AF79D00EF8877 /* XPRoomSettingTagCell.m in Sources */,
|
||||||
|
54FFD37A2C9BCB1900DE61E5 /* RelationUserVO.m in Sources */,
|
||||||
9BE9F0F927FED12D00667200 /* XPAnchorFansPrivilegeModel.m in Sources */,
|
9BE9F0F927FED12D00667200 /* XPAnchorFansPrivilegeModel.m in Sources */,
|
||||||
E87DF5022A42CDF1009C1185 /* XPHomeAttentionCollectionViewCell.m in Sources */,
|
E87DF5022A42CDF1009C1185 /* XPHomeAttentionCollectionViewCell.m in Sources */,
|
||||||
E8AB631628ADE2D20023B0D2 /* XPMonentsTopicLatestViewController.m in Sources */,
|
E8AB631628ADE2D20023B0D2 /* XPMonentsTopicLatestViewController.m in Sources */,
|
||||||
@@ -11876,6 +11920,7 @@
|
|||||||
5412E0FD2C52512100FDD668 /* RoomBottomEntranceModel.m in Sources */,
|
5412E0FD2C52512100FDD668 /* RoomBottomEntranceModel.m in Sources */,
|
||||||
E818DD1C2A4896EE00F163F7 /* XPLoginAraeViewController.m in Sources */,
|
E818DD1C2A4896EE00F163F7 /* XPLoginAraeViewController.m in Sources */,
|
||||||
23959FE72BB15C930085A282 /* UploadFileModel.m in Sources */,
|
23959FE72BB15C930085A282 /* UploadFileModel.m in Sources */,
|
||||||
|
54AE7E142C9AD9AB006D2BE2 /* CPCard.m in Sources */,
|
||||||
E8D4824A278D1F73003C1D08 /* XPAcrossRoomPKInviteView.m in Sources */,
|
E8D4824A278D1F73003C1D08 /* XPAcrossRoomPKInviteView.m in Sources */,
|
||||||
E85E7B432A4EB0D300B6D00A /* XPMineExchangeAuthorityHeadView.m in Sources */,
|
E85E7B432A4EB0D300B6D00A /* XPMineExchangeAuthorityHeadView.m in Sources */,
|
||||||
23194DD02AD14BF000649F51 /* DDLog.m in Sources */,
|
23194DD02AD14BF000649F51 /* DDLog.m in Sources */,
|
||||||
@@ -12358,6 +12403,7 @@
|
|||||||
2331C1B82A60F32D00E1D940 /* XPRoomHalfWebView.m in Sources */,
|
2331C1B82A60F32D00E1D940 /* XPRoomHalfWebView.m in Sources */,
|
||||||
9BFE0D8E2898C8C300F53C24 /* XPAnchorCardSkillCollectionViewCell.m in Sources */,
|
9BFE0D8E2898C8C300F53C24 /* XPAnchorCardSkillCollectionViewCell.m in Sources */,
|
||||||
E87DF4B72A42C2FD009C1185 /* XPFirstRechargeCollectionView.m in Sources */,
|
E87DF4B72A42C2FD009C1185 /* XPFirstRechargeCollectionView.m in Sources */,
|
||||||
|
54AE7E172C9AE589006D2BE2 /* CPListViewController.m in Sources */,
|
||||||
238B37A92AC55A2C00BFC9D5 /* TreasureFairyUserInfoModel.m in Sources */,
|
238B37A92AC55A2C00BFC9D5 /* TreasureFairyUserInfoModel.m in Sources */,
|
||||||
E85E7B382A4EB0D300B6D00A /* XPMineGuildSearchMemberTableViewCell.m in Sources */,
|
E85E7B382A4EB0D300B6D00A /* XPMineGuildSearchMemberTableViewCell.m in Sources */,
|
||||||
23D321D52ADD0F05006B259C /* Api+PhotoAlbum.m in Sources */,
|
23D321D52ADD0F05006B259C /* Api+PhotoAlbum.m in Sources */,
|
||||||
|
6
YuMi/Assets.xcassets/1.0.16/Contents.json
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
21
YuMi/Assets.xcassets/1.0.16/cp_avatar_flag_lv_0.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "cp_avatar_flag_lv_1@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
YuMi/Assets.xcassets/1.0.16/cp_avatar_flag_lv_0.imageset/cp_avatar_flag_lv_1@3x.png
vendored
Normal file
After Width: | Height: | Size: 47 KiB |
21
YuMi/Assets.xcassets/1.0.16/cp_avatar_flag_lv_1.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "cp_avatar_flag_lv_2@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
YuMi/Assets.xcassets/1.0.16/cp_avatar_flag_lv_1.imageset/cp_avatar_flag_lv_2@3x.png
vendored
Normal file
After Width: | Height: | Size: 49 KiB |
21
YuMi/Assets.xcassets/1.0.16/cp_avatar_flag_lv_2.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "cp_avatar_flag_lv_3@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
YuMi/Assets.xcassets/1.0.16/cp_avatar_flag_lv_2.imageset/cp_avatar_flag_lv_3@3x.png
vendored
Normal file
After Width: | Height: | Size: 47 KiB |
21
YuMi/Assets.xcassets/1.0.16/cp_avatar_flag_lv_3.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "cp_avatar_flag_lv_4@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
YuMi/Assets.xcassets/1.0.16/cp_avatar_flag_lv_3.imageset/cp_avatar_flag_lv_4@3x.png
vendored
Normal file
After Width: | Height: | Size: 48 KiB |
21
YuMi/Assets.xcassets/1.0.16/cp_avatar_flag_lv_4.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "cp_avatar_flag_lv_5@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
YuMi/Assets.xcassets/1.0.16/cp_avatar_flag_lv_4.imageset/cp_avatar_flag_lv_5@3x.png
vendored
Normal file
After Width: | Height: | Size: 48 KiB |
21
YuMi/Assets.xcassets/1.0.16/cp_avatar_flag_lv_5.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "cp_avatar_flag_lv_6@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
YuMi/Assets.xcassets/1.0.16/cp_avatar_flag_lv_5.imageset/cp_avatar_flag_lv_6@3x.png
vendored
Normal file
After Width: | Height: | Size: 49 KiB |
21
YuMi/Assets.xcassets/1.0.16/cp_avatar_head_lv_1.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "cp_avatar_head_lv_2@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
YuMi/Assets.xcassets/1.0.16/cp_avatar_head_lv_1.imageset/cp_avatar_head_lv_2@3x.png
vendored
Normal file
After Width: | Height: | Size: 150 KiB |
21
YuMi/Assets.xcassets/1.0.16/cp_avatar_head_lv_2.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "cp_avatar_head_lv_3@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
YuMi/Assets.xcassets/1.0.16/cp_avatar_head_lv_2.imageset/cp_avatar_head_lv_3@3x.png
vendored
Normal file
After Width: | Height: | Size: 166 KiB |
21
YuMi/Assets.xcassets/1.0.16/cp_avatar_head_lv_3.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "cp_avatar_head_lv_4@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
YuMi/Assets.xcassets/1.0.16/cp_avatar_head_lv_3.imageset/cp_avatar_head_lv_4@3x.png
vendored
Normal file
After Width: | Height: | Size: 151 KiB |
21
YuMi/Assets.xcassets/1.0.16/cp_avatar_head_lv_4.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "cp_avatar_head_lv_5@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
YuMi/Assets.xcassets/1.0.16/cp_avatar_head_lv_4.imageset/cp_avatar_head_lv_5@3x.png
vendored
Normal file
After Width: | Height: | Size: 192 KiB |
21
YuMi/Assets.xcassets/1.0.16/cp_avatar_head_lv_5.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "cp_avatar_head_lv_6@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
YuMi/Assets.xcassets/1.0.16/cp_avatar_head_lv_5.imageset/cp_avatar_head_lv_6@3x.png
vendored
Normal file
After Width: | Height: | Size: 193 KiB |
21
YuMi/Assets.xcassets/1.0.16/cp_avatar_heart.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "cp_avatar_heart@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
YuMi/Assets.xcassets/1.0.16/cp_avatar_heart.imageset/cp_avatar_heart@3x.png
vendored
Normal file
After Width: | Height: | Size: 26 KiB |
21
YuMi/Assets.xcassets/1.0.16/cp_bg.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "框@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
YuMi/Assets.xcassets/1.0.16/cp_bg.imageset/框@3x.png
vendored
Normal file
After Width: | Height: | Size: 196 KiB |
21
YuMi/Assets.xcassets/1.0.16/cp_break_heart.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "切图 32@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
YuMi/Assets.xcassets/1.0.16/cp_break_heart.imageset/切图 32@3x.png
vendored
Normal file
After Width: | Height: | Size: 1.9 KiB |
21
YuMi/Assets.xcassets/1.0.16/cp_empty_avatar.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "头像@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
YuMi/Assets.xcassets/1.0.16/cp_empty_avatar.imageset/头像@3x.png
vendored
Normal file
After Width: | Height: | Size: 9.8 KiB |
21
YuMi/Assets.xcassets/1.0.16/cp_heart.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "爱心@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
YuMi/Assets.xcassets/1.0.16/cp_heart.imageset/爱心@3x.png
vendored
Normal file
After Width: | Height: | Size: 101 KiB |
21
YuMi/Assets.xcassets/1.0.16/cp_help.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "返回 1@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
YuMi/Assets.xcassets/1.0.16/cp_help.imageset/返回 1@3x.png
vendored
Normal file
After Width: | Height: | Size: 2.3 KiB |
21
YuMi/Assets.xcassets/1.0.16/cp_list_placeholder.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "切图 32@3x-2.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
YuMi/Assets.xcassets/1.0.16/cp_list_placeholder.imageset/切图 32@3x-2.png
vendored
Normal file
After Width: | Height: | Size: 41 KiB |
21
YuMi/Assets.xcassets/1.0.16/cp_menu.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "切图 31@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
YuMi/Assets.xcassets/1.0.16/cp_menu.imageset/切图 31@3x.png
vendored
Normal file
After Width: | Height: | Size: 601 B |
21
YuMi/Assets.xcassets/1.0.16/cp_relationship_bg.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "cp_relationship_bg@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
YuMi/Assets.xcassets/1.0.16/cp_relationship_bg.imageset/cp_relationship_bg@3x.png
vendored
Normal file
After Width: | Height: | Size: 199 KiB |
21
YuMi/Assets.xcassets/1.0.16/cp_relationship_lv_0.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "cp_relationship_lv_0@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
YuMi/Assets.xcassets/1.0.16/cp_relationship_lv_0.imageset/cp_relationship_lv_0@3x.png
vendored
Normal file
After Width: | Height: | Size: 15 KiB |
21
YuMi/Assets.xcassets/1.0.16/cp_relationship_lv_1.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "cp_relationship_lv_1@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
YuMi/Assets.xcassets/1.0.16/cp_relationship_lv_1.imageset/cp_relationship_lv_1@3x.png
vendored
Normal file
After Width: | Height: | Size: 17 KiB |
21
YuMi/Assets.xcassets/1.0.16/cp_relationship_lv_2.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "cp_relationship_lv_2@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
YuMi/Assets.xcassets/1.0.16/cp_relationship_lv_2.imageset/cp_relationship_lv_2@3x.png
vendored
Normal file
After Width: | Height: | Size: 15 KiB |
21
YuMi/Assets.xcassets/1.0.16/cp_relationship_lv_3.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "cp_relationship_lv_3@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
YuMi/Assets.xcassets/1.0.16/cp_relationship_lv_3.imageset/cp_relationship_lv_3@3x.png
vendored
Normal file
After Width: | Height: | Size: 16 KiB |
21
YuMi/Assets.xcassets/1.0.16/cp_relationship_lv_4.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "cp_relationship_lv_4@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
YuMi/Assets.xcassets/1.0.16/cp_relationship_lv_4.imageset/cp_relationship_lv_4@3x.png
vendored
Normal file
After Width: | Height: | Size: 16 KiB |
21
YuMi/Assets.xcassets/1.0.16/cp_relationship_lv_5.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "cp_relationship_lv_5@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
YuMi/Assets.xcassets/1.0.16/cp_relationship_lv_5.imageset/cp_relationship_lv_5@3x.png
vendored
Normal file
After Width: | Height: | Size: 17 KiB |
@@ -345,6 +345,12 @@ NS_ASSUME_NONNULL_BEGIN
|
|||||||
+(void)requestUnmaskingFromBlackRoomList:(HttpRequestHelperCompletion)completion objId:(NSString *)objId type:(NSString *)type ;
|
+(void)requestUnmaskingFromBlackRoomList:(HttpRequestHelperCompletion)completion objId:(NSString *)objId type:(NSString *)type ;
|
||||||
///得到腾讯存储信息
|
///得到腾讯存储信息
|
||||||
+ (void)getQCloudInfo:(HttpRequestHelperCompletion)completion;
|
+ (void)getQCloudInfo:(HttpRequestHelperCompletion)completion;
|
||||||
|
|
||||||
|
//获取 cp 列表
|
||||||
|
+(void)requestCPList:(HttpRequestHelperCompletion)completion page:(NSNumber *)page pageSize:(NSNumber *)pageSize;
|
||||||
|
//取消 cp 关系
|
||||||
|
+(void)cancelCPList:(HttpRequestHelperCompletion)completion uid:(NSNumber *)uid loverUid:(NSNumber *)loverUid goldNum:(NSNumber *)goldNum;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
NS_ASSUME_NONNULL_END
|
NS_ASSUME_NONNULL_END
|
||||||
|
@@ -448,4 +448,14 @@
|
|||||||
+(void)requestUnmaskingFromBlackRoomList:(HttpRequestHelperCompletion)completion objId:(NSString *)objId type:(NSString *)type {
|
+(void)requestUnmaskingFromBlackRoomList:(HttpRequestHelperCompletion)completion objId:(NSString *)objId type:(NSString *)type {
|
||||||
[self makeRequest:@"user/black/delete" method:HttpRequestHelperMethodPOST completion:completion,__FUNCTION__,objId,type, nil];
|
[self makeRequest:@"user/black/delete" method:HttpRequestHelperMethodPOST completion:completion,__FUNCTION__,objId,type, nil];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//获取 cp 列表
|
||||||
|
+(void)requestCPList:(HttpRequestHelperCompletion)completion page:(NSNumber *)page pageSize:(NSNumber *)pageSize{
|
||||||
|
[self makeRequest:@"user/cp/list" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, page, pageSize, nil];
|
||||||
|
}
|
||||||
|
|
||||||
|
+(void)cancelCPList:(HttpRequestHelperCompletion)completion uid:(NSNumber *)uid loverUid:(NSNumber *)loverUid goldNum:(NSNumber *)goldNum {
|
||||||
|
[self makeRequest:@"user/cp/cancel" method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, uid, loverUid, goldNum, nil];
|
||||||
|
}
|
||||||
@end
|
@end
|
||||||
|
16
YuMi/Modules/YMMine/View/CPListViewController.h
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
//
|
||||||
|
// CPListViewController.h
|
||||||
|
// YuMi
|
||||||
|
//
|
||||||
|
// Created by P on 2024/9/18.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "MvpViewController.h"
|
||||||
|
|
||||||
|
NS_ASSUME_NONNULL_BEGIN
|
||||||
|
|
||||||
|
@interface CPListViewController : MvpViewController
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
NS_ASSUME_NONNULL_END
|
264
YuMi/Modules/YMMine/View/CPListViewController.m
Normal file
@@ -0,0 +1,264 @@
|
|||||||
|
//
|
||||||
|
// CPListViewController.m
|
||||||
|
// YuMi
|
||||||
|
//
|
||||||
|
// Created by P on 2024/9/18.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "CPListViewController.h"
|
||||||
|
|
||||||
|
#import "Api+Mine.h"
|
||||||
|
|
||||||
|
#import "CPCard.h"
|
||||||
|
#import "RelationUserVO.h"
|
||||||
|
#import "XPMineUserInfoCustomNavView.h"
|
||||||
|
|
||||||
|
@interface CPListCardCell : UITableViewCell
|
||||||
|
|
||||||
|
@property (nonatomic, strong) RelationUserVO *model;
|
||||||
|
@property (nonatomic, strong) CPCard *cpCard;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
@implementation CPListCardCell
|
||||||
|
|
||||||
|
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
|
||||||
|
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
|
||||||
|
self.backgroundColor = [UIColor clearColor];
|
||||||
|
self.contentView.backgroundColor = [UIColor clearColor];
|
||||||
|
self.selectionStyle = UITableViewCellSelectionStyleNone;
|
||||||
|
[self setupUI];
|
||||||
|
}
|
||||||
|
return self;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)setupUI {
|
||||||
|
[self.contentView addSubview:self.cpCard];
|
||||||
|
[self.cpCard mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.edges.mas_equalTo(self.contentView);
|
||||||
|
}];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)setModel:(RelationUserVO *)model {
|
||||||
|
_model = model;
|
||||||
|
[self.cpCard updateForCPList:model];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (CPCard *)cpCard {
|
||||||
|
if (!_cpCard) {
|
||||||
|
_cpCard = [[CPCard alloc] init];
|
||||||
|
_cpCard.userInteractionEnabled = YES;
|
||||||
|
_cpCard.isListItem = YES;
|
||||||
|
}
|
||||||
|
return _cpCard;
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface CPListViewController () <XPMineCustomNavViewDelegate, UITableViewDelegate, UITableViewDataSource>
|
||||||
|
|
||||||
|
@property (nonatomic, strong) UIView *emptyView;
|
||||||
|
|
||||||
|
@property (nonatomic, strong) XPMineUserInfoCustomNavView *navView;
|
||||||
|
@property (nonatomic, strong) UITableView *cpCardTableView;
|
||||||
|
@property (nonatomic, assign) NSInteger page;
|
||||||
|
@property (nonatomic, strong) NSMutableArray <RelationUserVO *> *dataSource;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
@implementation CPListViewController
|
||||||
|
|
||||||
|
- (BOOL)isHiddenNavBar {
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)viewDidLoad {
|
||||||
|
[super viewDidLoad];
|
||||||
|
|
||||||
|
self.page = 1;
|
||||||
|
[self setupUI];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)viewDidAppear:(BOOL)animated {
|
||||||
|
[super viewDidAppear:animated];
|
||||||
|
[self.cpCardTableView.mj_header beginRefreshing];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)setupUI {
|
||||||
|
self.view.backgroundColor = UIColorFromRGB(0x08151A);
|
||||||
|
|
||||||
|
[self setupNavigationBar];
|
||||||
|
[self setupEmptyView];
|
||||||
|
[self setupTableView];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)setupNavigationBar {
|
||||||
|
[self.view addSubview:self.navView];
|
||||||
|
[self.navView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.leading.trailing.top.mas_equalTo(self.view);
|
||||||
|
make.height.mas_equalTo(kNavigationHeight);
|
||||||
|
}];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)setupEmptyView {
|
||||||
|
[self.view addSubview:self.emptyView];
|
||||||
|
[self.emptyView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.bottom.leading.trailing.mas_equalTo(self.view);
|
||||||
|
make.top.mas_equalTo(self.navView.mas_bottom);
|
||||||
|
}];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)setupTableView {
|
||||||
|
[self.view addSubview:self.cpCardTableView];
|
||||||
|
[self.cpCardTableView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.bottom.leading.trailing.mas_equalTo(self.view);
|
||||||
|
make.top.mas_equalTo(self.navView.mas_bottom).offset(10);
|
||||||
|
}];
|
||||||
|
|
||||||
|
MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(headerRefresh)];
|
||||||
|
header.stateLabel.font = [UIFont systemFontOfSize:10.0];
|
||||||
|
header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0];
|
||||||
|
header.stateLabel.textColor = [DJDKMIMOMColor secondTextColor];
|
||||||
|
header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor secondTextColor];
|
||||||
|
_cpCardTableView.mj_header = header;
|
||||||
|
|
||||||
|
|
||||||
|
MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRefresh)];
|
||||||
|
footer.stateLabel.textColor = [DJDKMIMOMColor secondTextColor];
|
||||||
|
footer.stateLabel.font = [UIFont systemFontOfSize:10.0];
|
||||||
|
_cpCardTableView.mj_footer = footer;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)headerRefresh {
|
||||||
|
if (self.page == 1) {
|
||||||
|
self.dataSource = @[].mutableCopy;
|
||||||
|
}
|
||||||
|
|
||||||
|
@kWeakify(self);
|
||||||
|
[Api requestCPList:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
|
||||||
|
@kStrongify(self);
|
||||||
|
[self.cpCardTableView.mj_header endRefreshing];
|
||||||
|
[self.cpCardTableView.mj_footer endRefreshing];
|
||||||
|
|
||||||
|
if (code == 200) {
|
||||||
|
NSArray *array = [RelationUserVO modelsWithArray:data.data];
|
||||||
|
[self.dataSource addObjectsFromArray:array];
|
||||||
|
[self.cpCardTableView reloadData];
|
||||||
|
|
||||||
|
self.emptyView.hidden = self.dataSource.count != 0;
|
||||||
|
} else {
|
||||||
|
self.emptyView.hidden = NO;
|
||||||
|
[self showErrorToast:msg];
|
||||||
|
}
|
||||||
|
} page:@(self.page) pageSize:@(10)];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)footerRefresh {
|
||||||
|
self.page += 1;
|
||||||
|
[self headerRefresh];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)cancelRelation:(RelationUserVO *)model {
|
||||||
|
NSString *message = [NSString stringWithFormat:@"I'll pay %@ %ld coins to leave my son lar", model.cpNick, (long)model.cancelGoldNum];
|
||||||
|
|
||||||
|
@kWeakify(self);
|
||||||
|
[TTPopup alertWithMessage:message confirmHandler:^{
|
||||||
|
@kStrongify(self);
|
||||||
|
[self showLoading];
|
||||||
|
[Api cancelCPList:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
|
||||||
|
if (code == 200) {
|
||||||
|
[self showSuccessToast:msg];
|
||||||
|
[self.cpCardTableView.mj_header beginRefreshing];
|
||||||
|
} else {
|
||||||
|
[self hideHUD];
|
||||||
|
[self showErrorToast:msg];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
uid:@(model.uid)
|
||||||
|
loverUid:@(model.cpUid)
|
||||||
|
goldNum:@(model.cancelGoldNum)];
|
||||||
|
} cancelHandler:^{ }];
|
||||||
|
}
|
||||||
|
|
||||||
|
#pragma mark - UITableViewDelegate & DataSource
|
||||||
|
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
|
||||||
|
return self.dataSource.count;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||||
|
return kGetScaleWidth(175);
|
||||||
|
}
|
||||||
|
|
||||||
|
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||||
|
CPListCardCell *cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([CPListCardCell class])];
|
||||||
|
RelationUserVO *model = [self.dataSource xpSafeObjectAtIndex:indexPath.row];
|
||||||
|
cell.model = model;
|
||||||
|
|
||||||
|
@kWeakify(self);
|
||||||
|
[cell.cpCard setBreakTheHeart:^(RelationUserVO *model) {
|
||||||
|
@kStrongify(self);
|
||||||
|
[self cancelRelation:model];
|
||||||
|
}];
|
||||||
|
return cell;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pragma mark - XPMineCustomNavViewDelegate
|
||||||
|
- (void)xPMineCustomNavView:(XPMineUserInfoCustomNavView *)view didClickEditButton:(UIButton *)sender {
|
||||||
|
// TODO: Goto CP rule page
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)xPMineCustomNavView:(XPMineUserInfoCustomNavView *)view didClickBackButton:(UIButton *)sender {
|
||||||
|
[self.navigationController popViewControllerAnimated:YES];
|
||||||
|
}
|
||||||
|
|
||||||
|
#pragma mark -
|
||||||
|
- (XPMineUserInfoCustomNavView *)navView {
|
||||||
|
if (!_navView) {
|
||||||
|
_navView = [[XPMineUserInfoCustomNavView alloc] init];
|
||||||
|
_navView.delegate = self;
|
||||||
|
_navView.titleLabel.text = @"My CPPPPPPPPPPPP";
|
||||||
|
_navView.titleLabel.textColor = [UIColor whiteColor];
|
||||||
|
[_navView.editButton setImage:[UIImage imageNamed:@"cp_help"] forState:UIControlStateNormal];
|
||||||
|
[_navView updateBackButtonImage:[UIImage imageNamed:@"home_search_white_back"]];
|
||||||
|
}
|
||||||
|
return _navView;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (UITableView *)cpCardTableView {
|
||||||
|
if (!_cpCardTableView) {
|
||||||
|
_cpCardTableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
|
||||||
|
_cpCardTableView.delegate = self;
|
||||||
|
_cpCardTableView.dataSource = self;
|
||||||
|
_cpCardTableView.backgroundColor = [UIColor clearColor];
|
||||||
|
_cpCardTableView.estimatedRowHeight = kGetScaleWidth(175);
|
||||||
|
_cpCardTableView.separatorStyle = UITableViewCellSeparatorStyleNone;
|
||||||
|
[_cpCardTableView registerClass:[CPListCardCell class]
|
||||||
|
forCellReuseIdentifier:NSStringFromClass([CPListCardCell class])];
|
||||||
|
}
|
||||||
|
return _cpCardTableView;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
- (UIView *)emptyView {
|
||||||
|
if (!_emptyView) {
|
||||||
|
_emptyView = [[UIView alloc] init];
|
||||||
|
_emptyView.hidden = YES;
|
||||||
|
|
||||||
|
UIImageView *icon = [[UIImageView alloc] initWithImage:kImage(@"cp_list_placeholder")];
|
||||||
|
[_emptyView addSubview:icon];
|
||||||
|
[icon mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.centerX.mas_equalTo(_emptyView);
|
||||||
|
make.top.mas_equalTo(70);
|
||||||
|
make.size.mas_equalTo(CGSizeMake(110, 110));
|
||||||
|
}];
|
||||||
|
|
||||||
|
UILabel *title = [UILabel labelInitWithText:@"No more data" font:kFontRegular(14) textColor:[UIColor colorWithWhite:1 alpha:0.4]];
|
||||||
|
[_emptyView addSubview:title];
|
||||||
|
[title mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.centerX.mas_equalTo(_emptyView);
|
||||||
|
make.top.mas_equalTo(186);
|
||||||
|
}];
|
||||||
|
}
|
||||||
|
return _emptyView;
|
||||||
|
}
|
||||||
|
@end
|
@@ -347,6 +347,7 @@ XPMineCustomNavViewDelegate, XPMineUserInfoProtocol, XPMineUserInfoHeaderViewDel
|
|||||||
self.userDataVC.medalInfo = userInfo.medals;
|
self.userDataVC.medalInfo = userInfo.medals;
|
||||||
self.userMomentVC.dynamicInfo = userInfo.dynamicInfo;
|
self.userMomentVC.dynamicInfo = userInfo.dynamicInfo;
|
||||||
self.headView.roomUid = userInfo.roomUid;
|
self.headView.roomUid = userInfo.roomUid;
|
||||||
|
self.headView.relationUser = userInfo.relationUserVO;
|
||||||
self.giftVC.userInfo = userInfo;
|
self.giftVC.userInfo = userInfo;
|
||||||
|
|
||||||
if(isMSRTL()){
|
if(isMSRTL()){
|
||||||
|
22
YuMi/Modules/YMMine/View/SubViews/CPCard.h
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
//
|
||||||
|
// CPCard.h
|
||||||
|
// YuMi
|
||||||
|
//
|
||||||
|
// Created by P on 2024/9/18.
|
||||||
|
//
|
||||||
|
|
||||||
|
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
@class RelationUserVO;
|
||||||
|
|
||||||
|
@interface CPCard : UIView
|
||||||
|
|
||||||
|
@property (nonatomic, assign) BOOL isListItem;
|
||||||
|
@property (nonatomic, copy) NSString *usersAvatar;
|
||||||
|
@property (nonatomic, copy) void(^breakTheHeart)(RelationUserVO *model);
|
||||||
|
|
||||||
|
- (void)updateForUserPage:(RelationUserVO *)model;
|
||||||
|
- (void)updateForCPList:(RelationUserVO *)model;
|
||||||
|
|
||||||
|
|
||||||
|
@end
|
345
YuMi/Modules/YMMine/View/SubViews/CPCard.m
Normal file
@@ -0,0 +1,345 @@
|
|||||||
|
//
|
||||||
|
// CPCard.m
|
||||||
|
// YuMi
|
||||||
|
//
|
||||||
|
// Created by P on 2024/9/18.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "CPCard.h"
|
||||||
|
#import <SVGA.h>
|
||||||
|
#import "RelationUserVO.h"
|
||||||
|
|
||||||
|
@interface CPCard ()
|
||||||
|
|
||||||
|
@property (nonatomic, strong) RelationUserVO *relationUser;
|
||||||
|
|
||||||
|
@property (nonatomic, strong) UIImageView *backgroundImage;
|
||||||
|
@property (nonatomic, strong) UIButton *breakYourHeartButton;
|
||||||
|
@property (nonatomic, strong) NetImageView *avatarView;
|
||||||
|
@property (nonatomic, strong) SVGAImageView *headWearSvgaImageView;
|
||||||
|
@property (nonatomic, strong) NetImageView *avatarView_cp;
|
||||||
|
@property (nonatomic, strong) SVGAImageView *headWearSvgaImageView_cp;
|
||||||
|
@property (nonatomic, strong) UILabel *bottomLabel;
|
||||||
|
@property (nonatomic, strong) UILabel *topLabel;
|
||||||
|
@property (nonatomic, strong) NetImageView *bottomImageView;
|
||||||
|
@property (nonatomic, strong) UILabel *progressUpgradeLabel;
|
||||||
|
@property (nonatomic, strong) UILabel *progressNumLabel;
|
||||||
|
@property (nonatomic, strong) UIProgressView *progressView;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
@implementation CPCard
|
||||||
|
|
||||||
|
- (instancetype)init {
|
||||||
|
if (self = [super init]) {
|
||||||
|
[self setupUI];
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
self.topLabel.text = @"365 天";
|
||||||
|
self.bottomLabel.text = @"Waiting for your love";
|
||||||
|
self.bottomImageView.image = kImage(@"cp_relationship_lv_1");
|
||||||
|
|
||||||
|
[self.progressView setProgress:0.5 animated:NO];
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
return self;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)setupUI {
|
||||||
|
UIImageView *backgroundImage = [[UIImageView alloc] initWithImage:kImage(@"cp_bg")];
|
||||||
|
backgroundImage.contentMode = UIViewContentModeScaleAspectFit;
|
||||||
|
[self addSubview:backgroundImage];
|
||||||
|
[backgroundImage mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.leading.mas_equalTo(kGetScaleWidth(15));
|
||||||
|
make.trailing.mas_equalTo(kGetScaleWidth(-15));
|
||||||
|
make.bottom.mas_equalTo(self);
|
||||||
|
make.top.mas_equalTo(self);
|
||||||
|
}];
|
||||||
|
_backgroundImage = backgroundImage;
|
||||||
|
|
||||||
|
UIImageView *heart = [[UIImageView alloc] initWithImage:kImage(@"cp_heart")];
|
||||||
|
heart.contentMode = UIViewContentModeScaleAspectFit;
|
||||||
|
[self addSubview:heart];
|
||||||
|
[heart mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.top.mas_equalTo(kGetScaleWidth(34));
|
||||||
|
make.centerX.mas_equalTo(backgroundImage);
|
||||||
|
make.size.mas_equalTo(CGSizeMake(kGetScaleWidth(125), kGetScaleWidth(60)));
|
||||||
|
}];
|
||||||
|
|
||||||
|
UIImageView *avatar_placeholder = [[UIImageView alloc] initWithImage:kImage(@"cp_empty_avatar")];
|
||||||
|
avatar_placeholder.contentMode = UIViewContentModeScaleAspectFit;
|
||||||
|
[self addSubview:avatar_placeholder];
|
||||||
|
[avatar_placeholder mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.top.mas_equalTo(kGetScaleWidth(43));
|
||||||
|
make.trailing.mas_equalTo(-56);
|
||||||
|
make.size.mas_equalTo(CGSizeMake(kGetScaleWidth(56), kGetScaleWidth(56)));
|
||||||
|
}];
|
||||||
|
|
||||||
|
[self addSubview:self.avatarView];
|
||||||
|
[self.avatarView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.top.mas_equalTo(kGetScaleWidth(43));
|
||||||
|
make.leading.mas_equalTo(56);
|
||||||
|
make.size.mas_equalTo(CGSizeMake(kGetScaleWidth(56), kGetScaleWidth(56)));
|
||||||
|
}];
|
||||||
|
[self addSubview:self.headWearSvgaImageView];
|
||||||
|
[self.headWearSvgaImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.center.mas_equalTo(self.avatarView);
|
||||||
|
make.size.mas_equalTo(CGSizeMake(kGetScaleWidth(85), kGetScaleWidth(85)));
|
||||||
|
}];
|
||||||
|
|
||||||
|
[self addSubview:self.avatarView_cp];
|
||||||
|
[self.avatarView_cp mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.center.mas_equalTo(avatar_placeholder);
|
||||||
|
make.size.mas_equalTo(CGSizeMake(kGetScaleWidth(56), kGetScaleWidth(56)));
|
||||||
|
}];
|
||||||
|
[self addSubview:self.headWearSvgaImageView_cp];
|
||||||
|
[self.headWearSvgaImageView_cp mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.center.mas_equalTo(self.avatarView_cp);
|
||||||
|
make.size.mas_equalTo(CGSizeMake(kGetScaleWidth(85), kGetScaleWidth(85)));
|
||||||
|
}];
|
||||||
|
|
||||||
|
[self addSubview:self.topLabel];
|
||||||
|
[self.topLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.centerX.mas_equalTo(self);
|
||||||
|
make.height.mas_equalTo(18);
|
||||||
|
make.top.mas_equalTo(29);
|
||||||
|
}];
|
||||||
|
|
||||||
|
[self addSubview:self.bottomLabel];
|
||||||
|
[self.bottomLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.centerX.mas_equalTo(self);
|
||||||
|
make.height.mas_equalTo(18);
|
||||||
|
make.top.mas_equalTo(heart.mas_bottom);
|
||||||
|
}];
|
||||||
|
|
||||||
|
[self addSubview:self.bottomImageView];
|
||||||
|
[self.bottomImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.centerX.mas_equalTo(self);
|
||||||
|
make.size.mas_equalTo(CGSizeMake(100, 19));
|
||||||
|
make.top.mas_equalTo(90);
|
||||||
|
}];
|
||||||
|
|
||||||
|
[self addSubview:self.progressView];
|
||||||
|
[self.progressView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.top.mas_equalTo(self.headWearSvgaImageView.mas_bottom).offset(4);
|
||||||
|
make.leading.mas_equalTo(self.backgroundImage).offset(22);
|
||||||
|
make.trailing.mas_equalTo(self.backgroundImage).offset(-22);
|
||||||
|
make.height.mas_equalTo(4);
|
||||||
|
}];
|
||||||
|
|
||||||
|
[self addSubview:self.breakYourHeartButton];
|
||||||
|
[self.breakYourHeartButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.top.mas_equalTo(27);
|
||||||
|
make.trailing.mas_equalTo(-28);
|
||||||
|
make.size.mas_equalTo(22);
|
||||||
|
}];
|
||||||
|
|
||||||
|
[self addSubview:self.progressNumLabel];
|
||||||
|
[self.progressNumLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.top.mas_equalTo(self.progressView.mas_bottom).offset(4);
|
||||||
|
make.trailing.mas_equalTo(self.progressView);
|
||||||
|
}];
|
||||||
|
|
||||||
|
[self addSubview:self.progressUpgradeLabel];
|
||||||
|
[self.progressUpgradeLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.top.mas_equalTo(self.progressView.mas_bottom).offset(4);
|
||||||
|
make.leading.mas_equalTo(self.progressView);
|
||||||
|
}];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)setIsListItem:(BOOL)isListItem {
|
||||||
|
_isListItem = isListItem;
|
||||||
|
self.progressView.hidden = !isListItem;
|
||||||
|
self.progressNumLabel.hidden = !isListItem;
|
||||||
|
self.progressUpgradeLabel.hidden = !isListItem;
|
||||||
|
if (isListItem) {
|
||||||
|
self.backgroundImage.image = kImage(@"cp_relationship_bg");
|
||||||
|
} else {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)setRelationUser:(RelationUserVO *)relationUser {
|
||||||
|
_relationUser = relationUser;
|
||||||
|
|
||||||
|
self.topLabel.hidden = [relationUser isEmptyRelation];
|
||||||
|
self.avatarView_cp.hidden = [relationUser isEmptyRelation];
|
||||||
|
self.bottomLabel.hidden = ![relationUser isEmptyRelation];
|
||||||
|
self.bottomImageView.hidden = [relationUser isEmptyRelation];
|
||||||
|
|
||||||
|
self.avatarView.imageUrl = relationUser.avatar;
|
||||||
|
self.avatarView_cp.imageUrl = relationUser.cpAvatar;
|
||||||
|
self.topLabel.text = [NSString stringWithFormat:@"%ld days", (long)relationUser.cpDay];
|
||||||
|
|
||||||
|
NSString *imagePath = [NSString stringWithFormat:@"cp_relationship_lv_%ld", self.relationUser.cpLevel];
|
||||||
|
self.bottomImageView.image = kImage(imagePath);
|
||||||
|
[self playSVGA:self.relationUser.cpLevel];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)updateForUserPage:(RelationUserVO *)model {
|
||||||
|
self.relationUser = model;
|
||||||
|
|
||||||
|
if ([model isEmptyRelation]) {
|
||||||
|
self.avatarView.imageUrl = self.usersAvatar;
|
||||||
|
self.bottomLabel.hidden = NO;
|
||||||
|
}
|
||||||
|
self.progressView.hidden = YES;
|
||||||
|
self.progressNumLabel.hidden = YES;
|
||||||
|
self.progressUpgradeLabel.hidden = YES;
|
||||||
|
self.breakYourHeartButton.hidden = YES;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)updateForCPList:(RelationUserVO *)model {
|
||||||
|
self.relationUser = model;
|
||||||
|
|
||||||
|
[self.backgroundImage mas_updateConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.bottom.mas_equalTo(self).offset(-12);
|
||||||
|
}];
|
||||||
|
|
||||||
|
self.progressView.progress = self.relationUser.currentExp / self.relationUser.nextLevelExp;
|
||||||
|
self.progressUpgradeLabel.text = [NSString stringWithFormat:@"Need %ld to upgrade", (long)(self.relationUser.nextLevelExp - self.relationUser.currentExp)];
|
||||||
|
self.progressNumLabel.text = [NSString stringWithFormat:@"(%ld/%ld)", (long)self.relationUser.currentExp, (long)self.relationUser.endExp];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)playSVGA:(NSInteger)level {
|
||||||
|
if (level == 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
@kWeakify(self);
|
||||||
|
SVGAParser *parser = [SVGAParser new];
|
||||||
|
[parser parseWithNamed:@(level).stringValue
|
||||||
|
inBundle:[NSBundle mainBundle]
|
||||||
|
completionBlock:^(SVGAVideoEntity * _Nonnull videoItem) {
|
||||||
|
@kStrongify(self);
|
||||||
|
self.headWearSvgaImageView.videoItem = videoItem;
|
||||||
|
[self.headWearSvgaImageView startAnimation];
|
||||||
|
self.headWearSvgaImageView_cp.videoItem = videoItem;
|
||||||
|
[self.headWearSvgaImageView_cp startAnimation];
|
||||||
|
} failureBlock:^(NSError * _Nonnull error) {
|
||||||
|
|
||||||
|
}];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)didTapBreakButton {
|
||||||
|
if (self.breakTheHeart) {
|
||||||
|
self.breakTheHeart(self.relationUser);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#pragma mark -
|
||||||
|
- (NetImageView *)avatarView {
|
||||||
|
if (!_avatarView) {
|
||||||
|
NetImageConfig * config = [[NetImageConfig alloc] init];
|
||||||
|
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
|
||||||
|
config.imageType = ImageTypeUserIcon;
|
||||||
|
_avatarView = [[NetImageView alloc]initWithConfig:config];
|
||||||
|
_avatarView.layer.cornerRadius = kGetScaleWidth(56/2);
|
||||||
|
_avatarView.layer.masksToBounds = YES;
|
||||||
|
_avatarView.layer.borderWidth = 1;
|
||||||
|
_avatarView.userInteractionEnabled = YES;
|
||||||
|
_avatarView.layer.borderColor = [UIColor whiteColor].CGColor;
|
||||||
|
}
|
||||||
|
return _avatarView;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NetImageView *)avatarView_cp {
|
||||||
|
if (!_avatarView_cp) {
|
||||||
|
NetImageConfig * config = [[NetImageConfig alloc] init];
|
||||||
|
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
|
||||||
|
config.imageType = ImageTypeUserIcon;
|
||||||
|
_avatarView_cp = [[NetImageView alloc]initWithConfig:config];
|
||||||
|
_avatarView_cp.layer.cornerRadius = kGetScaleWidth(56/2);
|
||||||
|
_avatarView_cp.layer.masksToBounds = YES;
|
||||||
|
_avatarView_cp.layer.borderWidth = 1;
|
||||||
|
_avatarView_cp.userInteractionEnabled = YES;
|
||||||
|
_avatarView_cp.layer.borderColor = [UIColor whiteColor].CGColor;
|
||||||
|
}
|
||||||
|
return _avatarView_cp;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (UILabel *)topLabel {
|
||||||
|
if (!_topLabel) {
|
||||||
|
_topLabel = [UILabel labelInitWithText:@"" font:kFontMedium(12) textColor:[UIColor whiteColor]];
|
||||||
|
}
|
||||||
|
return _topLabel;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (UILabel *)bottomLabel {
|
||||||
|
if (!_bottomLabel) {
|
||||||
|
_bottomLabel = [UILabel labelInitWithText:@"" font:kFontRegular(12) textColor:[UIColor colorWithWhite:1 alpha:0.8]];
|
||||||
|
}
|
||||||
|
return _bottomLabel;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NetImageView *)bottomImageView {
|
||||||
|
if (!_bottomImageView) {
|
||||||
|
_bottomImageView = [[NetImageView alloc] init];
|
||||||
|
}
|
||||||
|
return _bottomImageView;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (UILabel *)progressUpgradeLabel {
|
||||||
|
if (!_progressUpgradeLabel) {
|
||||||
|
_progressUpgradeLabel = [UILabel labelInitWithText:@"" font:kFontRegular(12) textColor:[UIColor whiteColor]];
|
||||||
|
}
|
||||||
|
return _progressUpgradeLabel;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (UILabel *)progressNumLabel {
|
||||||
|
if (!_progressNumLabel) {
|
||||||
|
_progressNumLabel = [UILabel labelInitWithText:@"" font:kFontRegular(12) textColor:[UIColor whiteColor]];
|
||||||
|
}
|
||||||
|
return _progressNumLabel;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (UIProgressView *)progressView {
|
||||||
|
if (!_progressView) {
|
||||||
|
_progressView = [[UIProgressView alloc] initWithProgressViewStyle:UIProgressViewStyleDefault];
|
||||||
|
|
||||||
|
// 设置背景色和前景色
|
||||||
|
_progressView.progressTintColor = UIColorFromRGB(0xF77300);
|
||||||
|
_progressView.trackTintColor = UIColorFromRGB(0x7E1E00);
|
||||||
|
|
||||||
|
// 设置高度 4 和圆角 1
|
||||||
|
_progressView.transform = CGAffineTransformMakeScale(1.0, 4.0 / _progressView.frame.size.height); // 调整高度
|
||||||
|
_progressView.layer.cornerRadius = 2.0; // 设置圆角
|
||||||
|
_progressView.layer.masksToBounds = YES; // 裁剪超出边界的部分
|
||||||
|
}
|
||||||
|
return _progressView;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (SVGAImageView *)headWearSvgaImageView {
|
||||||
|
if (!_headWearSvgaImageView) {
|
||||||
|
_headWearSvgaImageView = [[SVGAImageView alloc]init];
|
||||||
|
_headWearSvgaImageView.backgroundColor = [UIColor clearColor];
|
||||||
|
_headWearSvgaImageView.frame = self.bounds;
|
||||||
|
_headWearSvgaImageView.userInteractionEnabled = YES;
|
||||||
|
_headWearSvgaImageView.autoPlay = YES;
|
||||||
|
}
|
||||||
|
return _headWearSvgaImageView;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (SVGAImageView *)headWearSvgaImageView_cp {
|
||||||
|
if (!_headWearSvgaImageView_cp) {
|
||||||
|
_headWearSvgaImageView_cp = [[SVGAImageView alloc]init];
|
||||||
|
_headWearSvgaImageView_cp.backgroundColor = [UIColor clearColor];
|
||||||
|
_headWearSvgaImageView_cp.frame = self.bounds;
|
||||||
|
_headWearSvgaImageView_cp.userInteractionEnabled = YES;
|
||||||
|
_headWearSvgaImageView_cp.autoPlay = YES;
|
||||||
|
}
|
||||||
|
return _headWearSvgaImageView_cp;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
- (UIButton *)breakYourHeartButton {
|
||||||
|
if (!_breakYourHeartButton) {
|
||||||
|
_breakYourHeartButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||||
|
[_breakYourHeartButton setImage:kImage(@"cp_break_heart") forState:UIControlStateNormal];
|
||||||
|
[_breakYourHeartButton addTarget:self
|
||||||
|
action:@selector(didTapBreakButton)
|
||||||
|
forControlEvents:UIControlEventTouchUpInside];
|
||||||
|
}
|
||||||
|
return _breakYourHeartButton;
|
||||||
|
}
|
||||||
|
@end
|
@@ -8,6 +8,7 @@
|
|||||||
#import <UIKit/UIKit.h>
|
#import <UIKit/UIKit.h>
|
||||||
#import "XPSoundCardModel.h"
|
#import "XPSoundCardModel.h"
|
||||||
#import "XPMineUserInfoTagModel.h"
|
#import "XPMineUserInfoTagModel.h"
|
||||||
|
@class RelationUserVO;
|
||||||
NS_ASSUME_NONNULL_BEGIN
|
NS_ASSUME_NONNULL_BEGIN
|
||||||
@class UserInfoModel, SDCycleScrollView,XPMineUserInfoHeaderView;
|
@class UserInfoModel, SDCycleScrollView,XPMineUserInfoHeaderView;
|
||||||
@protocol XPMineUserInfoHeaderViewDelegate <NSObject>
|
@protocol XPMineUserInfoHeaderViewDelegate <NSObject>
|
||||||
@@ -33,6 +34,8 @@ NS_ASSUME_NONNULL_BEGIN
|
|||||||
///当前查看用户是否在直播
|
///当前查看用户是否在直播
|
||||||
@property (nonatomic,copy) NSString *roomUid;
|
@property (nonatomic,copy) NSString *roomUid;
|
||||||
|
|
||||||
|
@property (nonatomic, strong) RelationUserVO *relationUser;
|
||||||
|
|
||||||
+ (CGFloat)headerHeight:(UserInfoModel *)model;
|
+ (CGFloat)headerHeight:(UserInfoModel *)model;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
@@ -20,9 +20,14 @@
|
|||||||
#import "XPSkillCardPlayerManager.h"
|
#import "XPSkillCardPlayerManager.h"
|
||||||
#import "XPRoomMiniManager.h"
|
#import "XPRoomMiniManager.h"
|
||||||
#import "SpriteSheetImageManager.h"
|
#import "SpriteSheetImageManager.h"
|
||||||
|
#import "XCCurrentVCStackManager.h"
|
||||||
|
|
||||||
///view
|
///view
|
||||||
#import "XPMineUserInfoHeaderTagView.h"
|
#import "CPCard.h"
|
||||||
#import "XPBeautIDView.h"
|
#import "XPBeautIDView.h"
|
||||||
|
#import "CPListViewController.h"
|
||||||
|
#import "XPMineUserInfoHeaderTagView.h"
|
||||||
|
|
||||||
///Model
|
///Model
|
||||||
#import "UserInfoModel.h"
|
#import "UserInfoModel.h"
|
||||||
|
|
||||||
@@ -64,6 +69,11 @@ return view;\
|
|||||||
///头饰播放
|
///头饰播放
|
||||||
@property (nonatomic, strong) SpriteSheetImageManager *manager;
|
@property (nonatomic, strong) SpriteSheetImageManager *manager;
|
||||||
@property (nonatomic, strong) SVGAImageView *headWearSvgaImageView;
|
@property (nonatomic, strong) SVGAImageView *headWearSvgaImageView;
|
||||||
|
@property (nonatomic, strong) SVGAImageView *headWearSvgaImageView_cp;
|
||||||
|
|
||||||
|
@property (nonatomic, strong) UIImageView *cpAvatarHeart;
|
||||||
|
@property (nonatomic, strong) UIImageView *cpAvatarFlag;
|
||||||
|
|
||||||
///用户信息的背景
|
///用户信息的背景
|
||||||
@property (nonatomic,strong) UIStackView *nickStackView;
|
@property (nonatomic,strong) UIStackView *nickStackView;
|
||||||
///名字
|
///名字
|
||||||
@@ -72,15 +82,12 @@ return view;\
|
|||||||
@property (nonatomic,strong) UIButton *sexImageView;
|
@property (nonatomic,strong) UIButton *sexImageView;
|
||||||
///正在直播icon图
|
///正在直播icon图
|
||||||
@property (nonatomic,strong) SVGAImageView *onlineIconView;
|
@property (nonatomic,strong) SVGAImageView *onlineIconView;
|
||||||
///正在直播中tilte
|
|
||||||
//@property (nonatomic,strong) UILabel *onlineTitleView;
|
|
||||||
///正在直播中
|
///正在直播中
|
||||||
@property (nonatomic,strong) UIButton *onlineButton;
|
@property (nonatomic,strong) UIButton *onlineButton;
|
||||||
///
|
///
|
||||||
@property (nonatomic,strong) UIStackView *idStackView;
|
@property (nonatomic,strong) UIStackView *idStackView;
|
||||||
///id
|
///id
|
||||||
@property (nonatomic,strong) UILabel *idLabel;
|
@property (nonatomic,strong) UILabel *idLabel;
|
||||||
@property (nonatomic, strong) UIImageView *idIconImageView;
|
|
||||||
@property (nonatomic, strong) UIImageView *copyIdImageView;
|
@property (nonatomic, strong) UIImageView *copyIdImageView;
|
||||||
@property (nonatomic, strong) XPBeautIDView *beautIDView;
|
@property (nonatomic, strong) XPBeautIDView *beautIDView;
|
||||||
|
|
||||||
@@ -114,6 +121,8 @@ return view;\
|
|||||||
@property (nonatomic, strong) UILabel *fansNum;
|
@property (nonatomic, strong) UILabel *fansNum;
|
||||||
@property (nonatomic, strong) UILabel *followersNum;
|
@property (nonatomic, strong) UILabel *followersNum;
|
||||||
|
|
||||||
|
@property (nonatomic, strong) CPCard *cpCard;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@implementation XPMineUserInfoHeaderView
|
@implementation XPMineUserInfoHeaderView
|
||||||
@@ -150,7 +159,7 @@ return view;\
|
|||||||
numberOfLines = ceil(textRect.size.height / lineHeight);
|
numberOfLines = ceil(textRect.size.height / lineHeight);
|
||||||
}
|
}
|
||||||
|
|
||||||
height = kGetScaleWidth(400) + lineHeight * numberOfLines;
|
height = kGetScaleWidth(520) + lineHeight * numberOfLines;
|
||||||
|
|
||||||
return height;
|
return height;
|
||||||
}
|
}
|
||||||
@@ -163,7 +172,7 @@ return view;\
|
|||||||
|
|
||||||
[self addSubview:self.pageButton];
|
[self addSubview:self.pageButton];
|
||||||
[self.pageButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
[self.pageButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
make.trailing.mas_equalTo(self);
|
make.trailing.mas_equalTo(self).offset(kGetScaleWidth(-15));
|
||||||
make.top.mas_equalTo(self).offset(kNavigationHeight + 80);
|
make.top.mas_equalTo(self).offset(kNavigationHeight + 80);
|
||||||
make.size.mas_equalTo(CGSizeMake(30, 18));
|
make.size.mas_equalTo(CGSizeMake(30, 18));
|
||||||
}];
|
}];
|
||||||
@@ -237,6 +246,34 @@ return view;\
|
|||||||
[self.reviewIcon mas_makeConstraints:^(MASConstraintMaker *make) {
|
[self.reviewIcon mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
make.edges.mas_equalTo(self.avatarView);
|
make.edges.mas_equalTo(self.avatarView);
|
||||||
}];
|
}];
|
||||||
|
|
||||||
|
[self addSubview:self.avatarView_cp];
|
||||||
|
[self.avatarView_cp mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.width.height.mas_equalTo(kGetScaleWidth(82));
|
||||||
|
make.leading.mas_equalTo(self.headWearSvgaImageView.mas_trailing).offset(kGetScaleWidth(16));
|
||||||
|
make.centerY.equalTo(self.userInfoView.mas_top);
|
||||||
|
}];
|
||||||
|
|
||||||
|
[self addSubview:self.headWearSvgaImageView_cp];
|
||||||
|
[self.headWearSvgaImageView_cp mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.center.mas_equalTo(self.avatarView_cp);
|
||||||
|
make.width.height.mas_equalTo(kGetScaleWidth(114));
|
||||||
|
}];
|
||||||
|
|
||||||
|
[self addSubview:self.cpAvatarHeart];
|
||||||
|
[self.cpAvatarHeart mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.centerY.equalTo(self.userInfoView.mas_top);
|
||||||
|
make.centerX.equalTo(self.headWearSvgaImageView.mas_trailing);
|
||||||
|
make.width.height.mas_equalTo(kGetScaleWidth(38));
|
||||||
|
}];
|
||||||
|
|
||||||
|
[self addSubview:self.cpAvatarFlag];
|
||||||
|
[self.cpAvatarFlag mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.bottom.equalTo(self.headWearSvgaImageView);
|
||||||
|
make.centerX.equalTo(self.headWearSvgaImageView.mas_trailing);
|
||||||
|
make.width.mas_equalTo(kGetScaleWidth(122));
|
||||||
|
make.height.mas_equalTo(kGetScaleWidth(35));
|
||||||
|
}];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)setupNameArea {
|
- (void)setupNameArea {
|
||||||
@@ -422,10 +459,21 @@ return view;\
|
|||||||
}];
|
}];
|
||||||
|
|
||||||
UIButton *cpListButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
UIButton *cpListButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||||
[cpListButton setImage:kImage(@"") forState:UIControlStateNormal];
|
[cpListButton setImage:kImage(@"cp_menu") forState:UIControlStateNormal];
|
||||||
[cpListButton addTarget:self action:@selector(clickCPListButton) forControlEvents:UIControlEventTouchUpInside];
|
[cpListButton addTarget:self action:@selector(clickCPListButton) forControlEvents:UIControlEventTouchUpInside];
|
||||||
[];
|
[self.userInfoView addSubview:cpListButton];
|
||||||
|
[cpListButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.centerY.mas_equalTo(titleLabel);
|
||||||
|
make.trailing.mas_equalTo(kGetScaleWidth(-15));
|
||||||
|
make.width.height.mas_equalTo(22);
|
||||||
|
}];
|
||||||
|
|
||||||
|
[self.userInfoView addSubview:self.cpCard];
|
||||||
|
[self.cpCard mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.top.mas_equalTo(titleLabel.mas_bottom).offset(3);
|
||||||
|
make.width.mas_equalTo(self.userInfoView);
|
||||||
|
make.height.mas_equalTo(kGetScaleWidth(135));
|
||||||
|
}];
|
||||||
}
|
}
|
||||||
|
|
||||||
#pragma mark - SDPhotoBrowserDelegate
|
#pragma mark - SDPhotoBrowserDelegate
|
||||||
@@ -485,7 +533,8 @@ return view;\
|
|||||||
}
|
}
|
||||||
|
|
||||||
- (void)clickCPListButton {
|
- (void)clickCPListButton {
|
||||||
|
CPListViewController *cpListVC = [[CPListViewController alloc] init];
|
||||||
|
[[XCCurrentVCStackManager shareManager].getCurrentVC.navigationController pushViewController:cpListVC animated:YES];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)onlineButtonAction:(UIButton *)sender {
|
- (void)onlineButtonAction:(UIButton *)sender {
|
||||||
@@ -619,6 +668,22 @@ return view;\
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (void)setRelationUser:(RelationUserVO *)relationUser {
|
||||||
|
_relationUser = relationUser;
|
||||||
|
self.cpAvatarHeart.hidden = !relationUser;
|
||||||
|
self.cpAvatarFlag.hidden = !relationUser;
|
||||||
|
|
||||||
|
self.cpCard.isListItem = NO;
|
||||||
|
self.cpCard.usersAvatar = self.userInfo.avatar;
|
||||||
|
[self.cpCard updateForUserPage:relationUser];
|
||||||
|
self.avatarView_cp.imageUrl = relationUser.cpAvatar;
|
||||||
|
|
||||||
|
NSString *imagePath = [NSString stringWithFormat:@"cp_avatar_flag_lv_%ld", relationUser.cpLevel];
|
||||||
|
self.cpAvatarFlag.image = kImage(imagePath);
|
||||||
|
|
||||||
|
[self playCPSVGA:relationUser.cpLevel];
|
||||||
|
}
|
||||||
|
|
||||||
- (void)updateNameAndGenderInfo {
|
- (void)updateNameAndGenderInfo {
|
||||||
self.nameLabel.text = self.userInfo.nick;
|
self.nameLabel.text = self.userInfo.nick;
|
||||||
UIImage *sexBackgroundImage = nil;
|
UIImage *sexBackgroundImage = nil;
|
||||||
@@ -636,24 +701,9 @@ return view;\
|
|||||||
}
|
}
|
||||||
|
|
||||||
- (void)updateIDInfo {
|
- (void)updateIDInfo {
|
||||||
NSString *text = @"";
|
NSString *text = [NSString stringWithFormat:@"%ld", (long)self.userInfo.erbanNo];
|
||||||
// BOOL hasBeautifulID = self.userInfo.hasPrettyErbanNo;
|
|
||||||
// if (hasBeautifulID) {
|
|
||||||
text = [NSString stringWithFormat:@"%ld", (long)self.userInfo.erbanNo];
|
|
||||||
// } else {
|
|
||||||
// text = [NSString stringWithFormat:@" %ld", (long)self.userInfo.erbanNo];
|
|
||||||
// }
|
|
||||||
|
|
||||||
// self.idIconImageView.hidden = hasBeautifulID;
|
|
||||||
self.idLabel.text = [NSString stringWithFormat:@"ID:%@", text];
|
self.idLabel.text = [NSString stringWithFormat:@"ID:%@", text];
|
||||||
self.beautIDView.num = text;
|
self.beautIDView.num = text;
|
||||||
// if (hasBeautifulID) {
|
|
||||||
// self.idStackView.hidden = YES;
|
|
||||||
// } else {
|
|
||||||
// self.beautIDView.hidden = YES;
|
|
||||||
// self.idLabel.text = text;
|
|
||||||
// self.idLabel.alpha = 0.8;
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)updateLocateAndRegionInfo {
|
- (void)updateLocateAndRegionInfo {
|
||||||
@@ -713,6 +763,26 @@ return view;\
|
|||||||
failureBlock:^(NSError * _Nullable error) {}];
|
failureBlock:^(NSError * _Nullable error) {}];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (void)playCPSVGA:(NSInteger)level {
|
||||||
|
if (level == 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
@kWeakify(self);
|
||||||
|
SVGAParser *parser = [SVGAParser new];
|
||||||
|
[parser parseWithNamed:@(level).stringValue
|
||||||
|
inBundle:[NSBundle mainBundle]
|
||||||
|
completionBlock:^(SVGAVideoEntity * _Nonnull videoItem) {
|
||||||
|
@kStrongify(self);
|
||||||
|
self.headWearSvgaImageView.videoItem = videoItem;
|
||||||
|
[self.headWearSvgaImageView startAnimation];
|
||||||
|
self.headWearSvgaImageView_cp.videoItem = videoItem;
|
||||||
|
[self.headWearSvgaImageView_cp startAnimation];
|
||||||
|
} failureBlock:^(NSError * _Nonnull error) {
|
||||||
|
|
||||||
|
}];
|
||||||
|
}
|
||||||
|
|
||||||
- (void)playAnimate:(NSString *)headwearUrlString {
|
- (void)playAnimate:(NSString *)headwearUrlString {
|
||||||
self.headWearImageView.hidden = NO;
|
self.headWearImageView.hidden = NO;
|
||||||
NSURL *url = [NSURL URLWithString:headwearUrlString];
|
NSURL *url = [NSURL URLWithString:headwearUrlString];
|
||||||
@@ -738,7 +808,7 @@ return view;\
|
|||||||
_nickStackView.backgroundColor = [UIColor clearColor];
|
_nickStackView.backgroundColor = [UIColor clearColor];
|
||||||
_nickStackView.axis = UILayoutConstraintAxisHorizontal;
|
_nickStackView.axis = UILayoutConstraintAxisHorizontal;
|
||||||
_nickStackView.distribution = UIStackViewDistributionFillProportionally;
|
_nickStackView.distribution = UIStackViewDistributionFillProportionally;
|
||||||
_nickStackView.alignment = UIStackViewAlignmentLeading;
|
_nickStackView.alignment = UIStackViewAlignmentCenter;
|
||||||
_nickStackView.spacing = 4;
|
_nickStackView.spacing = 4;
|
||||||
if (isMSRTL()) {
|
if (isMSRTL()) {
|
||||||
_nickStackView.semanticContentAttribute = UISemanticContentAttributeForceRightToLeft;
|
_nickStackView.semanticContentAttribute = UISemanticContentAttributeForceRightToLeft;
|
||||||
@@ -798,15 +868,6 @@ return view;\
|
|||||||
return _idLabel;
|
return _idLabel;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (UIImageView *)idIconImageView {
|
|
||||||
if (!_idIconImageView) {
|
|
||||||
_idIconImageView = [[UIImageView alloc] init];
|
|
||||||
_idIconImageView.userInteractionEnabled = YES;
|
|
||||||
_idIconImageView.image = [UIImage getLanguageImage:@"user_info_id_mark"];
|
|
||||||
}
|
|
||||||
return _idIconImageView;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (UIImageView *)copyIdImageView {
|
- (UIImageView *)copyIdImageView {
|
||||||
if (!_copyIdImageView) {
|
if (!_copyIdImageView) {
|
||||||
_copyIdImageView = [[UIImageView alloc] init];
|
_copyIdImageView = [[UIImageView alloc] init];
|
||||||
@@ -1032,6 +1093,23 @@ return view;\
|
|||||||
return _avatarView;
|
return _avatarView;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
-(NetImageView *)avatarView_cp{
|
||||||
|
if (!_avatarView_cp){
|
||||||
|
NetImageConfig * config = [[NetImageConfig alloc] init];
|
||||||
|
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
|
||||||
|
config.imageType = ImageTypeUserIcon;
|
||||||
|
_avatarView_cp = [[NetImageView alloc]initWithConfig:config];
|
||||||
|
_avatarView_cp.layer.cornerRadius = kGetScaleWidth(41);
|
||||||
|
_avatarView_cp.layer.masksToBounds = YES;
|
||||||
|
_avatarView_cp.layer.borderWidth = 1;
|
||||||
|
_avatarView_cp.userInteractionEnabled = YES;
|
||||||
|
_avatarView_cp.layer.borderColor = [UIColor whiteColor].CGColor;
|
||||||
|
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(clickAvatarAction)];
|
||||||
|
[_avatarView_cp addGestureRecognizer:tap];
|
||||||
|
}
|
||||||
|
return _avatarView_cp;
|
||||||
|
}
|
||||||
|
|
||||||
- (YYAnimatedImageView *)headWearImageView {
|
- (YYAnimatedImageView *)headWearImageView {
|
||||||
if (!_headWearImageView) {
|
if (!_headWearImageView) {
|
||||||
_headWearImageView = [[YYAnimatedImageView alloc] init];
|
_headWearImageView = [[YYAnimatedImageView alloc] init];
|
||||||
@@ -1117,4 +1195,36 @@ return view;\
|
|||||||
return _headWearSvgaImageView;
|
return _headWearSvgaImageView;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (SVGAImageView *)headWearSvgaImageView_cp {
|
||||||
|
if (!_headWearSvgaImageView_cp) {
|
||||||
|
_headWearSvgaImageView_cp = [[SVGAImageView alloc]init];
|
||||||
|
_headWearSvgaImageView_cp.backgroundColor = [UIColor clearColor];
|
||||||
|
_headWearSvgaImageView_cp.frame = self.bounds;
|
||||||
|
_headWearSvgaImageView_cp.userInteractionEnabled = YES;
|
||||||
|
_headWearSvgaImageView_cp.autoPlay = YES;
|
||||||
|
}
|
||||||
|
return _headWearSvgaImageView_cp;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (CPCard *)cpCard {
|
||||||
|
if (!_cpCard) {
|
||||||
|
_cpCard = [[CPCard alloc] init];
|
||||||
|
}
|
||||||
|
return _cpCard;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (UIImageView *)cpAvatarHeart {
|
||||||
|
if (!_cpAvatarHeart) {
|
||||||
|
_cpAvatarHeart = [[UIImageView alloc] initWithImage:kImage(@"cp_avatar_heart")];
|
||||||
|
}
|
||||||
|
return _cpAvatarHeart;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (UIImageView *)cpAvatarFlag {
|
||||||
|
if (!_cpAvatarFlag) {
|
||||||
|
_cpAvatarFlag = [[UIImageView alloc] init];
|
||||||
|
}
|
||||||
|
return _cpAvatarFlag;
|
||||||
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
BIN
YuMi/Resources/cp/1.svga
Normal file
BIN
YuMi/Resources/cp/2.svga
Normal file
BIN
YuMi/Resources/cp/3.svga
Normal file
BIN
YuMi/Resources/cp/4.svga
Normal file
BIN
YuMi/Resources/cp/5.svga
Normal file
@@ -31,43 +31,43 @@ NS_ASSUME_NONNULL_BEGIN
|
|||||||
+ (void)phoneSmsCode:(HttpRequestHelperCompletion)completion mobile:(NSString *)mobile type:(NSString *)type phoneAreaCode:(NSString *)phoneAreaCode;
|
+ (void)phoneSmsCode:(HttpRequestHelperCompletion)completion mobile:(NSString *)mobile type:(NSString *)type phoneAreaCode:(NSString *)phoneAreaCode;
|
||||||
|
|
||||||
/// 校验手机号码
|
/// 校验手机号码
|
||||||
/// @param complection 完成
|
/// @param completion 完成
|
||||||
/// @param mobile 手机号
|
/// @param mobile 手机号
|
||||||
/// @param code 验证码
|
/// @param code 验证码
|
||||||
/// @param uid 用户的uid
|
/// @param uid 用户的uid
|
||||||
/// @param ticket ticket
|
/// @param ticket ticket
|
||||||
+ (void)checkMoblieCode:(HttpRequestHelperCompletion)complection
|
+ (void)checkMoblieCode:(HttpRequestHelperCompletion)completion
|
||||||
mobile:(NSString *)mobile
|
mobile:(NSString *)mobile
|
||||||
code:(NSString *)code
|
code:(NSString *)code
|
||||||
uid:(NSString *)uid
|
uid:(NSString *)uid
|
||||||
ticket:(NSString *)ticket phoneAreaCode:(NSString *)phoneAreaCode;
|
ticket:(NSString *)ticket phoneAreaCode:(NSString *)phoneAreaCode;
|
||||||
|
|
||||||
/// 补全用户资料
|
/// 补全用户资料
|
||||||
/// @param complection 完成
|
/// @param completion 完成
|
||||||
/// @param userInfo 需要更新的用户信息
|
/// @param userInfo 需要更新的用户信息
|
||||||
+ (void)completeUserInfo:(HttpRequestHelperCompletion)complection
|
+ (void)completeUserInfo:(HttpRequestHelperCompletion)completion
|
||||||
userInfo:(NSDictionary *)userInfo;
|
userInfo:(NSDictionary *)userInfo;
|
||||||
/// 获取用户钱包余额信息
|
/// 获取用户钱包余额信息
|
||||||
/// @param complection 完成
|
/// @param completion 完成
|
||||||
/// @param uid 用户uid
|
/// @param uid 用户uid
|
||||||
/// @param ticket ticketg
|
/// @param ticket ticketg
|
||||||
+ (void)getUserWalletInfo:(HttpRequestHelperCompletion)complection
|
+ (void)getUserWalletInfo:(HttpRequestHelperCompletion)completion
|
||||||
uid:(NSString *)uid
|
uid:(NSString *)uid
|
||||||
ticket:(NSString *)ticket;
|
ticket:(NSString *)ticket;
|
||||||
/// 批量验证
|
/// 批量验证
|
||||||
/// @param complection 完成
|
/// @param completion 完成
|
||||||
/// @param transcationIdStr 需要验证的数据
|
/// @param transcationIdStr 需要验证的数据
|
||||||
+ (void)requestCheckTranscationIds:(HttpRequestHelperCompletion)complection
|
+ (void)requestCheckTranscationIds:(HttpRequestHelperCompletion)completion
|
||||||
transcationIdStr:(NSString *)transcationIdStr;
|
transcationIdStr:(NSString *)transcationIdStr;
|
||||||
|
|
||||||
/// 锁麦/开麦
|
/// 锁麦/开麦
|
||||||
/// @param complection 完成
|
/// @param completion 完成
|
||||||
/// @param roomUid 房主的uid
|
/// @param roomUid 房主的uid
|
||||||
/// @param state 0 开麦 1 锁麦
|
/// @param state 0 开麦 1 锁麦
|
||||||
/// @param position 坑位
|
/// @param position 坑位
|
||||||
/// @param ticket 用户的ticket
|
/// @param ticket 用户的ticket
|
||||||
/// @param uid uid
|
/// @param uid uid
|
||||||
+ (void)microMuteCompletion:(HttpRequestHelperCompletion)complection
|
+ (void)microMuteCompletion:(HttpRequestHelperCompletion)completion
|
||||||
roomUid:(NSString *)roomUid
|
roomUid:(NSString *)roomUid
|
||||||
state:(NSString *)state
|
state:(NSString *)state
|
||||||
position:(NSString *)position
|
position:(NSString *)position
|
||||||
@@ -75,22 +75,23 @@ NS_ASSUME_NONNULL_BEGIN
|
|||||||
uid:(NSString *)uid;
|
uid:(NSString *)uid;
|
||||||
|
|
||||||
/// 锁坑/开锁
|
/// 锁坑/开锁
|
||||||
/// @param complection 完成
|
/// @param completion 完成
|
||||||
/// @param roomUid 房主的uid
|
/// @param roomUid 房主的uid
|
||||||
/// @param state 1锁坑位,0取消锁(即取消锁坑位)
|
/// @param state 1锁坑位,0取消锁(即取消锁坑位)
|
||||||
/// @param position 坑位
|
/// @param position 坑位
|
||||||
/// @param ticket 用户的ticket
|
/// @param ticket 用户的ticket
|
||||||
/// @param uid uid
|
/// @param uid uid
|
||||||
+ (void)microLockCompletion:(HttpRequestHelperCompletion)complection
|
+ (void)microLockCompletion:(HttpRequestHelperCompletion)completion
|
||||||
roomUid:(NSString *)roomUid
|
roomUid:(NSString *)roomUid
|
||||||
state:(NSString *)state
|
state:(NSString *)state
|
||||||
position:(NSString *)position
|
position:(NSString *)position
|
||||||
ticket:(NSString *)ticket
|
ticket:(NSString *)ticket
|
||||||
uid:(NSString *)uid;
|
uid:(NSString *)uid;
|
||||||
//充值banner位
|
//充值banner位
|
||||||
+(void)requestBannerListCompletion:(HttpRequestHelperCompletion)complection;
|
+(void)requestBannerListCompletion:(HttpRequestHelperCompletion)completion;
|
||||||
//联系客服
|
//联系客服
|
||||||
+(void)requestContactCustomerServiceCompletion:(HttpRequestHelperCompletion)complection;
|
+(void)requestContactCustomerServiceCompletion:(HttpRequestHelperCompletion)completion;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
NS_ASSUME_NONNULL_END
|
NS_ASSUME_NONNULL_END
|
||||||
|
@@ -66,77 +66,78 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// 校验手机号码
|
/// 校验手机号码
|
||||||
/// @param complection 完成
|
/// @param completion 完成
|
||||||
/// @param mobile 手机号
|
/// @param mobile 手机号
|
||||||
/// @param code 验证码
|
/// @param code 验证码
|
||||||
/// @param uid 用户的uid
|
/// @param uid 用户的uid
|
||||||
/// @param ticket ticket
|
/// @param ticket ticket
|
||||||
+ (void)checkMoblieCode:(HttpRequestHelperCompletion)complection
|
+ (void)checkMoblieCode:(HttpRequestHelperCompletion)completion
|
||||||
mobile:(NSString *)mobile
|
mobile:(NSString *)mobile
|
||||||
code:(NSString *)code
|
code:(NSString *)code
|
||||||
uid:(NSString *)uid
|
uid:(NSString *)uid
|
||||||
ticket:(NSString *)ticket phoneAreaCode:(NSString *)phoneAreaCode{
|
ticket:(NSString *)ticket phoneAreaCode:(NSString *)phoneAreaCode{
|
||||||
NSString * fang = [NSString stringFromBase64String:@"c21zL3ZlcmlmeQ=="];///sms/verify
|
NSString * fang = [NSString stringFromBase64String:@"c21zL3ZlcmlmeQ=="];///sms/verify
|
||||||
[self makeRequest:fang method:HttpRequestHelperMethodPOST completion:complection, __FUNCTION__, mobile, code, uid, ticket,phoneAreaCode,nil];
|
[self makeRequest:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, mobile, code, uid, ticket,phoneAreaCode,nil];
|
||||||
}
|
}
|
||||||
|
|
||||||
/// 补全用户资料
|
/// 补全用户资料
|
||||||
/// @param complection 完成
|
/// @param completion 完成
|
||||||
/// @param userInfo 需要更新的用户信息
|
/// @param userInfo 需要更新的用户信息
|
||||||
+ (void)completeUserInfo:(HttpRequestHelperCompletion)complection
|
+ (void)completeUserInfo:(HttpRequestHelperCompletion)completion
|
||||||
userInfo:(NSDictionary *)userInfo {
|
userInfo:(NSDictionary *)userInfo {
|
||||||
NSString * fang = [NSString stringFromBase64String:@"dXNlci92Mi91cGRhdGU="];///user/v2/update
|
NSString * fang = [NSString stringFromBase64String:@"dXNlci92Mi91cGRhdGU="];///user/v2/update
|
||||||
[HttpRequestHelper request:fang method:HttpRequestHelperMethodPOST params:userInfo completion:complection];
|
[HttpRequestHelper request:fang method:HttpRequestHelperMethodPOST params:userInfo completion:completion];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/// 获取用户钱包余额信息
|
/// 获取用户钱包余额信息
|
||||||
/// @param complection 完成
|
/// @param completion 完成
|
||||||
/// @param uid 用户uid
|
/// @param uid 用户uid
|
||||||
/// @param ticket ticketg
|
/// @param ticket ticketg
|
||||||
+ (void)getUserWalletInfo:(HttpRequestHelperCompletion)complection uid:(NSString *)uid ticket:(NSString *)ticket {
|
+ (void)getUserWalletInfo:(HttpRequestHelperCompletion)completion uid:(NSString *)uid ticket:(NSString *)ticket {
|
||||||
NSString * fang = [NSString stringFromBase64String:@"cHVyc2UvcXVlcnk="];///purse/query
|
NSString * fang = [NSString stringFromBase64String:@"cHVyc2UvcXVlcnk="];///purse/query
|
||||||
[self makeRequest:fang method:HttpRequestHelperMethodGET completion:complection, __FUNCTION__, uid, ticket,nil];
|
[self makeRequest:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, uid, ticket,nil];
|
||||||
}
|
}
|
||||||
|
|
||||||
/// 批量验证
|
/// 批量验证
|
||||||
/// @param complection 完成
|
/// @param completion 完成
|
||||||
/// @param transcationIdStr 需要验证的数据
|
/// @param transcationIdStr 需要验证的数据
|
||||||
+ (void)requestCheckTranscationIds:(HttpRequestHelperCompletion)complection
|
+ (void)requestCheckTranscationIds:(HttpRequestHelperCompletion)completion
|
||||||
transcationIdStr:(NSString *)transcationIdStr {
|
transcationIdStr:(NSString *)transcationIdStr {
|
||||||
NSString * fang = [NSString stringFromBase64String:@"dmVyaWZ5L2NoZWNrSU9TQ2hhcmdlUmVjb3Jk"];///verify/checkIOSChargeRecord
|
NSString * fang = [NSString stringFromBase64String:@"dmVyaWZ5L2NoZWNrSU9TQ2hhcmdlUmVjb3Jk"];///verify/checkIOSChargeRecord
|
||||||
[self makeRequest:fang method:HttpRequestHelperMethodPOST completion:complection, __FUNCTION__,transcationIdStr, nil];
|
[self makeRequest:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__,transcationIdStr, nil];
|
||||||
}
|
}
|
||||||
|
|
||||||
/// 锁麦/开麦
|
/// 锁麦/开麦
|
||||||
/// @param complection 完成
|
/// @param completion 完成
|
||||||
/// @param roomUid 房主的uid
|
/// @param roomUid 房主的uid
|
||||||
/// @param state 0 开麦 1 锁麦
|
/// @param state 0 开麦 1 锁麦
|
||||||
/// @param position 坑位
|
/// @param position 坑位
|
||||||
/// @param ticket 用户的ticket
|
/// @param ticket 用户的ticket
|
||||||
/// @param uid uid
|
/// @param uid uid
|
||||||
+ (void)microMuteCompletion:(HttpRequestHelperCompletion)complection roomUid:(NSString *)roomUid state:(NSString *)state position:(NSString *)position ticket:(NSString *)ticket uid:(NSString *)uid {
|
+ (void)microMuteCompletion:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid state:(NSString *)state position:(NSString *)position ticket:(NSString *)ticket uid:(NSString *)uid {
|
||||||
NSString * fang = [NSString stringFromBase64String:@"cm9vbS9taWMvbG9ja21pYw=="];///@"room/mic/lockmic"
|
NSString * fang = [NSString stringFromBase64String:@"cm9vbS9taWMvbG9ja21pYw=="];///@"room/mic/lockmic"
|
||||||
[self makeRequest:fang method:HttpRequestHelperMethodPOST completion:complection, __FUNCTION__, roomUid, state, position, ticket, uid, nil];
|
[self makeRequest:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, roomUid, state, position, ticket, uid, nil];
|
||||||
}
|
}
|
||||||
|
|
||||||
/// 锁坑/开锁
|
/// 锁坑/开锁
|
||||||
/// @param complection 完成
|
/// @param completion 完成
|
||||||
/// @param roomUid 房主的uid
|
/// @param roomUid 房主的uid
|
||||||
/// @param state 1锁坑位,0取消锁(即取消锁坑位)
|
/// @param state 1锁坑位,0取消锁(即取消锁坑位)
|
||||||
/// @param position 坑位
|
/// @param position 坑位
|
||||||
/// @param ticket 用户的ticket
|
/// @param ticket 用户的ticket
|
||||||
/// @param uid uid
|
/// @param uid uid
|
||||||
+ (void)microLockCompletion:(HttpRequestHelperCompletion)complection roomUid:(NSString *)roomUid state:(NSString *)state position:(NSString *)position ticket:(NSString *)ticket uid:(NSString *)uid {
|
+ (void)microLockCompletion:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid state:(NSString *)state position:(NSString *)position ticket:(NSString *)ticket uid:(NSString *)uid {
|
||||||
NSString * fang = [NSString stringFromBase64String:@"cm9vbS9taWMvbG9ja3Bvcw=="];///room/mic/lockpos
|
NSString * fang = [NSString stringFromBase64String:@"cm9vbS9taWMvbG9ja3Bvcw=="];///room/mic/lockpos
|
||||||
[self makeRequest:fang method:HttpRequestHelperMethodPOST completion:complection, __FUNCTION__, roomUid, state, position, ticket, uid, nil];
|
[self makeRequest:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, roomUid, state, position, ticket, uid, nil];
|
||||||
}
|
}
|
||||||
//充值banner位
|
//充值banner位
|
||||||
+(void)requestBannerListCompletion:(HttpRequestHelperCompletion)complection{
|
+(void)requestBannerListCompletion:(HttpRequestHelperCompletion)completion{
|
||||||
[self makeRequest:@"charge/guide/banner" method:HttpRequestHelperMethodGET completion:complection, __FUNCTION__, nil];
|
[self makeRequest:@"charge/guide/banner" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, nil];
|
||||||
}
|
}
|
||||||
//联系客服
|
//联系客服
|
||||||
+(void)requestContactCustomerServiceCompletion:(HttpRequestHelperCompletion)complection{
|
+(void)requestContactCustomerServiceCompletion:(HttpRequestHelperCompletion)completion{
|
||||||
[self makeRequest:@"charge/guide/contact" method:HttpRequestHelperMethodGET completion:complection, __FUNCTION__, nil];
|
[self makeRequest:@"charge/guide/contact" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, nil];
|
||||||
}
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
38
YuMi/Structure/MVP/Model/RelationUserVO.h
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
//
|
||||||
|
// RelationUserVO.h
|
||||||
|
// YuMi
|
||||||
|
//
|
||||||
|
// Created by P on 2024/9/19.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "PIBaseModel.h"
|
||||||
|
|
||||||
|
NS_ASSUME_NONNULL_BEGIN
|
||||||
|
|
||||||
|
@interface RelationUserVO : PIBaseModel
|
||||||
|
|
||||||
|
@property (nonatomic, assign) BOOL showCpAvatar;
|
||||||
|
@property (nonatomic, assign) BOOL showCpAnim;
|
||||||
|
|
||||||
|
@property (nonatomic, copy) NSString *nick;
|
||||||
|
@property (nonatomic, copy) NSString *avatar;
|
||||||
|
@property (nonatomic, copy) NSString *cpNick;
|
||||||
|
@property (nonatomic, copy) NSString *cpAvatar;
|
||||||
|
|
||||||
|
@property (nonatomic, assign) NSInteger uid;
|
||||||
|
@property (nonatomic, assign) NSInteger cpUid;
|
||||||
|
@property (nonatomic, assign) NSInteger cpDay;
|
||||||
|
@property (nonatomic, assign) NSInteger cpLevel;
|
||||||
|
@property (nonatomic, assign) NSInteger maxCpLevel;
|
||||||
|
@property (nonatomic, assign) NSInteger currentExp;
|
||||||
|
@property (nonatomic, assign) NSInteger nextLevelExp;
|
||||||
|
@property (nonatomic, assign) NSInteger cancelGoldNum;
|
||||||
|
|
||||||
|
@property (nonatomic, assign) NSInteger endExp;
|
||||||
|
@property (nonatomic, assign) NSInteger startExp;
|
||||||
|
|
||||||
|
- (BOOL)isEmptyRelation;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
NS_ASSUME_NONNULL_END
|
16
YuMi/Structure/MVP/Model/RelationUserVO.m
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
//
|
||||||
|
// RelationUserVO.m
|
||||||
|
// YuMi
|
||||||
|
//
|
||||||
|
// Created by P on 2024/9/19.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "RelationUserVO.h"
|
||||||
|
|
||||||
|
@implementation RelationUserVO
|
||||||
|
|
||||||
|
- (BOOL)isEmptyRelation {
|
||||||
|
return self.cpAvatar.length == 0 || self.cpUid == 0 || self.cpNick.length == 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
@@ -15,6 +15,8 @@
|
|||||||
#import "MomentsInfoModel.h"
|
#import "MomentsInfoModel.h"
|
||||||
#import "XPSoundCardModel.h"
|
#import "XPSoundCardModel.h"
|
||||||
#import "MedalModel.h"
|
#import "MedalModel.h"
|
||||||
|
#import "RelationUserVO.h"
|
||||||
|
|
||||||
NS_ASSUME_NONNULL_BEGIN
|
NS_ASSUME_NONNULL_BEGIN
|
||||||
|
|
||||||
|
|
||||||
@@ -156,6 +158,8 @@ NS_ASSUME_NONNULL_BEGIN
|
|||||||
|
|
||||||
@property (nonatomic, strong) MedalModel *medals;
|
@property (nonatomic, strong) MedalModel *medals;
|
||||||
|
|
||||||
|
@property (nonatomic, strong) RelationUserVO *relationUserVO;
|
||||||
|
|
||||||
- (BOOL)isUserValid;
|
- (BOOL)isUserValid;
|
||||||
- (NSString *)userIDString;
|
- (NSString *)userIDString;
|
||||||
|
|
||||||
|