个人中心添加家族

This commit is contained in:
fengshuo
2022-04-14 22:02:15 +08:00
parent a7385710ed
commit 3654a52e2e
40 changed files with 2159 additions and 218 deletions

View File

@@ -273,6 +273,9 @@
E800808527FD8FC20055A8AB /* ClanMemberDetailInfoModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E800808427FD8FC20055A8AB /* ClanMemberDetailInfoModel.m */; };
E800808827FDA5100055A8AB /* XPClanSectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = E800808727FDA5100055A8AB /* XPClanSectionView.m */; };
E80487652717DDD9008595F2 /* XPRoomMenuItem.m in Sources */ = {isa = PBXBuildFile; fileRef = E80487642717DDD9008595F2 /* XPRoomMenuItem.m */; };
E80A086227F2AC190027B30C /* RoomPKDetailInfoModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E80A086127F2AC190027B30C /* RoomPKDetailInfoModel.m */; };
E80A086527F318620027B30C /* XPRoomPKPlayingView.m in Sources */ = {isa = PBXBuildFile; fileRef = E80A086427F318620027B30C /* XPRoomPKPlayingView.m */; };
E80B0712280D0A6700A79F63 /* FansInfoModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E80B0711280D0A6700A79F63 /* FansInfoModel.m */; };
E80CBDE627D0C1CF001E1EC2 /* HomeMenuSourceModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E80CBDE527D0C1CF001E1EC2 /* HomeMenuSourceModel.m */; };
E80CBDEA27D0C53F001E1EC2 /* XPWeakTimer.m in Sources */ = {isa = PBXBuildFile; fileRef = E80CBDE927D0C53F001E1EC2 /* XPWeakTimer.m */; };
E80CBDED27D0D899001E1EC2 /* XPHomeLikeEmptyTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E80CBDEC27D0D899001E1EC2 /* XPHomeLikeEmptyTableViewCell.m */; };
@@ -508,7 +511,6 @@
E896EFAC2771AEFE00AD2CC1 /* XPMineFriendTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E896EFAB2771AEFE00AD2CC1 /* XPMineFriendTableViewCell.m */; };
E896EFAF2771AF0F00AD2CC1 /* XPMineFriendEmptyTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E896EFAE2771AF0F00AD2CC1 /* XPMineFriendEmptyTableViewCell.m */; };
E896EFB22771C93B00AD2CC1 /* XPMineFriendNumberView.m in Sources */ = {isa = PBXBuildFile; fileRef = E896EFB12771C93B00AD2CC1 /* XPMineFriendNumberView.m */; };
E896EFB62771D55500AD2CC1 /* FansInfoModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E896EFB52771D55500AD2CC1 /* FansInfoModel.m */; };
E899C68927508F4E00E189E5 /* XPUserCardInfoModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E899C68827508F4E00E189E5 /* XPUserCardInfoModel.m */; };
E899C68C275093B800E189E5 /* XPUserCardMicroItemModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E899C68B275093B800E189E5 /* XPUserCardMicroItemModel.m */; };
E89BD7D4277D471100E31B19 /* XPRoomOnlineTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E89BD7D3277D471100E31B19 /* XPRoomOnlineTableViewCell.m */; };
@@ -633,6 +635,17 @@
E8CEA03D26EA3DE500644B44 /* LoginPasswordPresent.m in Sources */ = {isa = PBXBuildFile; fileRef = E8CEA03C26EA3DE500644B44 /* LoginPasswordPresent.m */; };
E8D34D41280714F3009C4835 /* GuildSearchSuperAdminModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E8D34D40280714F3009C4835 /* GuildSearchSuperAdminModel.m */; };
E8D34D4428071626009C4835 /* XPGuildSearchSuperAdminTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E8D34D4328071626009C4835 /* XPGuildSearchSuperAdminTableViewCell.m */; };
E8D34D4728080295009C4835 /* XPMineUserDataViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E8D34D4628080295009C4835 /* XPMineUserDataViewController.m */; };
E8D34D4A28080335009C4835 /* XPMineDataSkillCardTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E8D34D4928080335009C4835 /* XPMineDataSkillCardTableViewCell.m */; };
E8D34D4D28080351009C4835 /* XPMineDataClanTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E8D34D4C28080351009C4835 /* XPMineDataClanTableViewCell.m */; };
E8D34D5028080362009C4835 /* XPMineDataGiftTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E8D34D4F28080362009C4835 /* XPMineDataGiftTableViewCell.m */; };
E8D34D532808037E009C4835 /* XPMineDataSkillDataCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E8D34D522808037E009C4835 /* XPMineDataSkillDataCollectionViewCell.m */; };
E8D34D5628080393009C4835 /* XPMineDataGiftCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E8D34D5528080393009C4835 /* XPMineDataGiftCollectionViewCell.m */; };
E8D34D5A28082357009C4835 /* UserGiftWallInfoModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E8D34D5928082357009C4835 /* UserGiftWallInfoModel.m */; };
E8D34D5D280826AD009C4835 /* MineSkillCardListInfoModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E8D34D5C280826AD009C4835 /* MineSkillCardListInfoModel.m */; };
E8D34D6028082BA5009C4835 /* XPMineUserDataPresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = E8D34D5F28082BA5009C4835 /* XPMineUserDataPresenter.m */; };
E8D34D6428084E40009C4835 /* XPMineUserInfoGiftWallViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E8D34D6328084E40009C4835 /* XPMineUserInfoGiftWallViewController.m */; };
E8D34D6728084E88009C4835 /* XPMineUserInfoGiftWallCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E8D34D6628084E88009C4835 /* XPMineUserInfoGiftWallCollectionViewCell.m */; };
E8D4824A278D1F73003C1D08 /* XPAcrossRoomPKInviteView.m in Sources */ = {isa = PBXBuildFile; fileRef = E8D48249278D1F73003C1D08 /* XPAcrossRoomPKInviteView.m */; };
E8D4824D278D2CE4003C1D08 /* XPAcrossRoomPKInviteResultView.m in Sources */ = {isa = PBXBuildFile; fileRef = E8D4824C278D2CE4003C1D08 /* XPAcrossRoomPKInviteResultView.m */; };
E8D48250278D68BA003C1D08 /* XPAcrpssRoomPKPanelView.m in Sources */ = {isa = PBXBuildFile; fileRef = E8D4824F278D68BA003C1D08 /* XPAcrpssRoomPKPanelView.m */; };
@@ -1236,6 +1249,12 @@
E800808727FDA5100055A8AB /* XPClanSectionView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPClanSectionView.m; sourceTree = "<group>"; };
E80487632717DDD9008595F2 /* XPRoomMenuItem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomMenuItem.h; sourceTree = "<group>"; };
E80487642717DDD9008595F2 /* XPRoomMenuItem.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomMenuItem.m; sourceTree = "<group>"; };
E80A086027F2AC190027B30C /* RoomPKDetailInfoModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RoomPKDetailInfoModel.h; sourceTree = "<group>"; };
E80A086127F2AC190027B30C /* RoomPKDetailInfoModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RoomPKDetailInfoModel.m; sourceTree = "<group>"; };
E80A086327F318620027B30C /* XPRoomPKPlayingView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomPKPlayingView.h; sourceTree = "<group>"; };
E80A086427F318620027B30C /* XPRoomPKPlayingView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomPKPlayingView.m; sourceTree = "<group>"; };
E80B0710280D0A6700A79F63 /* FansInfoModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FansInfoModel.h; sourceTree = "<group>"; };
E80B0711280D0A6700A79F63 /* FansInfoModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FansInfoModel.m; sourceTree = "<group>"; };
E80CBDE427D0C1CF001E1EC2 /* HomeMenuSourceModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HomeMenuSourceModel.h; sourceTree = "<group>"; };
E80CBDE527D0C1CF001E1EC2 /* HomeMenuSourceModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HomeMenuSourceModel.m; sourceTree = "<group>"; };
E80CBDE827D0C53F001E1EC2 /* XPWeakTimer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPWeakTimer.h; sourceTree = "<group>"; };
@@ -1711,7 +1730,6 @@
E896EFAE2771AF0F00AD2CC1 /* XPMineFriendEmptyTableViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineFriendEmptyTableViewCell.m; sourceTree = "<group>"; };
E896EFB02771C93B00AD2CC1 /* XPMineFriendNumberView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineFriendNumberView.h; sourceTree = "<group>"; };
E896EFB12771C93B00AD2CC1 /* XPMineFriendNumberView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineFriendNumberView.m; sourceTree = "<group>"; };
E896EFB42771D55500AD2CC1 /* FansInfoModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FansInfoModel.h; sourceTree = "<group>"; };
E896EFB52771D55500AD2CC1 /* FansInfoModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FansInfoModel.m; sourceTree = "<group>"; };
E899C68727508F4E00E189E5 /* XPUserCardInfoModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPUserCardInfoModel.h; sourceTree = "<group>"; };
E899C68827508F4E00E189E5 /* XPUserCardInfoModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPUserCardInfoModel.m; sourceTree = "<group>"; };
@@ -1960,6 +1978,29 @@
E8D34D40280714F3009C4835 /* GuildSearchSuperAdminModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = GuildSearchSuperAdminModel.m; sourceTree = "<group>"; };
E8D34D4228071626009C4835 /* XPGuildSearchSuperAdminTableViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPGuildSearchSuperAdminTableViewCell.h; sourceTree = "<group>"; };
E8D34D4328071626009C4835 /* XPGuildSearchSuperAdminTableViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPGuildSearchSuperAdminTableViewCell.m; sourceTree = "<group>"; };
E8D34D4528080295009C4835 /* XPMineUserDataViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineUserDataViewController.h; sourceTree = "<group>"; };
E8D34D4628080295009C4835 /* XPMineUserDataViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineUserDataViewController.m; sourceTree = "<group>"; };
E8D34D4828080335009C4835 /* XPMineDataSkillCardTableViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineDataSkillCardTableViewCell.h; sourceTree = "<group>"; };
E8D34D4928080335009C4835 /* XPMineDataSkillCardTableViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineDataSkillCardTableViewCell.m; sourceTree = "<group>"; };
E8D34D4B28080351009C4835 /* XPMineDataClanTableViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineDataClanTableViewCell.h; sourceTree = "<group>"; };
E8D34D4C28080351009C4835 /* XPMineDataClanTableViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineDataClanTableViewCell.m; sourceTree = "<group>"; };
E8D34D4E28080362009C4835 /* XPMineDataGiftTableViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineDataGiftTableViewCell.h; sourceTree = "<group>"; };
E8D34D4F28080362009C4835 /* XPMineDataGiftTableViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineDataGiftTableViewCell.m; sourceTree = "<group>"; };
E8D34D512808037E009C4835 /* XPMineDataSkillDataCollectionViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineDataSkillDataCollectionViewCell.h; sourceTree = "<group>"; };
E8D34D522808037E009C4835 /* XPMineDataSkillDataCollectionViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineDataSkillDataCollectionViewCell.m; sourceTree = "<group>"; };
E8D34D5428080393009C4835 /* XPMineDataGiftCollectionViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineDataGiftCollectionViewCell.h; sourceTree = "<group>"; };
E8D34D5528080393009C4835 /* XPMineDataGiftCollectionViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineDataGiftCollectionViewCell.m; sourceTree = "<group>"; };
E8D34D5828082357009C4835 /* UserGiftWallInfoModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UserGiftWallInfoModel.h; sourceTree = "<group>"; };
E8D34D5928082357009C4835 /* UserGiftWallInfoModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = UserGiftWallInfoModel.m; sourceTree = "<group>"; };
E8D34D5B280826AD009C4835 /* MineSkillCardListInfoModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MineSkillCardListInfoModel.h; sourceTree = "<group>"; };
E8D34D5C280826AD009C4835 /* MineSkillCardListInfoModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MineSkillCardListInfoModel.m; sourceTree = "<group>"; };
E8D34D5E28082BA5009C4835 /* XPMineUserDataPresenter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineUserDataPresenter.h; sourceTree = "<group>"; };
E8D34D5F28082BA5009C4835 /* XPMineUserDataPresenter.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineUserDataPresenter.m; sourceTree = "<group>"; };
E8D34D6128082BD4009C4835 /* XPMineUserDataProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineUserDataProtocol.h; sourceTree = "<group>"; };
E8D34D6228084E40009C4835 /* XPMineUserInfoGiftWallViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineUserInfoGiftWallViewController.h; sourceTree = "<group>"; };
E8D34D6328084E40009C4835 /* XPMineUserInfoGiftWallViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineUserInfoGiftWallViewController.m; sourceTree = "<group>"; };
E8D34D6528084E88009C4835 /* XPMineUserInfoGiftWallCollectionViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineUserInfoGiftWallCollectionViewCell.h; sourceTree = "<group>"; };
E8D34D6628084E88009C4835 /* XPMineUserInfoGiftWallCollectionViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineUserInfoGiftWallCollectionViewCell.m; sourceTree = "<group>"; };
E8D48248278D1F72003C1D08 /* XPAcrossRoomPKInviteView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPAcrossRoomPKInviteView.h; sourceTree = "<group>"; };
E8D48249278D1F73003C1D08 /* XPAcrossRoomPKInviteView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPAcrossRoomPKInviteView.m; sourceTree = "<group>"; };
E8D4824B278D2CE4003C1D08 /* XPAcrossRoomPKInviteResultView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPAcrossRoomPKInviteResultView.h; sourceTree = "<group>"; };
@@ -3070,6 +3111,8 @@
9B9EEF4D27C8755C006B0EB3 /* XPSkillCardResourcePropModel.m */,
9B9EEF5227C8AFEA006B0EB3 /* XPSkillCardRecordPropModel.h */,
9B9EEF5327C8AFEA006B0EB3 /* XPSkillCardRecordPropModel.m */,
E8D34D5B280826AD009C4835 /* MineSkillCardListInfoModel.h */,
E8D34D5C280826AD009C4835 /* MineSkillCardListInfoModel.m */,
);
path = Model;
sourceTree = "<group>";
@@ -3188,6 +3231,7 @@
children = (
9BA8A47627C60DF7000365A3 /* AVFoundation.framework */,
9BA8A47427C60D9F000365A3 /* AudioToolbox.framework */,
E896EFB52771D55500AD2CC1 /* FansInfoModel.m */,
);
name = "Recovered References";
sourceTree = "<group>";
@@ -3649,6 +3693,15 @@
path = Protocol;
sourceTree = "<group>";
};
E80B070F280D0A6700A79F63 /* Friend */ = {
isa = PBXGroup;
children = (
E80B0710280D0A6700A79F63 /* FansInfoModel.h */,
E80B0711280D0A6700A79F63 /* FansInfoModel.m */,
);
path = Friend;
sourceTree = "<group>";
};
E80CBDE727D0C528001E1EC2 /* Timer */ = {
isa = PBXGroup;
children = (
@@ -4596,6 +4649,8 @@
children = (
E88B5CBF26FB407B00DA9178 /* XPMineUserInfoViewController.h */,
E88B5CC026FB407B00DA9178 /* XPMineUserInfoViewController.m */,
E8D34D4528080295009C4835 /* XPMineUserDataViewController.h */,
E8D34D4628080295009C4835 /* XPMineUserDataViewController.m */,
E8EEB90426FC5772007C6EBA /* XPMineUserInfoEditViewController.h */,
E8EEB90526FC5772007C6EBA /* XPMineUserInfoEditViewController.m */,
E8EEB91226FC7786007C6EBA /* XPMineUserInfoNickViewController.h */,
@@ -4604,6 +4659,8 @@
E8EEB91626FC7B35007C6EBA /* XPMineUserInfoDesViewController.m */,
E8B846BD26FD827900A777FE /* XPMineUserInfoAlbumViewController.h */,
E8B846BE26FD827900A777FE /* XPMineUserInfoAlbumViewController.m */,
E8D34D6228084E40009C4835 /* XPMineUserInfoGiftWallViewController.h */,
E8D34D6328084E40009C4835 /* XPMineUserInfoGiftWallViewController.m */,
);
path = MineInfo;
sourceTree = "<group>";
@@ -4663,15 +4720,6 @@
path = Friend;
sourceTree = "<group>";
};
E896EFB32771D53500AD2CC1 /* Friend */ = {
isa = PBXGroup;
children = (
E896EFB42771D55500AD2CC1 /* FansInfoModel.h */,
E896EFB52771D55500AD2CC1 /* FansInfoModel.m */,
);
path = Friend;
sourceTree = "<group>";
};
E899C68D2750DA3C00E189E5 /* CustomMessage */ = {
isa = PBXGroup;
children = (
@@ -5444,6 +5492,15 @@
path = SubViews;
sourceTree = "<group>";
};
E8D34D57280821F3009C4835 /* UserInfo */ = {
isa = PBXGroup;
children = (
E8D34D5828082357009C4835 /* UserGiftWallInfoModel.h */,
E8D34D5928082357009C4835 /* UserGiftWallInfoModel.m */,
);
path = UserInfo;
sourceTree = "<group>";
};
E8DBB6FA27B63CC300AA285D /* LittleGame */ = {
isa = PBXGroup;
children = (
@@ -5563,8 +5620,9 @@
E8E70D7026F2EB3800F03460 /* Model */ = {
isa = PBXGroup;
children = (
E80B070F280D0A6700A79F63 /* Friend */,
9B1B729A28002249003FACE9 /* AnchorFansTeam */,
E896EFB32771D53500AD2CC1 /* Friend */,
E8D34D57280821F3009C4835 /* UserInfo */,
9BD9A18127A0F110004186FE /* Visitor */,
E8B846D926FDE21900A777FE /* Recharge */,
E8E70D9026F2F60C00F03460 /* XPMineItemModel.h */,
@@ -5650,6 +5708,8 @@
E88B5CB726FB325200DA9178 /* XPMineTeenagerPwdPresenter.m */,
E8EEB8FF26FC31B6007C6EBA /* XPMineUserInfoPresenter.h */,
E8EEB90026FC31B6007C6EBA /* XPMineUserInfoPresenter.m */,
E8D34D5E28082BA5009C4835 /* XPMineUserDataPresenter.h */,
E8D34D5F28082BA5009C4835 /* XPMineUserDataPresenter.m */,
E8EEB90D26FC6AB8007C6EBA /* XPMineUserInfoEditPresenter.h */,
E8EEB90E26FC6AB8007C6EBA /* XPMineUserInfoEditPresenter.m */,
E8B846C326FDB41A00A777FE /* XPMineUserInfolbumPresenter.h */,
@@ -5682,6 +5742,7 @@
E88B5CB126FB1CC100DA9178 /* XPMineTeenagerProtocol.h */,
E88B5CB926FB327500DA9178 /* XPMineTeenagerPwdProtocol.h */,
E8EEB90226FC31CE007C6EBA /* XPMineUserInfoProtocol.h */,
E8D34D6128082BD4009C4835 /* XPMineUserDataProtocol.h */,
E8EEB91026FC6AD3007C6EBA /* XPMineUserInfoEditProtocol.h */,
E8B846C626FDB44100A777FE /* XPMineUserInfoAlbumProtocol.h */,
E8B846D726FDE16300A777FE /* XPMineRechargeProtocol.h */,
@@ -5770,6 +5831,18 @@
E8EEB90826FC579A007C6EBA /* XPMineUserInfoEditTableViewCell.m */,
E8B846C026FD82DC00A777FE /* XPMineUserInfoAlbumCollectionViewCell.h */,
E8B846C126FD82DC00A777FE /* XPMineUserInfoAlbumCollectionViewCell.m */,
E8D34D4828080335009C4835 /* XPMineDataSkillCardTableViewCell.h */,
E8D34D4928080335009C4835 /* XPMineDataSkillCardTableViewCell.m */,
E8D34D512808037E009C4835 /* XPMineDataSkillDataCollectionViewCell.h */,
E8D34D522808037E009C4835 /* XPMineDataSkillDataCollectionViewCell.m */,
E8D34D4B28080351009C4835 /* XPMineDataClanTableViewCell.h */,
E8D34D4C28080351009C4835 /* XPMineDataClanTableViewCell.m */,
E8D34D4E28080362009C4835 /* XPMineDataGiftTableViewCell.h */,
E8D34D4F28080362009C4835 /* XPMineDataGiftTableViewCell.m */,
E8D34D5428080393009C4835 /* XPMineDataGiftCollectionViewCell.h */,
E8D34D5528080393009C4835 /* XPMineDataGiftCollectionViewCell.m */,
E8D34D6528084E88009C4835 /* XPMineUserInfoGiftWallCollectionViewCell.h */,
E8D34D6628084E88009C4835 /* XPMineUserInfoGiftWallCollectionViewCell.m */,
);
path = MineInfo;
sourceTree = "<group>";
@@ -5950,9 +6023,11 @@
E8EEB90326FC31DC007C6EBA /* XPMineUserInfoProtocol.h in Sources */,
E8232603274E4AA0003A3332 /* ThemeColor+UserCard.m in Sources */,
E87A24F1272935920086A794 /* XPMessageRemoteExtModel.m in Sources */,
E8D34D5028080362009C4835 /* XPMineDataGiftTableViewCell.m in Sources */,
9B2A12E427846D7100CED41B /* NobleRechargeModel.m in Sources */,
E88B5CBA26FB329C00DA9178 /* XPMineTeenagerPwdProtocol.h in Sources */,
E83953222769F33B00CF2F24 /* XPRoomFunctionContainerView.m in Sources */,
E8D34D4A28080335009C4835 /* XPMineDataSkillCardTableViewCell.m in Sources */,
E87C0AA027D9DE6400CB2241 /* RoomFaceSendInfoModel.m in Sources */,
E88B5CB226FB1CFF00DA9178 /* XPMineTeenagerProtocol.h in Sources */,
9BD9A18027A0EFC7004186FE /* XPMineVisitorTableViewCell.m in Sources */,
@@ -6029,6 +6104,7 @@
9BEE3D0E27853BD000C83219 /* ThemeColor+NobleCenter.m in Sources */,
18E7B22626E8CDCF0064BC9B /* XplanFlutterBoostDelegate.m in Sources */,
9BD9A18427A0F128004186FE /* XPMineVisitorItemModel.m in Sources */,
E80B0712280D0A6700A79F63 /* FansInfoModel.m in Sources */,
E8EEB8F326FC2050007C6EBA /* SDWaitingView.m in Sources */,
E8F9168B27EC940E00F10D8F /* XPHomeLittleGameTableViewCell.m in Sources */,
E8DEC9A12764A5D20078CB70 /* XPRoomMoreItemModel.m in Sources */,
@@ -6104,6 +6180,7 @@
E8C1CD6627D88EF800376F83 /* XPRoomFaceViewController.m in Sources */,
E80DE4102775C34E00BE5BCB /* XPFirstRechargeSuccessView.m in Sources */,
E8412FB32779E285006E1101 /* Api+RoomSetting.m in Sources */,
E8D34D6028082BA5009C4835 /* XPMineUserDataPresenter.m in Sources */,
9B16A34B27E1915A00E13A98 /* XPTrumpetPresenter.m in Sources */,
E8A6C29827CF448700AC7442 /* XPHomeCollectRoomTableViewCell.m in Sources */,
E8C1672D2806BD8B00ECB15C /* XPGuildSuperAdminRoomCollectionViewCell.m in Sources */,
@@ -6157,6 +6234,7 @@
18A61BD7274F7F6900A09A54 /* NetImageConfig.m in Sources */,
E800806E27FD6BF40055A8AB /* XPGuildPresenter.m in Sources */,
E8C21501274B76F60079E6BF /* XPRoomAnimationHitView.m in Sources */,
E8D34D4D28080351009C4835 /* XPMineDataClanTableViewCell.m in Sources */,
E8AC722426F47E5E007D6E91 /* XPMineFeedbackViewController.m in Sources */,
E87E914E2796678D00A7B3F2 /* XPMineDressEmptyTableViewCell.m in Sources */,
9B7D804D27537950003DAC0C /* MessageCell.m in Sources */,
@@ -6233,6 +6311,7 @@
9B9EEF4E27C8755C006B0EB3 /* XPSkillCardResourcePropModel.m in Sources */,
E88B5CB026FB1C6500DA9178 /* XPMineTeenagerPresenter.m in Sources */,
E800163B28041F7B00D6D17A /* XPGuildSingleRoomIncomeTableViewCell.m in Sources */,
E8D34D6428084E40009C4835 /* XPMineUserInfoGiftWallViewController.m in Sources */,
E899C68927508F4E00E189E5 /* XPUserCardInfoModel.m in Sources */,
9B6B3AAB278C2EA7005551EC /* XPRoomNobleLevelUpView.m in Sources */,
E8834E3828000CB50029CCC1 /* GuildSearchUserInfoModel.m in Sources */,
@@ -6320,6 +6399,7 @@
9BCF585C279909D7008401A4 /* XPSkillCardEditPropCell.m in Sources */,
E88863C6278EAFC3004BCFAB /* XPAcrossRoomPKResultView.m in Sources */,
E8AC722C26F49580007D6E91 /* XPMineNotificaViewController.m in Sources */,
E8D34D5A28082357009C4835 /* UserGiftWallInfoModel.m in Sources */,
189DD52E26DE255300AB55B1 /* AppDelegate.m in Sources */,
E83DB4842746661800D8CBD1 /* XPRoomGiftBroadcastView.m in Sources */,
E84150C527747E0900A7F548 /* FirstRechargeRewardModel.m in Sources */,
@@ -6367,6 +6447,8 @@
E824545126F5CE6E00BE8163 /* XPMineModifPayPwdPresenter.m in Sources */,
E8A86DF727BA2F1C001C21F9 /* XPRoomLittleGameContainerView.m in Sources */,
E880B3AF278BE1D800A83B0D /* Api+AcrossRoomPK.m in Sources */,
E8D34D4728080295009C4835 /* XPMineUserDataViewController.m in Sources */,
E801275127E3281100BAC3F2 /* XPRoomPKTimeTableViewCell.m in Sources */,
E8EEB90F26FC6AB8007C6EBA /* XPMineUserInfoEditPresenter.m in Sources */,
E8AC723A26F49AAE007D6E91 /* XPMineNotifyStatus.m in Sources */,
18E7B33226F317A20064BC9B /* XPWebViewController.m in Sources */,
@@ -6394,6 +6476,7 @@
E800806827FD3B520055A8AB /* XPClanMenuView.m in Sources */,
E896EFAF2771AF0F00AD2CC1 /* XPMineFriendEmptyTableViewCell.m in Sources */,
18486213271EA9DA005FC5DC /* RtcManager.m in Sources */,
E8D34D5628080393009C4835 /* XPMineDataGiftCollectionViewCell.m in Sources */,
186A536926FC6F2E00D67B2C /* XPShareView.m in Sources */,
9BC5C91C277C8A7B007C8719 /* XPReleaseRadioViewController.m in Sources */,
186A534C26FC6ED900D67B2C /* TTAlertView.m in Sources */,
@@ -6413,6 +6496,7 @@
9BB5495C2782E79E0090CD26 /* NobleCenterModel.m in Sources */,
186A536B26FC6F2E00D67B2C /* XPShareItemCell.m in Sources */,
E8B846C526FDB41A00A777FE /* XPMineUserInfolbumPresenter.m in Sources */,
E8D34D532808037E009C4835 /* XPMineDataSkillDataCollectionViewCell.m in Sources */,
E83DB47D2746372300D8CBD1 /* XPRoomGiftBannerView.m in Sources */,
9BAA5FED277A1BBE007453F3 /* XPPrivacyViewController.m in Sources */,
E872309326E8D31500B90D4F /* LoginVerifCodeView.m in Sources */,
@@ -6421,7 +6505,6 @@
186A534626FC6ED900D67B2C /* TTPopup.m in Sources */,
E81EF6E0279AB7D900FF3EDE /* XPCreateLittleGameCollectionViewCell.m in Sources */,
E8C167302806C01500ECB15C /* GuildSuperAdminInfoModel.m in Sources */,
E896EFB62771D55500AD2CC1 /* FansInfoModel.m in Sources */,
E81C278C26EAFAF60031E639 /* Base64.m in Sources */,
E8C1CD7027D894B800376F83 /* RoomFaceTitleItemModel.m in Sources */,
189DD73D26E21C3F00AB55B1 /* YYUtility+Device.m in Sources */,
@@ -6521,6 +6604,7 @@
E833ED0D274FAD1C00A2463B /* XPKickUserModel.m in Sources */,
E8788934273A53D700BF1D57 /* XPSendGiftView.m in Sources */,
E896EF9C2771AE6B00AD2CC1 /* XPMineFansViewController.m in Sources */,
E8D34D5D280826AD009C4835 /* MineSkillCardListInfoModel.m in Sources */,
E88B5CB826FB325200DA9178 /* XPMineTeenagerPwdPresenter.m in Sources */,
9B92A3472797EECD00AD168F /* XPMatchManageViewController.m in Sources */,
E84B0E462727EF9D008818C6 /* XPRoomMessageParser.m in Sources */,
@@ -6536,6 +6620,7 @@
E836DBD0279BF5150056F7DD /* XPLittleGameTableViewCell.m in Sources */,
E89DA66727006443008483C1 /* RechargeStorage.m in Sources */,
189DD53F26DE255600AB55B1 /* main.m in Sources */,
E8D34D6728084E88009C4835 /* XPMineUserInfoGiftWallCollectionViewCell.m in Sources */,
E8A03DF927634A590098D9EA /* CandyTreeResultModel.m in Sources */,
E872308D26E89DAA00B90D4F /* LoginInputView.m in Sources */,
E851E46827FF2141002F3ACB /* XPGuildSetNamePresenter.m in Sources */,

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 950 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -11,6 +11,7 @@
#import "UserInfoSkillVo.h"
#import "UserVipInfoVo.h"
#import "UserPhoto.h"
#import "UserGiftWallInfoModel.h"
#import "XPEnum.h"
NS_ASSUME_NONNULL_BEGIN
@@ -109,6 +110,10 @@ NS_ASSUME_NONNULL_BEGIN
#pragma mark - 小游戏
/// 小游戏状态 0 未加入游戏1 加入游戏未准备2 加入游戏已准备 3 游戏中
@property (nonatomic, assign) LittleGamePlayStatus gameStatus;
///用户的参加PK的类型
@property (nonatomic, assign) GroupType groupType;
///
@property (nonatomic,strong) NSArray<UserGiftWallInfoModel *> *userGiftWall;
@end
NS_ASSUME_NONNULL_END

View File

@@ -11,7 +11,8 @@
+ (NSDictionary *)objectClassInArray {
return @{
@"privatePhoto":UserPhoto.class
@"privatePhoto":UserPhoto.class,
@"userGiftWall":UserGiftWallInfoModel.class
};
}

View File

@@ -19,7 +19,7 @@ NSString * const kImageTypeUserIcon = @"imageMogr2/auto-orient/thumbnail/150x150
NSString * const kImageTypeUserLibaryDetail = @"imageMogr2/auto-orient/thumbnail/300x300";
NSString * const kImageTypeCornerAvatar = @"imageMogr2/auto-orient/thumbnail/300x300/format/png";
///
NSString * const kImageTypeUserInfoAlbum = @"imageMogr2/auto-orient/blur/10x20";
NSString * const kImageTypeUserInfoAlbum = @"imageMogr2/auto-orient/blur/375x375";
///
NSString * const kImageTypeUserCardLevel = @"imageMogr2/thumbnail/x40";

View File

@@ -194,6 +194,11 @@ NS_ASSUME_NONNULL_BEGIN
/// @param pageSize 一页多少个
+ (void)getAnchorFansTeamListCompletion:(HttpRequestHelperCompletion)completion pageNum:(NSString *)pageNum pageSize:(NSString *)pageSize;
/// 获取用户的礼物墙
/// @param comletion 完成
/// @param uid 用户的uid
/// @param orderType 类型2
+ (void)getUserGiftWall:(HttpRequestHelperCompletion)comletion uid:(NSString *)uid orderType:(NSString *)orderType;
@end
NS_ASSUME_NONNULL_END

View File

@@ -206,4 +206,12 @@
[self makeRequest:@"anchorFansTeam/getJoinFansTeamList" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, pageNum, pageSize, nil];
}
///
/// @param comletion
/// @param uid uid
/// @param orderType 2
+ (void)getUserGiftWall:(HttpRequestHelperCompletion)comletion uid:(NSString *)uid orderType:(NSString *)orderType {
[self makeRequest:@"giftwall/get" method:HttpRequestHelperMethodGET completion:comletion, __FUNCTION__, uid, orderType, nil];
}
@end

View File

@@ -0,0 +1,27 @@
//
// UserGiftWallInfoModel.h
// xplan-ios
//
// Created by 冯硕 on 2022/4/14.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface UserGiftWallInfoModel : NSObject
///目标用户的uid
@property (nonatomic,copy) NSString *uid;
///价格
@property (nonatomic,assign) NSInteger giftPrice;
///id
@property (nonatomic,assign) NSInteger giftId;
///名称
@property (nonatomic,copy) NSString *giftName;
///礼物
@property (nonatomic,copy) NSString *picUrl;
///个数
@property (nonatomic,assign) NSInteger reciveCount;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,12 @@
//
// UserGiftWallInfoModel.m
// xplan-ios
//
// Created by on 2022/4/14.
//
#import "UserGiftWallInfoModel.h"
@implementation UserGiftWallInfoModel
@end

View File

@@ -0,0 +1,21 @@
//
// XPMineUserDataPresenter.h
// xplan-ios
//
// Created by 冯硕 on 2022/4/14.
//
#import "BaseMvpPresenter.h"
NS_ASSUME_NONNULL_BEGIN
@interface XPMineUserDataPresenter : BaseMvpPresenter
/// 获取用户的技能卡列表
- (void)getUserSkillCardList:(NSString *)uid;
/// 获取家族相亲的信息
/// @param uid 用户的uid
- (void)getClanDetailInfo:(NSString *)uid;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,33 @@
//
// XPMineUserDataPresenter.m
// xplan-ios
//
// Created by on 2022/4/14.
//
#import "XPMineUserDataPresenter.h"
#import "Api+SkillCard.h"
#import "Api+Guild.h"
#import "ClanDetailInfoModel.h"
#import "MineSkillCardListInfoModel.h"
#import "XPMineUserDataProtocol.h"
@implementation XPMineUserDataPresenter
///
- (void)getUserSkillCardList:(NSString *)uid {
[Api getUserSkillCardLsit:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
NSArray * array = [MineSkillCardListInfoModel modelsWithArray:data.data];
[[self getView] getUserSkillCardListSuccess:array];
}] uid:uid];
}
///
/// @param uid uid
- (void)getClanDetailInfo:(NSString *)uid {
[Api getClanDetailInfo:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
ClanDetailInfoModel * clanDetailInfo = [ClanDetailInfoModel modelWithDictionary:data.data];
[[self getView] getClanDetailInfoSuccess:clanDetailInfo];
}] uid:uid];
}
@end

View File

@@ -27,6 +27,7 @@ NS_ASSUME_NONNULL_BEGIN
///@param targetUid 被访问用户的uid
- (void)visitUser:(NSString *)targetUid;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,19 @@
//
// XPMineUserDataProtolcol.h
// xplan-ios
//
// Created by 冯硕 on 2022/4/14.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@class ClanDetailInfoModel;
@protocol XPMineUserDataProtocol <NSObject>
///获取用户的技能卡成功
- (void)getUserSkillCardListSuccess:(NSArray *)list;
///获取家族信息成功
- (void)getClanDetailInfoSuccess:(ClanDetailInfoModel *)clanInfo;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,24 @@
//
// XPMineDataClanTableViewCell.h
// xplan-ios
//
// Created by 冯硕 on 2022/4/14.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@class ClanDetailInfoModel, XPMineDataClanTableViewCell;
@protocol XPMineDataClanTableViewCellDelegate <NSObject>
///点击了收起
- (void)xPMineDataClanTableViewCell:(XPMineDataClanTableViewCell *)view didClickFold:(UIButton *)sender;
///点击了加入公会
- (void)xPMineDataClanTableViewCell:(XPMineDataClanTableViewCell *)view didClickEnter:(ClanDetailInfoModel *)clanInfo;
@end
@interface XPMineDataClanTableViewCell : UITableViewCell
@property (nonatomic,strong) ClanDetailInfoModel *clanInfo;
///代理
@property (nonatomic,weak) id<XPMineDataClanTableViewCellDelegate> delegate;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,321 @@
//
// XPMineDataClanTableViewCell.m
// xplan-ios
//
// Created by on 2022/4/14.
//
#import "XPMineDataClanTableViewCell.h"
///Third
#import <Masonry/Masonry.h>
///Tool
#import "ThemeColor.h"
#import "NetImageView.h"
///Model
#import "ClanDetailInfoModel.h"
@interface XPMineDataClanTableViewCell ()
///
@property (nonatomic,strong) UIImageView *backImageView;
///
@property (nonatomic,strong) UILabel *titleLabel;
///
@property (nonatomic,strong) UIStackView *stackView;
///
@property (nonatomic,strong) UIView * clanView;
///
@property (nonatomic,strong) NetImageView *clanImageView;
///
@property (nonatomic,strong) UILabel *clanNickLabel;
///id
@property (nonatomic,strong) UILabel *clanIdLabel;
///
@property (nonatomic,strong) UIButton *foldButton;
///线
@property (nonatomic,strong) UIView * lineView;
///
@property (nonatomic,strong) UIView * hallView;
///
@property (nonatomic,strong) NetImageView *hallImageView;
///
@property (nonatomic,strong) UILabel *hallNickLabel;
///
@property (nonatomic,strong) UIButton *enterButton;
///
@property (nonatomic,assign) BOOL isfold;
@end
@implementation XPMineDataClanTableViewCell
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
[self initSubViews];
[self initSubViewConstraints];
}
return self;
}
#pragma mark - Private Method
- (void)initSubViews {
self.isfold = YES;
self.backgroundColor = [UIColor clearColor];
self.selectionStyle = UITableViewCellSelectionStyleNone;
[self.contentView addSubview:self.backImageView];
[self.backImageView addSubview:self.titleLabel];
[self.backImageView addSubview:self.stackView];
[self.stackView addArrangedSubview:self.clanView];
[self.stackView addArrangedSubview:self.hallView];
[self.clanView addSubview:self.clanImageView];
[self.clanView addSubview:self.clanNickLabel];
[self.clanView addSubview:self.clanIdLabel];
[self.clanView addSubview:self.foldButton];
[self.clanView addSubview:self.lineView];
[self.hallView addSubview:self.hallImageView];
[self.hallView addSubview:self.hallNickLabel];
[self.hallView addSubview:self.enterButton];
}
- (void)initSubViewConstraints {
[self.backImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.mas_equalTo(self.contentView).inset(15);
make.top.mas_equalTo(self.contentView);
make.bottom.mas_equalTo(self.contentView).offset(-15);
}];
[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.backImageView).offset(12);
make.top.mas_equalTo(self.backImageView).offset(10);
}];
[self.stackView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.backImageView).offset(10);
make.top.mas_equalTo(self.titleLabel.mas_bottom).offset(5);
make.right.mas_equalTo(self.backImageView).offset(-10);
}];
[self.clanView mas_makeConstraints:^(MASConstraintMaker *make) {
make.height.mas_equalTo(68);
}];
[self.clanImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(48, 48));
make.left.centerY.mas_equalTo(self.clanView);
}];
[self.clanNickLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.clanImageView.mas_right).offset(10);
make.bottom.mas_equalTo(self.clanImageView.mas_centerY).offset(-2);
}];
[self.clanIdLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.clanNickLabel);
make.top.mas_equalTo(self.clanImageView.mas_centerY).offset(2);
}];
[self.foldButton mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(16, 8));
make.right.mas_equalTo(self.clanView);
make.centerY.mas_equalTo(self.clanView);
}];
[self.lineView mas_makeConstraints:^(MASConstraintMaker *make) {
make.bottom.left.right.mas_equalTo(self.clanView);
make.height.mas_equalTo(1);
}];
[self.hallView mas_makeConstraints:^(MASConstraintMaker *make) {
make.height.mas_equalTo(60);
}];
[self.hallImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(40, 40));
make.centerY.mas_equalTo(self.hallView);
make.left.mas_equalTo(self.hallView);
}];
[self.hallNickLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerY.mas_equalTo(self.hallView);
make.left.mas_equalTo(self.hallImageView.mas_right).offset(10);
make.right.mas_lessThanOrEqualTo(self.enterButton.mas_left).offset(-5);
}];
[self.enterButton mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(56, 20));
make.centerY.mas_equalTo(self.hallView);
make.right.mas_equalTo(self.hallView);
}];
}
#pragma mark - Event Response
- (void)enterButtonAction:(UIButton *)sender {
if (self.delegate && [self.delegate respondsToSelector:@selector(xPMineDataClanTableViewCell:didClickEnter:)]) {
[self.delegate xPMineDataClanTableViewCell:self didClickEnter:self.clanInfo];
}
}
- (void)foldButtonAction:(UIButton *)sender{
self.hallView.hidden = !self.hallView.hidden;
if (self.delegate && [self.delegate respondsToSelector:@selector(xPMineDataClanTableViewCell:didClickFold:)]) {
[self.delegate xPMineDataClanTableViewCell:self didClickFold:sender];
}
}
#pragma mark - Getters And Setters
- (void)setClanInfo:(ClanDetailInfoModel *)clanInfo {
_clanInfo = clanInfo;
if (_clanInfo) {
self.clanView.hidden = _clanInfo.clan.elderUid.length <= 0;
if (self.isfold) {
self.hallView.hidden = YES;
} else {
self.hallView.hidden = _clanInfo.hall.ownerUid.length <= 0;
}
self.clanImageView.imageUrl = _clanInfo.clan.avatar;
self.clanNickLabel.text = _clanInfo.clan.name;
self.clanIdLabel.text = [NSString stringWithFormat:@"家族ID:%@", _clanInfo.clan.cid];
self.hallImageView.imageUrl = _clanInfo.hall.ownerAvatar;
self.hallNickLabel.text = _clanInfo.hall.hallName;
}
}
- (UIImageView *)backImageView {
if (!_backImageView) {
_backImageView = [[UIImageView alloc] init];
_backImageView.userInteractionEnabled = YES;
_backImageView.layer.cornerRadius = 10;
_backImageView.backgroundColor =[ThemeColor appCellBackgroundColor];
_backImageView.layer.shadowColor = UIColorFromRGB(0xE4E4E4).CGColor;
_backImageView.layer.shadowOffset = CGSizeMake(0, 2);
_backImageView.layer.shadowRadius = 8;
}
return _backImageView;
}
- (UILabel *)titleLabel {
if (!_titleLabel) {
_titleLabel = [[UILabel alloc] init];
_titleLabel.text = @"家族·公会";
_titleLabel.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium];
_titleLabel.textColor = [ThemeColor mainTextColor];
}
return _titleLabel;
}
- (UIStackView *)stackView {
if (!_stackView) {
_stackView = [[UIStackView alloc] init];
_stackView.axis = UILayoutConstraintAxisVertical;
_stackView.distribution = UIStackViewDistributionFill;
_stackView.alignment = UIStackViewAlignmentFill;
_stackView.spacing = 0;
}
return _stackView;
}
- (UIView *)clanView {
if (!_clanView) {
_clanView = [[UIView alloc] init];
_clanView.backgroundColor = [UIColor clearColor];
}
return _clanView;
}
- (NetImageView *)clanImageView {
if (!_clanImageView) {
NetImageConfig * config = [[NetImageConfig alloc]init];
config.imageType = ImageTypeUserIcon;
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_clanImageView = [[NetImageView alloc] initWithConfig:config];
_clanImageView.layer.masksToBounds = YES;
_clanImageView.layer.cornerRadius = 8;
}
return _clanImageView;
}
- (UILabel *)clanNickLabel {
if (!_clanNickLabel) {
_clanNickLabel = [[UILabel alloc] init];
_clanNickLabel.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium];
_clanNickLabel.textColor = [ThemeColor mainTextColor];
}
return _clanNickLabel;
}
- (UILabel *)clanIdLabel {
if (!_clanIdLabel) {
_clanIdLabel = [[UILabel alloc] init];
_clanIdLabel.font = [UIFont systemFontOfSize:10];
_clanIdLabel.textColor = [ThemeColor textThirdColor];
}
return _clanIdLabel;
}
- (UIButton *)foldButton {
if (!_foldButton) {
_foldButton = [UIButton buttonWithType:UIButtonTypeCustom];
[_foldButton setImage:[UIImage imageNamed:@"icon_unattention"] forState:UIControlStateNormal];
[_foldButton setImage:[UIImage imageNamed:@"icon_small_attention"] forState:UIControlStateSelected];
[_foldButton addTarget:self action:@selector(foldButtonAction:) forControlEvents:UIControlEventTouchUpInside];
}
return _foldButton;
}
- (UIView *)lineView {
if (!_lineView) {
_lineView = [[UIView alloc] init];
_lineView.backgroundColor = [UIColor clearColor];
}
return _lineView;
}
- (UIView *)hallView {
if (!_hallView) {
_hallView = [[UIView alloc] init];
_hallView.backgroundColor = [UIColor clearColor];
_hallView.hidden = YES;
}
return _hallView;
}
- (NetImageView *)hallImageView {
if (!_hallImageView) {
NetImageConfig * config = [[NetImageConfig alloc]init];
config.imageType = ImageTypeUserIcon;
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_hallImageView = [[NetImageView alloc] initWithConfig:config];
_hallImageView.layer.masksToBounds = YES;
_hallImageView.layer.cornerRadius = 8;
}
return _hallImageView;
}
- (UILabel *)hallNickLabel {
if (!_hallNickLabel) {
_hallNickLabel = [[UILabel alloc] init];
_hallNickLabel.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium];
_hallNickLabel.textColor = [ThemeColor mainTextColor];
}
return _hallNickLabel;
}
- (UIButton *)enterButton {
if (!_enterButton) {
_enterButton = [UIButton buttonWithType:UIButtonTypeCustom];
[_enterButton setTitle:@"申请加入" forState:UIControlStateNormal];
[_enterButton setTitleColor:UIColorFromRGB(0xFFC000) forState:UIControlStateNormal];
_enterButton.titleLabel.font = [UIFont systemFontOfSize:10];
_enterButton.backgroundColor = UIColorRGBAlpha(0xFFC000, 0.2);
_enterButton.layer.masksToBounds = YES;
_enterButton.layer.cornerRadius = 10;
[_enterButton addTarget:self action:@selector(enterButtonAction:) forControlEvents:UIControlEventTouchUpInside];
}
return _enterButton;
}
@end

View File

@@ -0,0 +1,16 @@
//
// XPMineDataGiftCollectionViewCell.h
// xplan-ios
//
// Created by 冯硕 on 2022/4/14.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@class UserGiftWallInfoModel;
@interface XPMineDataGiftCollectionViewCell : UICollectionViewCell
@property (nonatomic,strong) UserGiftWallInfoModel *giftInfo;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,104 @@
//
// XPMineDataGiftCollectionViewCell.m
// xplan-ios
//
// Created by on 2022/4/14.
//
#import "XPMineDataGiftCollectionViewCell.h"
///Third
#import <Masonry/Masonry.h>
///Tool
#import "ThemeColor.h"
#import "NetImageView.h"
///Model
#import "UserGiftWallInfoModel.h"
@interface XPMineDataGiftCollectionViewCell ()
///
@property (nonatomic,strong) NetImageView *giftImageView;
///
@property (nonatomic,strong) UILabel *giftNumberLabel;
///
@property (nonatomic,strong) UIView * giftBackView;
@end
@implementation XPMineDataGiftCollectionViewCell
- (instancetype)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
[self initSubViews];
[self initSubViewConstraints];
}
return self;
}
#pragma mark - Private Method
- (void)initSubViews {
[self.contentView addSubview:self.giftBackView];
[self.contentView addSubview:self.giftImageView];
[self.contentView addSubview:self.giftNumberLabel];
}
- (void)initSubViewConstraints {
[self.giftBackView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(56, 56));
make.top.mas_equalTo(self.contentView);
make.centerX.mas_equalTo(self.contentView);
}];
[self.giftImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(40, 40));
make.center.mas_equalTo(self.giftBackView);
}];
[self.giftNumberLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.mas_equalTo(self.contentView);
make.top.mas_equalTo(self.giftBackView.mas_bottom).offset(5);
}];
}
#pragma mark - Getters And Setters
- (void)setGiftInfo:(UserGiftWallInfoModel *)giftInfo {
_giftInfo = giftInfo;
if (_giftInfo) {
self.giftImageView.imageUrl = _giftInfo.picUrl;
self.giftNumberLabel.text = [NSString stringWithFormat:@"x%ld", _giftInfo.reciveCount];
}
}
- (NetImageView *)giftImageView {
if (!_giftImageView) {
NetImageConfig * config = [[NetImageConfig alloc]init];
config.imageType = ImageTypeUserIcon;
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_giftImageView = [[NetImageView alloc] initWithConfig:config];
_giftImageView.layer.masksToBounds = YES;
_giftImageView.layer.cornerRadius = 40/2;
}
return _giftImageView;
}
- (UIView *)giftBackView {
if (!_giftBackView) {
_giftBackView = [[UIView alloc] init];
_giftBackView.backgroundColor = UIColorFromRGB(0xF4F4FA);
_giftBackView.layer.masksToBounds = YES;
_giftBackView.layer.cornerRadius = 56/2;
}
return _giftBackView;
}
- (UILabel *)giftNumberLabel {
if (!_giftNumberLabel) {
_giftNumberLabel = [[UILabel alloc] init];
_giftNumberLabel.font = [UIFont systemFontOfSize:10];
_giftNumberLabel.textColor = [ThemeColor mainTextColor];
}
return _giftNumberLabel;
}
@end

View File

@@ -0,0 +1,23 @@
//
// XPMineDataGiftTableViewCell.h
// xplan-ios
//
// Created by 冯硕 on 2022/4/14.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@class XPMineDataGiftTableViewCell;
@protocol XPMineDataGiftTableViewCellDelegate <NSObject>
- (void)xPMineDataGiftTableViewCell:(XPMineDataGiftTableViewCell *)view didClickMore:(UIButton *)sender;
@end
@interface XPMineDataGiftTableViewCell : UITableViewCell
@property (nonatomic,strong) NSArray *datasource;
///代理
@property (nonatomic,weak) id<XPMineDataGiftTableViewCellDelegate> delegate;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,219 @@
//
// XPMineDataGiftTableViewCell.m
// xplan-ios
//
// Created by on 2022/4/14.
//
#import "XPMineDataGiftTableViewCell.h"
///Third
#import <Masonry/Masonry.h>
///Tool
#import "XPMacro.h"
#import "ThemeColor.h"
#import "UIImageConstant.h"
#import "UIButton+EnlargeTouchArea.h"
///View
#import "XPMineDataGiftCollectionViewCell.h"
@interface XPMineDataGiftTableViewCell ()<UICollectionViewDelegate, UICollectionViewDataSource>
///
@property (nonatomic,strong) UIImageView * backImageView;
///
@property (nonatomic,strong) UIButton *arrowButton;
///
@property (nonatomic,strong) UIView * emptyView;
///
@property (nonatomic,strong) UILabel *emptyLabel;
///
@property (nonatomic,strong) UIImageView *emptyImageView;
///
@property (nonatomic,strong) UILabel *titleLabel;
///
@property (nonatomic,strong) UICollectionView *collectionView;
@end
@implementation XPMineDataGiftTableViewCell
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
[self initSubViews];
[self initSubViewConstraints];
}
return self;
}
#pragma mark - Private Method
- (void)initSubViews {
self.backgroundColor = [UIColor clearColor];
self.selectionStyle = UITableViewCellSelectionStyleNone;
[self.contentView addSubview:self.backImageView];
[self.backImageView addSubview:self.titleLabel];
[self.backImageView addSubview:self.arrowButton];
[self.backImageView addSubview:self.emptyView];
[self.backImageView addSubview:self.collectionView];
[self.emptyView addSubview:self.emptyImageView];
[self.emptyView addSubview:self.emptyLabel];
}
- (void)initSubViewConstraints {
[self.backImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.mas_equalTo(self.contentView).inset(15);
make.top.mas_equalTo(self.contentView);
make.bottom.mas_equalTo(self.contentView).offset(-15);
}];
[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.backImageView).offset(12);
make.top.mas_equalTo(self.backImageView).offset(12);
}];
[self.arrowButton mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(13, 22));
make.centerY.mas_equalTo(self.titleLabel);
make.right.mas_equalTo(self.backImageView).offset(-15);
}];
[self.emptyView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.mas_equalTo(self.backImageView);
make.top.mas_equalTo(self.titleLabel.mas_bottom).offset(12);
make.bottom.mas_equalTo(self.backImageView);
}];
[self.emptyImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(50, 50));
make.centerX.mas_equalTo(self.emptyView);
make.top.mas_equalTo(self.emptyView).offset(15);
}];
[self.emptyLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.mas_equalTo(self.emptyImageView);
make.top.mas_equalTo(self.emptyImageView.mas_bottom).offset(5);
}];
[self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.bottom.mas_equalTo(self.backImageView);
make.top.mas_equalTo(self.titleLabel.mas_bottom).offset(12);
}];
}
#pragma mark - UICollectionViewDelegate And UICollectionViewDatasource
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
return self.datasource.count;
}
- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
XPMineDataGiftCollectionViewCell * cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([XPMineDataGiftCollectionViewCell class]) forIndexPath:indexPath];
cell.giftInfo = [self.datasource objectAtIndex:indexPath.row];
return cell;
}
#pragma mark - Event Response
- (void)arrowButtonAction:(UIButton *)sender {
if (self.delegate && [self.delegate respondsToSelector:@selector(xPMineDataGiftTableViewCell:didClickMore:)]) {
[self.delegate xPMineDataGiftTableViewCell:self didClickMore:sender];
}
}
#pragma mark - Getters And Setters
- (void)setDatasource:(NSArray *)datasource {
_datasource = datasource;
if (_datasource.count > 0) {
if (self.datasource.count > 16) {
NSArray * arrray = [self.datasource subarrayWithRange:NSMakeRange(0, 16)];
_datasource = arrray;
}
self.emptyView.hidden = YES;
self.collectionView.hidden = NO;
} else {
self.emptyView.hidden = NO;
self.collectionView.hidden = YES;
}
[self.collectionView reloadData];
}
- (UIImageView *)backImageView {
if (!_backImageView) {
_backImageView = [[UIImageView alloc] init];
_backImageView.userInteractionEnabled = YES;
_backImageView.layer.cornerRadius = 10;
_backImageView.backgroundColor =[ThemeColor appCellBackgroundColor];
_backImageView.layer.shadowColor = UIColorFromRGB(0xE4E4E4).CGColor;
_backImageView.layer.shadowOpacity = 1;
_backImageView.layer.shadowOffset = CGSizeMake(0, 2);
_backImageView.layer.shadowRadius = 8;
}
return _backImageView;
}
- (UILabel *)titleLabel {
if (!_titleLabel) {
_titleLabel = [[UILabel alloc] init];
_titleLabel.text = @"礼物墙";
_titleLabel.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium];
_titleLabel.textColor = [ThemeColor mainTextColor];
}
return _titleLabel;
}
- (UIButton *)arrowButton {
if (!_arrowButton) {
_arrowButton = [UIButton buttonWithType:UIButtonTypeCustom];
[_arrowButton setImage:[UIImage imageNamed:@"common_right_arrow"] forState:UIControlStateNormal];
[_arrowButton setImage:[UIImage imageNamed:@"common_right_arrow"] forState:UIControlStateSelected];
[_arrowButton addTarget:self action:@selector(arrowButtonAction:) forControlEvents:UIControlEventTouchUpInside];
[_arrowButton setEnlargeEdgeWithTop:10 right:10 bottom:10 left:10];
}
return _arrowButton;
}
- (UIView *)emptyView {
if (!_emptyView) {
_emptyView = [[UIView alloc] init];
_emptyView.backgroundColor = [UIColor clearColor];
}
return _emptyView;
}
- (UIImageView *)emptyImageView {
if (!_emptyImageView) {
_emptyImageView = [[UIImageView alloc] init];
_emptyImageView.userInteractionEnabled = YES;
_emptyImageView.contentMode = UIViewContentModeScaleAspectFit;
_emptyImageView.image = [UIImageConstant defalutEmptyPlaceholder];
}
return _emptyImageView;
}
- (UILabel *)emptyLabel {
if (!_emptyLabel) {
_emptyLabel = [[UILabel alloc] init];
_emptyLabel.text = @"还没收到礼物";
_emptyLabel.font = [UIFont systemFontOfSize:13];
_emptyLabel.textColor = [ThemeColor secondTextColor];
}
return _emptyLabel;
}
- (UICollectionView *)collectionView{
if (!_collectionView) {
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
layout.itemSize = CGSizeMake(56, 56 + 20);
layout.minimumInteritemSpacing = (KScreenWidth - 56 * 4 - 15 * 2 - 10 * 2) / 3.0;
layout.minimumLineSpacing = 10;
layout.sectionInset = UIEdgeInsetsMake(0, 10, 0, 10);
_collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout];
_collectionView.dataSource = self;
_collectionView.delegate = self;
_collectionView.scrollEnabled = NO;
_collectionView.backgroundColor = [UIColor clearColor];
[_collectionView registerClass:[XPMineDataGiftCollectionViewCell class] forCellWithReuseIdentifier:NSStringFromClass([XPMineDataGiftCollectionViewCell class])];
}
return _collectionView;
}
@end

View File

@@ -0,0 +1,24 @@
//
// XPMineDataSkillCardTableViewCell.h
// xplan-ios
//
// Created by 冯硕 on 2022/4/14.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@class XPMineDataSkillCardTableViewCell, MineSkillCardListInfoModel;
@protocol XPMineDataSkillCardTableViewCellDelegate <NSObject>
- (void)xPMineDataSkillCardTableViewCell:(XPMineDataSkillCardTableViewCell *)view didSelectItem:(MineSkillCardListInfoModel *)skillInfo;
@end
@interface XPMineDataSkillCardTableViewCell : UITableViewCell
@property (nonatomic,strong) NSArray *datasourece;
///代理
@property (nonatomic,weak) id<XPMineDataSkillCardTableViewCellDelegate> delegate;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,135 @@
//
// XPMineDataSkillCardTableViewCell.m
// xplan-ios
//
// Created by on 2022/4/14.
//
#import "XPMineDataSkillCardTableViewCell.h"
///Third
#import <Masonry/Masonry.h>
///Tool
#import "ThemeColor.h"
///View
#import "XPMineDataSkillDataCollectionViewCell.h"
@interface XPMineDataSkillCardTableViewCell ()<UICollectionViewDelegate, UICollectionViewDataSource>
///
@property (nonatomic,strong) UIImageView * backImageView;
///
@property (nonatomic,strong) UILabel *titleLabel;
///
@property (nonatomic,strong) UICollectionView *collectionView;
@end
@implementation XPMineDataSkillCardTableViewCell
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
[self initSubViews];
[self initSubViewConstraints];
}
return self;
}
#pragma mark - Private Method
- (void)initSubViews {
self.backgroundColor = [UIColor clearColor];
self.selectionStyle = UITableViewCellSelectionStyleNone;
[self.contentView addSubview:self.backImageView];
[self.backImageView addSubview:self.titleLabel];
[self.backImageView addSubview:self.collectionView];
}
- (void)initSubViewConstraints {
[self.backImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.mas_equalTo(self.contentView).inset(15);
make.top.mas_equalTo(self.contentView);
make.bottom.mas_equalTo(self.contentView).offset(-15);
}];
[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.backImageView).offset(12);
make.top.mas_equalTo(self.backImageView).offset(12);
}];
[self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.titleLabel);
make.top.mas_equalTo(self.titleLabel.mas_bottom).offset(12);
make.height.mas_equalTo(47);
make.right.mas_equalTo(self.backImageView).offset(-6);
}];
}
#pragma mark - UICollectionViewDelegate And UICollectionViewDatasource
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
return self.datasourece.count;
}
- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
XPMineDataSkillDataCollectionViewCell * cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([XPMineDataSkillDataCollectionViewCell class]) forIndexPath:indexPath];
cell.skillInfo = [self.datasourece objectAtIndex:indexPath.row];
return cell;
}
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
[collectionView deselectItemAtIndexPath:indexPath animated:YES];
if (self.datasourece.count > 0) {
MineSkillCardListInfoModel * skillInfo = [self.datasourece objectAtIndex:indexPath.row];
if (self.delegate && [self.delegate respondsToSelector:@selector(xPMineDataSkillCardTableViewCell:didSelectItem:)]) {
[self.delegate xPMineDataSkillCardTableViewCell:self didSelectItem:skillInfo];
}
}
}
#pragma mark - Getters And Setters
- (void)setDatasourece:(NSArray *)datasourece {
_datasourece = datasourece;
[self.collectionView reloadData];
}
- (UIImageView *)backImageView {
if (!_backImageView) {
_backImageView = [[UIImageView alloc] init];
_backImageView.userInteractionEnabled = YES;
_backImageView.layer.cornerRadius = 10;
_backImageView.backgroundColor =[ThemeColor appCellBackgroundColor];
_backImageView.layer.shadowColor = UIColorFromRGB(0xE4E4E4).CGColor;
_backImageView.layer.shadowOpacity = 1;
_backImageView.layer.shadowOffset = CGSizeMake(0, 2);
_backImageView.layer.shadowRadius = 8;
}
return _backImageView;
}
- (UILabel *)titleLabel {
if (!_titleLabel) {
_titleLabel = [[UILabel alloc] init];
_titleLabel.text = @"技能卡";
_titleLabel.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium];
_titleLabel.textColor = [ThemeColor mainTextColor];
}
return _titleLabel;
}
- (UICollectionView *)collectionView{
if (!_collectionView) {
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
layout.scrollDirection = UICollectionViewScrollDirectionHorizontal;
layout.itemSize = CGSizeMake(142, 47);
layout.minimumLineSpacing = 10;
layout.sectionInset = UIEdgeInsetsMake(0, 0, 0, 0);
_collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout];
_collectionView.dataSource = self;
_collectionView.delegate = self;
_collectionView.backgroundColor = [UIColor clearColor];
[_collectionView registerClass:[XPMineDataSkillDataCollectionViewCell class] forCellWithReuseIdentifier:NSStringFromClass([XPMineDataSkillDataCollectionViewCell class])];
}
return _collectionView;
}
@end

View File

@@ -0,0 +1,16 @@
//
// XPMineDataSkillDataCollectionViewCell.h
// xplan-ios
//
// Created by 冯硕 on 2022/4/14.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@class MineSkillCardListInfoModel;
@interface XPMineDataSkillDataCollectionViewCell : UICollectionViewCell
@property (nonatomic,strong) MineSkillCardListInfoModel *skillInfo;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,124 @@
//
// XPMineDataSkillDataCollectionViewCell.m
// xplan-ios
//
// Created by on 2022/4/14.
//
#import "XPMineDataSkillDataCollectionViewCell.h"
///Third
#import <Masonry/Masonry.h>
///Tool
#import "ThemeColor.h"
#import "NetImageView.h"
///Model
#import "MineSkillCardListInfoModel.h"
@interface XPMineDataSkillDataCollectionViewCell ()
///
@property (nonatomic,strong) UIView * backView;
///
@property (nonatomic,strong) NetImageView *logoImageView;
///
@property (nonatomic,strong) UILabel *titleLabel;
///
@property (nonatomic,strong) UILabel *skillLabel;
@end
@implementation XPMineDataSkillDataCollectionViewCell
- (instancetype)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
[self initSubViews];
[self initSubViewConstraints];
}
return self;
}
#pragma mark - Private Method
- (void)initSubViews {
self.backgroundColor = [UIColor clearColor];
[self.contentView addSubview:self.backView];
[self.backView addSubview:self.logoImageView];
[self.backView addSubview:self.titleLabel];
[self.backView addSubview:self.skillLabel];
}
- (void)initSubViewConstraints {
[self.backView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.mas_equalTo(self.contentView);
}];
[self.logoImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.bottom.mas_equalTo(self.backView).inset(8);
make.left.mas_equalTo(self.backView).offset(4);
make.height.mas_equalTo(self.logoImageView.mas_width);
}];
[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.bottom.mas_equalTo(self.logoImageView.mas_centerY).offset(-2);
make.left.mas_equalTo(self.logoImageView.mas_right).offset(4);
make.right.mas_lessThanOrEqualTo(self.backView);
}];
[self.skillLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.mas_equalTo(self.titleLabel);
make.top.mas_equalTo(self.logoImageView.mas_centerY).offset(2);
}];
}
#pragma mark - Getters And Setters
- (void)setSkillInfo:(MineSkillCardListInfoModel *)skillInfo {
_skillInfo = skillInfo;
if (_skillInfo) {
self.logoImageView.imageUrl = _skillInfo.icon;
NSString * title = [_skillInfo.propVals componentsJoinedByString:@"/"];
self.skillLabel.text = title;
self.titleLabel.text = _skillInfo.name;
}
}
- (NetImageView *)logoImageView {
if (!_logoImageView) {
NetImageConfig * config = [[NetImageConfig alloc]init];
config.imageType = ImageTypeUserIcon;
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_logoImageView = [[NetImageView alloc] initWithConfig:config];
}
return _logoImageView;
}
- (UIView *)backView {
if (!_backView) {
_backView = [[UIView alloc] init];
_backView.backgroundColor = UIColorFromRGB(0xFEF5E8);
_backView.layer.masksToBounds = YES;
_backView.layer.cornerRadius = 8;
}
return _backView;
}
- (UILabel *)titleLabel {
if (!_titleLabel) {
_titleLabel = [[UILabel alloc] init];
_titleLabel.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium];
_titleLabel.textColor = [ThemeColor mainTextColor];
}
return _titleLabel;
}
- (UILabel *)skillLabel {
if (!_skillLabel) {
_skillLabel = [[UILabel alloc] init];
_skillLabel.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium];
_skillLabel.textColor = [ThemeColor mainTextColor];
}
return _skillLabel;
}
@end

View File

@@ -0,0 +1,16 @@
//
// XPMineUserInfoGiftWallCollectionViewCell.h
// xplan-ios
//
// Created by 冯硕 on 2022/4/14.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface XPMineUserInfoGiftWallCollectionViewCell : UICollectionViewCell
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,14 @@
//
// XPMineUserInfoGiftWallCollectionViewCell.m
// xplan-ios
//
// Created by on 2022/4/14.
//
#import "XPMineUserInfoGiftWallCollectionViewCell.h"
///Third
#import <Masonry/Masonry.h>
@implementation XPMineUserInfoGiftWallCollectionViewCell
@end

View File

@@ -0,0 +1,18 @@
//
// XPMineUserDataViewController.h
// xplan-ios
//
// Created by 冯硕 on 2022/4/14.
//
#import "MvpViewController.h"
#import <JXPagingView/JXPagerView.h>
NS_ASSUME_NONNULL_BEGIN
@class UserInfoModel;
@interface XPMineUserDataViewController : MvpViewController<JXPagerViewListViewDelegate>
@property (nonatomic,copy) NSString *userUid;
///用户信息
@property (nonatomic,strong) UserInfoModel *userInfo;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,219 @@
//
// XPMineUserDataViewController.m
// xplan-ios
//
// Created by on 2022/4/14.
//
#import "XPMineUserDataViewController.h"
///Third
#import <Masonry/Masonry.h>
///View
#import "XPMineDataSkillCardTableViewCell.h"
#import "XPMineDataClanTableViewCell.h"
#import "XPMineDataGiftTableViewCell.h"
///Model
#import "ClanDetailInfoModel.h"
#import "UserInfoModel.h"
///P
#import "XPMineUserDataPresenter.h"
#import "XPMineUserDataProtocol.h"
///View
#import "XPSkillCardViewController.h"
@interface XPMineUserDataViewController ()<XPMineUserDataProtocol, UITableViewDelegate, UITableViewDataSource, XPMineDataClanTableViewCellDelegate, XPMineDataGiftTableViewCellDelegate, XPMineDataSkillCardTableViewCellDelegate>
///
@property (nonatomic,strong) UITableView *tableView;
///
@property (nonatomic,strong) ClanDetailInfoModel *clanDetailInfo;
///
@property (nonatomic,strong) NSArray *skillArray;
///
@property (nonatomic,assign) BOOL isFold;
@property (nonatomic, copy) void(^scrollCallback)(UIScrollView *scrollView);
@end
@implementation XPMineUserDataViewController
- (BOOL)isHiddenNavBar {
return YES;
}
- (__kindof id)createPresenter {
return [[XPMineUserDataPresenter alloc] init];
}
- (void)viewDidLoad {
[super viewDidLoad];
[self initHettpRequest];
[self initSubViews];
[self initSubViewConstraints];
}
#pragma mark - Http
- (void)initHettpRequest {
self.isFold = YES;
[self.presenter getUserSkillCardList:self.userUid];
[self.presenter getClanDetailInfo:self.userUid];
}
#pragma mark - Private Method
- (void)initSubViews {
[self.view addSubview:self.tableView];
}
- (void)initSubViewConstraints {
[self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.mas_equalTo(self.view);
}];
}
#pragma mark - UITableViewDelegate And UITableViewDataSource
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 3;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
if(section == 0) {
return 1;
}else if (section == 1) {
return (self.clanDetailInfo.clan.elderUid.length > 0 || self.clanDetailInfo.hall.ownerUid.length > 0) ? 1 : 0;
} else {
return 1;
}
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.section == 0) {
return 115;
} else if(indexPath.section == 1) {
if (self.clanDetailInfo.clan.elderUid.length > 0) {
if (self.clanDetailInfo.hall.ownerUid.length > 0) {
return self.isFold ? 115 : (115 + 60);
}else {
return 115;
}
}else {
return 75;
}
} else {
if (self.userInfo.userGiftWall.count > 0) {
CGFloat itemHeight = (56 + 20);
NSInteger count = self.userInfo.userGiftWall.count;
if (self.userInfo.userGiftWall.count > 16) {
count = 16;
}
int page = (int)count / 4;
int scale= count % 4;
if (scale == 0) {
return (itemHeight + 10) * page + 15 + 40;
} else {
return (itemHeight + 10) * (page + 1) + 15 + 40;
}
} else {
return 175;
}
}
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.section == 0) {
XPMineDataSkillCardTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPMineDataSkillCardTableViewCell class])];
if (cell == nil) {
cell = [[XPMineDataSkillCardTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPMineDataSkillCardTableViewCell class])];
}
cell.delegate = self;
cell.datasourece = self.skillArray;
return cell;
} else if(indexPath.section == 1) {
XPMineDataClanTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPMineDataClanTableViewCell class])];
if (cell == nil) {
cell = [[XPMineDataClanTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPMineDataClanTableViewCell class])];
}
cell.delegate = self;
cell.clanInfo = self.clanDetailInfo;
return cell;
} else {
XPMineDataGiftTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPMineDataGiftTableViewCell class])];
if (cell == nil) {
cell = [[XPMineDataGiftTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPMineDataGiftTableViewCell class])];
}
cell.delegate = self;
cell.datasource = self.userInfo.userGiftWall;
return cell;
}
}
#pragma mark - XPMineDataClanTableViewCellDelegate
- (void)xPMineDataClanTableViewCell:(XPMineDataClanTableViewCell *)view didClickFold:(UIButton *)sender {
self.isFold = sender.selected;
[self.tableView reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationNone];
}
- (void)xPMineDataClanTableViewCell:(XPMineDataClanTableViewCell *)view didClickEnter:(ClanDetailInfoModel *)clanInfo {
//TODO:
}
#pragma mark - XPMineDataGiftTableViewCellDelegate
- (void)xPMineDataGiftTableViewCell:(XPMineDataGiftTableViewCell *)view didClickMore:(UIButton *)sender {
//TODO:
}
#pragma mark - XPMineDataSkillCardTableViewCell
- (void)xPMineDataSkillCardTableViewCell:(XPMineDataSkillCardTableViewCell *)view didSelectItem:(MineSkillCardListInfoModel *)skillInfo {
XPSkillCardViewController *skillCardVC = [[XPSkillCardViewController alloc] init];
skillCardVC.uid = self.userUid.integerValue;
[self.navigationController pushViewController:skillCardVC animated:YES];
}
#pragma mark - JXPagingViewListViewDelegate
- (UIView *)listView {
return self.view;
}
- (UIScrollView *)listScrollView {
return self.tableView;
}
- (void)listViewDidScrollCallback:(void (^)(UIScrollView *))callback {
self.scrollCallback = callback;
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
self.scrollCallback(scrollView);
}
#pragma mark - XPMineUserDataProtocol
- (void)getUserSkillCardListSuccess:(NSArray *)list {
self.skillArray = list;
[self.tableView reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationNone];
}
- (void)getClanDetailInfoSuccess:(ClanDetailInfoModel *)clanInfo {
self.clanDetailInfo = clanInfo;
[self.tableView reloadSections:[NSIndexSet indexSetWithIndex:1] withRowAnimation:UITableViewRowAnimationNone];
}
#pragma mark - Getters And Setters
- (void)setUserInfo:(UserInfoModel *)userInfo {
_userInfo = userInfo;
[self.tableView reloadSections:[NSIndexSet indexSetWithIndex:2] withRowAnimation:UITableViewRowAnimationNone];
}
- (UITableView *)tableView {
if (!_tableView) {
_tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
_tableView.delegate = self;
_tableView.dataSource = self;
_tableView.tableFooterView = [UIView new];
_tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
_tableView.backgroundColor = [UIColor clearColor];
if (@available(iOS 11.0, *)) {
_tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
}
[_tableView registerClass:[XPMineDataSkillCardTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPMineDataSkillCardTableViewCell class])];
[_tableView registerClass:[XPMineDataClanTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPMineDataClanTableViewCell class])];
}
return _tableView;
}
@end

View File

@@ -0,0 +1,16 @@
//
// XPMineGiftWallViewController.h
// xplan-ios
//
// Created by 冯硕 on 2022/4/14.
//
#import "MvpViewController.h"
NS_ASSUME_NONNULL_BEGIN
@interface XPMineUserInfoGiftWallViewController : MvpViewController
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,31 @@
//
// XPMineGiftWallViewController.m
// xplan-ios
//
// Created by on 2022/4/14.
//
#import "XPMineUserInfoGiftWallViewController.h"
@interface XPMineUserInfoGiftWallViewController ()
@end
@implementation XPMineUserInfoGiftWallViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
}
/*
#pragma mark - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
}
*/
@end

View File

@@ -6,14 +6,12 @@
//
#import "MvpViewController.h"
NS_ASSUME_NONNULL_BEGIN
@interface XPMineUserInfoViewController : MvpViewController
///用户的id
@property (nonatomic,assign) NSInteger uid;
- (UIView *)getHeadHitView;
@end
NS_ASSUME_NONNULL_END

View File

@@ -10,6 +10,9 @@
#import <NIMSDK/NIMSDK.h>
#import <Masonry/Masonry.h>
#import <SDCycleScrollView/SDCycleScrollView.h>
#import <JXPagingView/JXPagerView.h>
#import <JXPagingView/JXPagerListRefreshView.h>
#import <JXCategoryView/JXCategoryView.h>
///Tool
#import "ThemeColor.h"
#import "XPMacro.h"
@@ -30,10 +33,13 @@
#import "XPWebViewController.h"
#import "SessionViewController.h"
#import "XPRoomViewController.h"
#import "XPMineUserDataViewController.h"
@interface XPMineUserInfoViewController ()<UITableViewDelegate, UITableViewDataSource, XPMineCustomNavViewDelegate, XPMineUserInfoProtocol, UIGestureRecognizerDelegate, XPMineUserInfoHeaderViewDelegate>
///
@property (nonatomic,strong) UITableView *tableView;
@interface XPMineUserInfoViewController ()<XPMineCustomNavViewDelegate, XPMineUserInfoProtocol, XPMineUserInfoHeaderViewDelegate, JXCategoryViewDelegate,JXPagerViewDelegate>
@property (nonatomic, strong) JXCategoryTitleView *titleView;
@property (nonatomic, strong) JXCategoryIndicatorLineView *lineView;
@property (nonatomic, strong) JXPagerView *pagingView;
@property (nonatomic, strong) NSArray<NSString *> *titles;
///
@property (nonatomic,strong) XPMineUserInfoHeaderView *headView;
///
@@ -46,6 +52,8 @@
@property (nonatomic,strong) UIButton *chatButton;
///
@property (nonatomic,strong) UIButton *attentionButton;
///
@property (nonatomic,strong) XPMineUserDataViewController *userDataVC;
@end
@implementation XPMineUserInfoViewController
@@ -73,17 +81,15 @@
}
}
#pragma mark - Public Method
- (UIView *)getHeadHitView {
return self.headView.cycleScrollView;
- (void)viewDidLayoutSubviews {
[super viewDidLayoutSubviews];
self.pagingView.frame = self.view.bounds;
}
#pragma mark - Private Method
- (void)initSubViews {
[self.view addSubview:self.tableView];
[self.view addSubview:self.pagingView];
[self.view addSubview:self.navView];
self.tableView.tableHeaderView = self.headView;
if (self.uid != [AccountInfoStorage instance].getUid.integerValue) {
[self.view addSubview:self.bottomStackView];
[self.bottomStackView addArrangedSubview:self.chatButton];
@@ -98,16 +104,10 @@
}
- (void)initSubViewConstraints {
[self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.mas_equalTo(self.view);
}];
[self.navView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.mas_equalTo(self.view);
make.height.mas_equalTo(kNavigationHeight);
}];
}
- (void)initHttpRequest {
@@ -184,23 +184,33 @@
}];
}
#pragma mark - UITableViewDelegate And UITableViewDataSource
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return 0;
#pragma mark - JXCategoryViewDelegate
- (NSUInteger)tableHeaderViewHeightInPagerView:(JXPagerView *)pagerView {
return 440;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return 100;
- (UIView *)tableHeaderViewInPagerView:(JXPagerView *)pagerView {
return self.headView;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
XPMineUserInfoTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPMineUserInfoTableViewCell class])];
if (cell == nil) {
cell = [[XPMineUserInfoTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPMineUserInfoTableViewCell class])];
- (NSUInteger)heightForPinSectionHeaderInPagerView:(JXPagerView *)pagerView {
return 50;
}
cell.userInfo = self.userInfo;
return cell;
- (UIView *)viewForPinSectionHeaderInPagerView:(JXPagerView *)pagerView {
return self.titleView;
}
- (NSInteger)numberOfListsInPagerView:(JXPagerView *)pagerView {
return self.titles.count;
}
- (id<JXPagerViewListViewDelegate>)pagerView:(JXPagerView *)pagerView initListAtIndex:(NSInteger)index {
UIViewController *viewController;
if (index == 0) {
return self.userDataVC;
}
return (id <JXPagerViewListViewDelegate>)viewController;
}
#pragma mark - XPMineCustomNavViewDelegate
@@ -234,11 +244,11 @@
#pragma mark - XPMineUserInfoProtocol
- (void)onGetUserInfoSuccess:(UserInfoModel *)userInfo {
self.userInfo = userInfo;
[self.tableView reloadData];
self.headView.userInfo = userInfo;
}
- (void)ongetDetailInfoSuccess:(UserInfoModel *)userInfo {
self.headView.userInfo = userInfo;
self.userDataVC.userInfo = userInfo;
}
- (void)getAttentionStateSuccess:(BOOL)status {
@@ -275,30 +285,15 @@
}
self.navView.editButton.selected = _uid == [AccountInfoStorage instance].getUid.integerValue;
NSString * uidStr = [NSString stringWithFormat:@"%ld", uid];
self.userDataVC.userUid = uidStr;
[self.presenter getUserInfoWithUid:uidStr];
}
}
- (UITableView *)tableView {
if (!_tableView) {
_tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped];
_tableView.delegate = self;
_tableView.dataSource = self;
_tableView.tableFooterView = [UIView new];
_tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
_tableView.backgroundColor = [UIColor clearColor];
if (@available(iOS 11.0, *)) {
_tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
}
[_tableView registerClass:[XPMineUserInfoTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPMineUserInfoTableViewCell class])];
}
return _tableView;
}
- (XPMineUserInfoHeaderView *)headView {
if (!_headView) {
_headView = [[XPMineUserInfoHeaderView alloc] init];
_headView.frame = CGRectMake(0, 0, KScreenWidth, 270 + kSafeAreaTopHeight);
_headView.delegate = self;
}
return _headView;
@@ -357,5 +352,59 @@
return _attentionButton;
}
- (JXCategoryTitleView *)titleView {
if (!_titleView) {
_titleView = [[JXCategoryTitleView alloc] init];
_titleView.delegate = self;
_titleView.backgroundColor = [UIColor clearColor];
_titleView.titleColor = [ThemeColor textThirdColor];
_titleView.titleSelectedColor = [ThemeColor mainTextColor];
_titleView.titleFont = [UIFont fontWithName:@"PingFang-SC-Medium" size:12];
_titleView.titleSelectedFont = [UIFont fontWithName:@"PingFang-SC-Medium" size:16];
_titleView.titleLabelAnchorPointStyle = JXCategoryTitleLabelAnchorPointStyleCenter;
_titleView.contentScrollViewClickTransitionAnimationEnabled = NO;
_titleView.defaultSelectedIndex = 0;
_titleView.averageCellSpacingEnabled = NO;
_titleView.contentEdgeInsetLeft = 20;
_titleView.titles = self.titles;
_titleView.cellSpacing = 20;
_titleView.titles = self.titles;
_titleView.listContainer = (id<JXCategoryViewListContainer>)self.pagingView.listContainerView;
JXCategoryIndicatorImageView *lineView = [[JXCategoryIndicatorImageView alloc] init];
lineView.indicatorImageViewSize = CGSizeMake(41, 10);
lineView.verticalMargin = 14;
lineView.indicatorImageView.image = [UIImage imageNamed:@"home_recommend_indicator_room"];
_titleView.indicators = @[lineView];
}
return _titleView;
}
- (JXPagerView *)pagingView {
if (!_pagingView) {
_pagingView = [[JXPagerView alloc] initWithDelegate:self];
_pagingView.backgroundColor = [UIColor clearColor];
_pagingView.listContainerView.backgroundColor = [UIColor clearColor];
_pagingView.mainTableView.backgroundColor = [UIColor clearColor];
_pagingView.listContainerView.listCellBackgroundColor = UIColor.clearColor;
}
return _pagingView;
}
- (NSArray<NSString *> *)titles {
if (!_titles) {
_titles = @[@"资料"];
}
return _titles;
}
- (XPMineUserDataViewController *)userDataVC {
if (!_userDataVC) {
_userDataVC = [[XPMineUserDataViewController alloc] init];
}
return _userDataVC;
}
@end

View File

@@ -42,6 +42,11 @@ NS_ASSUME_NONNULL_BEGIN
/// @param id 技能卡id
+ (void)requestDeleteSkillCard:(HttpRequestHelperCompletion)completion id:(NSString *)cardId;
/// 获取用户的技能卡
/// @param completion 完成
/// @param uid uid
+ (void)getUserSkillCardLsit:(HttpRequestHelperCompletion)completion uid:(NSString *)uid;
@end
NS_ASSUME_NONNULL_END

View File

@@ -51,4 +51,12 @@
[self makeRequest:@"skillCard/delete" method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, cardId, nil];
}
///
/// @param completion
/// @param uid uid
+ (void)getUserSkillCardLsit:(HttpRequestHelperCompletion)completion uid:(NSString *)uid {
[self makeRequest:@"skillCard/cardList" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, uid, nil];
}
@end

View File

@@ -0,0 +1,24 @@
//
// MineSkillCardListInfoModel.h
// xplan-ios
//
// Created by 冯硕 on 2022/4/14.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface MineSkillCardListInfoModel : NSObject
@property (nonatomic,copy) NSString *sId;
///id
@property (nonatomic,copy) NSString *cardId;
///图片
@property (nonatomic,copy) NSString *icon;
///技能
@property (nonatomic,copy) NSArray *propVals;
///
@property (nonatomic,copy) NSString *name;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,15 @@
//
// MineSkillCardListInfoModel.m
// xplan-ios
//
// Created by on 2022/4/14.
//
#import "MineSkillCardListInfoModel.h"
@implementation MineSkillCardListInfoModel
+ (NSDictionary *)replacedKeyFromPropertyName {
return @{@"sId":@"id"};
}
@end

View File

@@ -73,7 +73,7 @@
- (UIButton *)backButton {
if (!_backButton) {
_backButton = [UIButton buttonWithType:UIButtonTypeCustom];
[_backButton setImage:[UIImage imageNamed:@"common_nav_back"] forState:UIControlStateNormal];
[_backButton setImage:[UIImage imageNamed:@"home_search_white_back"] forState:UIControlStateNormal];
_backButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
[_backButton addTarget:self action:@selector(backButtonAction:) forControlEvents:UIControlEventTouchUpInside];
[_backButton setEnlargeEdgeWithTop:10 right:10 bottom:10 left:10];

View File

@@ -15,58 +15,16 @@
#import "ThemeColor.h"
#import "XPMacro.h"
#import "UIImage+ImageEffects.h"
#import "UIImage+Utils.h"
#import "NetImageView.h"
///Model
#import "UserInfoModel.h"
#import "NetImageView.h"
@interface XPMineUserInfoImageCollectionViewCell : UICollectionViewCell
///
@property (nonatomic,strong) NetImageView *logoImageView;
@end
@implementation XPMineUserInfoImageCollectionViewCell
- (instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[self initSubViews];
[self initSubViewConstraints];
}
return self;
}
#pragma mark - Private Method
- (void)initSubViews {
[self.contentView addSubview:self.logoImageView];
}
- (void)initSubViewConstraints {
[self.logoImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.mas_equalTo(self.contentView);
}];
}
#pragma mark - Getters And Setters
- (NetImageView *)logoImageView {
if (!_logoImageView) {
NetImageConfig * config = [[NetImageConfig alloc]init];
config.imageType = ImageTypeUserInfoAlbum;
_logoImageView = [[NetImageView alloc] initWithConfig:config];
_logoImageView.userInteractionEnabled = YES;
_logoImageView.layer.masksToBounds = YES;
_logoImageView.contentMode = UIViewContentModeScaleAspectFill;
}
return _logoImageView;
}
@end
@interface XPMineUserInfoHeaderView ()<SDCycleScrollViewDelegate, SDPhotoBrowserDelegate>
///
@property (nonatomic,strong) SDCycleScrollView *cycleScrollView;
///view
@property (nonatomic,strong) UIImageView * coverImageView;
///
@property (nonatomic,strong) UILabel *pageLabel;
///
@@ -75,18 +33,53 @@
@property (nonatomic,strong) NSArray *imageUrls;
///
@property (nonatomic,strong) NSMutableArray *userPhtotArray;
///
@property (nonatomic,strong) UIView * backView;
///
@property (nonatomic,strong) UIView * userInfoView;
///
@property (nonatomic,strong) UIImageView *usershadowImageView;
@property (nonatomic,strong) UIStackView *nickStackView;
///
@property (nonatomic,strong) UILabel *nameLabel;
///sex
@property (nonatomic,strong) UIImageView *sexImageView;
///id
@property (nonatomic,strong) UILabel *idLabel;
///
@property (nonatomic,strong) UILabel *signLabel;
///
@property (nonatomic,strong) UIButton *onlineButton;
///
@property (nonatomic,strong) UIStackView *idStackView;
///
@property (nonatomic,strong) UIImageView *beautifulImageViw;
///id
@property (nonatomic,strong) UILabel *idLabel;
///
@property (nonatomic,strong) UIView * spaceView;
///
@property (nonatomic,strong) UILabel *fansNumLabel;
///
@property (nonatomic,strong) UIStackView *tagStackView;
///
@property (nonatomic,strong) NetImageView *charmImageView;
///icon
@property (nonatomic, strong) NetImageView *nobleIconImageView;
///
@property (nonatomic,strong) NetImageView *experImageView;
///
@property (nonatomic,strong) UIView * namePlateView;
///
@property (nonatomic,strong) NetImageView *nameplateImageView;
///
@property (nonatomic,strong) UILabel *nameplateLabel;
///
@property (nonatomic,strong) UIImageView *newUserImageView;
///
@property (nonatomic,strong) UIImageView *officalImageView;
///
@property (nonatomic,strong) UIView * signBackView;
///
@property (nonatomic,strong) UILabel *signLabel;
///线
@property (nonatomic,strong) UIView * lineView;
///
@property (nonatomic,strong) UserPhoto *avatarPhoto;
@end
@implementation XPMineUserInfoHeaderView
@@ -101,16 +94,59 @@
}
#pragma mark - Private Method
- (void)initSubViews {
[self addSubview:self.cycleScrollView];
[self addSubview:self.coverImageView];
[self addSubview:self.pageLabel];
[self addSubview:self.reviewIcon];
[self addSubview:self.userInfoView];
[self.userInfoView addSubview:self.usershadowImageView];
[self.userInfoView addSubview:self.signBackView];
[self.userInfoView addSubview:self.lineView];
[self.usershadowImageView addSubview:self.nickStackView];
[self.usershadowImageView addSubview:self.idStackView];
[self.usershadowImageView addSubview:self.tagStackView];
[self.nickStackView addArrangedSubview:self.nameLabel];
[self.nickStackView addArrangedSubview:self.sexImageView];
[self.nickStackView addArrangedSubview:self.onlineButton];
[self.idStackView addArrangedSubview:self.beautifulImageViw];
[self.idStackView addArrangedSubview:self.idLabel];
[self.idStackView addArrangedSubview:self.spaceView];
[self.idStackView addArrangedSubview:self.fansNumLabel];
///
[self.tagStackView addArrangedSubview:self.newUserImageView];
[self.tagStackView addArrangedSubview:self.officalImageView];
[self.tagStackView addArrangedSubview:self.experImageView];
[self.tagStackView addArrangedSubview:self.charmImageView];
[self.tagStackView addArrangedSubview:self.namePlateView];
///
[self.namePlateView addSubview:self.nameplateImageView];
[self.namePlateView addSubview:self.nameplateLabel];
[self.signBackView addSubview:self.signLabel];
}
- (void)initSubViewConstraints {
[self.cycleScrollView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.mas_equalTo(self);
make.left.right.top.mas_equalTo(self);
make.height.mas_equalTo(375);
}];
[self.coverImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.mas_equalTo(self.cycleScrollView);
}];
[self.pageLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.mas_equalTo(-15);
make.width.mas_equalTo(35);
make.height.mas_equalTo(16);
make.top.mas_equalTo(self).offset(148 + kSafeAreaTopHeight);
make.bottom.mas_equalTo(self.cycleScrollView).offset(-30);
}];
[self.reviewIcon mas_makeConstraints:^(MASConstraintMaker *make) {
@@ -119,49 +155,103 @@
make.height.mas_equalTo(50);
}];
[self.backView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.mas_equalTo(self).inset(15);
make.bottom.mas_equalTo(self).offset(20);
make.height.mas_equalTo(100);
[self.userInfoView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.mas_equalTo(self);
make.bottom.mas_equalTo(self);
make.height.mas_equalTo(210);
}];
[self.usershadowImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.mas_equalTo(self.userInfoView);
make.height.mas_equalTo(146);
}];
[self.signBackView mas_makeConstraints:^(MASConstraintMaker *make) {
make.height.mas_equalTo(79);
make.left.right.mas_equalTo(self.userInfoView);
make.top.mas_equalTo(self.usershadowImageView.mas_bottom).offset(-15);
}];
[self.lineView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.mas_equalTo(self.userInfoView).inset(15);
make.bottom.mas_equalTo(self.userInfoView);
make.height.mas_equalTo(1);
}];
[self.nickStackView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.usershadowImageView).offset(15);
make.top.mas_equalTo(self.usershadowImageView).offset(50);
}];
[self.nameLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.backView).offset(15);
make.top.mas_equalTo(self.backView).offset(15);
make.height.mas_equalTo(20);
}];
[self.sexImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.nameLabel.mas_right).offset(5);
make.centerY.mas_equalTo(self.nameLabel);
}];
[self.idLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.nameLabel);
make.top.mas_equalTo(self.nameLabel.mas_bottom).offset(10);
}];
[self.signLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.nameLabel);
make.top.mas_equalTo(self.idLabel.mas_bottom).offset(18);
make.size.mas_equalTo(CGSizeMake(15, 15));
}];
[self.onlineButton mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(55, 18));
make.right.mas_equalTo(self.backView).offset(-15);
make.top.mas_equalTo(self.backView).offset(10);
}];
}
- (void)initSubViews {
[self addSubview:self.cycleScrollView];
[self addSubview:self.pageLabel];
[self addSubview:self.reviewIcon];
[self addSubview:self.backView];
[self.backView addSubview:self.nameLabel];
[self.backView addSubview:self.sexImageView];
[self.backView addSubview:self.idLabel];
[self.backView addSubview:self.signLabel];
[self.backView addSubview:self.onlineButton];
[self.idStackView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.nickStackView);
make.top.mas_equalTo(self.nickStackView.mas_bottom).offset(5);
}];
[self.beautifulImageViw mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(15, 15));
}];
[self.spaceView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(22);
make.height.mas_equalTo(15);
}];
[self.tagStackView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.usershadowImageView).offset(15);
make.top.mas_equalTo(self.beautifulImageViw.mas_bottom).offset(5);
make.height.mas_equalTo(20);
}];
[self.experImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.height.mas_equalTo(20);
}];
[self.charmImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.height.mas_equalTo(20);
}];
[self.newUserImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.height.mas_equalTo(15);
}];
[self.officalImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.height.mas_equalTo(20);
}];
[self.namePlateView mas_makeConstraints:^(MASConstraintMaker *make) {
make.height.mas_equalTo(20);
make.width.mas_equalTo(self.nameplateImageView.mas_width);
}];
[self.nameplateImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.height.mas_equalTo(20);
make.width.mas_equalTo(60);
make.left.top.mas_equalTo(self.namePlateView);
}];
[self.nameplateLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.bottom.mas_equalTo(self.nameplateImageView);
make.right.mas_equalTo(self.namePlateView).offset(-2);
}];
[self.signLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.signBackView).offset(10);
make.top.mas_equalTo(self.signBackView).offset(23);
}];
}
#pragma mark - SDPhotoBrowserDelegate
@@ -175,17 +265,6 @@
}
#pragma mark - SDCycleScrollViewDelegate
/** cellcellclass */
- (Class)customCollectionViewCellClassForCycleScrollView:(SDCycleScrollView *)view {
return [XPMineUserInfoImageCollectionViewCell class];
}
- (void)setupCustomCell:(UICollectionViewCell *)cell forIndex:(NSInteger)index cycleScrollView:(SDCycleScrollView *)view {
XPMineUserInfoImageCollectionViewCell * imageCell = (XPMineUserInfoImageCollectionViewCell *)cell;
NSString *url = [self.imageUrls objectAtIndex:index];
imageCell.logoImageView.imageUrl = url;
}
-(void)cycleScrollView:(SDCycleScrollView *)cycleScrollView didScrollToIndex:(NSInteger)index {
self.pageLabel.text = [NSString stringWithFormat:@"%ld/%lu",(index + 1), (unsigned long)self.imageUrls.count];
UserPhoto * photo = [self.userPhtotArray objectAtIndex:index];
@@ -215,19 +294,42 @@
_userInfo = userInfo;
if (_userInfo) {
self.nameLabel.text = _userInfo.nick;
self.idLabel.text = [NSString stringWithFormat:@"%@号:%ld",AppName, (long)_userInfo.erbanNo];
self.idLabel.text = [NSString stringWithFormat:@"大鹅号:%@号:%ld",AppName, (long)_userInfo.erbanNo];
self.signLabel.text = _userInfo.userDesc.length > 0 ? _userInfo.userDesc : @"我是个默认签名";
NSString * sexStr;
if (_userInfo.gender == GenderType_Male) {
sexStr = @"common_male";
} else {
sexStr = @"common_female";
}
self.sexImageView.image = [UIImage imageNamed:sexStr];
self.onlineButton.hidden = _userInfo.roomUid.length <=0;
self.fansNumLabel.text =[NSString stringWithFormat:@"%ld粉丝", _userInfo.fansNum];
self.sexImageView.image = userInfo.gender == GenderType_Female ? [UIImage imageNamed:@"common_female"] : [UIImage imageNamed:@"common_male"];
self.officalImageView.hidden = userInfo.defUser != UserLevelType_Offical;
self.beautifulImageViw.hidden = !userInfo.hasPrettyErbanNo;
self.newUserImageView.hidden = !userInfo.newUser;
if (userInfo.userLevelVo.experUrl) {
self.experImageView.imageUrl = userInfo.userLevelVo.experUrl;
}
self.experImageView.hidden = userInfo.userLevelVo.experUrl.length <= 0;
if (userInfo.userLevelVo.charmUrl) {
self.charmImageView.imageUrl = userInfo.userLevelVo.charmUrl;
}
self.charmImageView.hidden = userInfo.userLevelVo.charmUrl.length <= 0;
if (userInfo.nameplateWord.length>0 && userInfo.nameplatePic.length>0) {
self.nameplateImageView.imageUrl = userInfo.nameplatePic;
self.nameplateLabel.text = userInfo.nameplateWord;
self.namePlateView.hidden = NO;
} else {
self.namePlateView.hidden = YES;
}
[self.userPhtotArray removeAllObjects];
//
NSMutableArray * imageUrls = [NSMutableArray array];
if (userInfo.avatar) {
[imageUrls addObject:userInfo.avatar];
if (![self.userPhtotArray containsObject:self.avatarPhoto]) {
[self.userPhtotArray addObject:self.avatarPhoto];
}
self.avatarPhoto.isReview = userInfo.isReview;
self.avatarPhoto.photoUrl = userInfo.avatar;
}
if (self.userInfo.privatePhoto.count > 0) {
for (int i = 0; i < self.userInfo.privatePhoto.count; i++) {
UserPhoto * photo = [self.userInfo.privatePhoto objectAtIndex:i];
@@ -248,21 +350,49 @@
}
}
- (UIView *)backView {
if (!_backView) {
_backView = [[UIView alloc] init];
_backView.backgroundColor = [ThemeColor appCellBackgroundColor];
_backView.layer.masksToBounds = YES;
_backView.layer.cornerRadius = 12;
- (UIImageView *)coverImageView {
if (!_coverImageView) {
_coverImageView = [[UIImageView alloc] init];
_coverImageView.userInteractionEnabled = NO;
_coverImageView.image = [UIImage imageNamed:@"mine_userinfo_header_shadow_bg"];
}
return _backView;
return _coverImageView;
}
- (UIView *)userInfoView {
if (!_userInfoView) {
_userInfoView = [[UIView alloc] init];
_userInfoView.backgroundColor = [UIColor clearColor];
_userInfoView.layer.masksToBounds = YES;
_userInfoView.layer.cornerRadius = 12;
}
return _userInfoView;
}
- (UIImageView *)usershadowImageView {
if (!_usershadowImageView) {
_usershadowImageView = [[UIImageView alloc] init];
_usershadowImageView.userInteractionEnabled = YES;
}
return _usershadowImageView;
}
- (UIStackView *)nickStackView {
if (!_nickStackView) {
_nickStackView = [[UIStackView alloc] init];
_nickStackView.axis = UILayoutConstraintAxisHorizontal;
_nickStackView.distribution = UIStackViewDistributionFill;
_nickStackView.alignment = UIStackViewAlignmentCenter;
_nickStackView.spacing = 10;
}
return _nickStackView;
}
- (UILabel *)nameLabel {
if (!_nameLabel) {
_nameLabel = [[UILabel alloc] init];
_nameLabel.font = [UIFont fontWithName:@"PingFang-SC-Medium" size:15];
_nameLabel.textColor = [ThemeColor mainTextColor];
_nameLabel.textColor = [UIColor whiteColor];
}
return _nameLabel;
}
@@ -275,37 +405,61 @@
return _sexImageView;
}
- (UIStackView *)idStackView {
if (!_idStackView) {
_idStackView = [[UIStackView alloc] init];
_idStackView.axis = UILayoutConstraintAxisHorizontal;
_idStackView.distribution = UIStackViewDistributionFill;
_idStackView.alignment = UIStackViewAlignmentCenter;
_idStackView.spacing = 5;
}
return _idStackView;
}
- (UIImageView *)beautifulImageViw {
if (!_beautifulImageViw) {
_beautifulImageViw = [[UIImageView alloc] init];
_beautifulImageViw.userInteractionEnabled = YES;
_beautifulImageViw.image = [UIImage imageNamed:@""];
}
return _beautifulImageViw;
}
- (UILabel *)fansNumLabel {
if (!_fansNumLabel) {
_fansNumLabel = [[UILabel alloc] init];
_fansNumLabel.font = [UIFont systemFontOfSize:12];
_fansNumLabel.textColor = [UIColor whiteColor];
}
return _fansNumLabel;
}
- (UIView *)spaceView {
if (!_spaceView) {
_spaceView = [[UIView alloc] init];
_spaceView.backgroundColor = [UIColor clearColor];
}
return _spaceView;
}
- (UILabel *)idLabel {
if (!_idLabel) {
_idLabel = [[UILabel alloc] init];
_idLabel.font = [UIFont systemFontOfSize:11];
_idLabel.textColor = [ThemeColor textThirdColor];
_idLabel.textColor = [UIColor whiteColor];
}
return _idLabel;
}
- (UILabel *)signLabel {
if (!_signLabel) {
_signLabel = [[UILabel alloc] init];
_signLabel.font = [UIFont systemFontOfSize:11];;
_signLabel.textColor = [ThemeColor secondTextColor];
}
return _signLabel;
}
- (UIButton *)onlineButton {
if (!_onlineButton) {
_onlineButton = [UIButton buttonWithType:UIButtonTypeCustom];
[_onlineButton setTitle:@"直播中" forState:UIControlStateNormal];
[_onlineButton setImage:[UIImage imageNamed:@"home_search_user_online"] forState:UIControlStateNormal];
[_onlineButton setTitleColor:[ThemeColor appEmphasizeColor] forState:UIControlStateNormal];
_onlineButton.backgroundColor = [UIColor clearColor];
_onlineButton.titleLabel.font = [UIFont systemFontOfSize:10];
[_onlineButton setTitleColor:[ThemeColor confirmButtonTextColor] forState:UIControlStateNormal];
_onlineButton.titleLabel.font = [UIFont systemFontOfSize:12];
[_onlineButton setBackgroundImage:[UIImage gradientColorImageFromColors:@[[ThemeColor confirmButtonGradientStartColor], [ThemeColor confirmButtonGradientEndColor]] gradientType:GradientTypeLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal];
_onlineButton.layer.masksToBounds = YES;
_onlineButton.layer.cornerRadius = 18/2;
_onlineButton.layer.borderColor = [ThemeColor appEmphasizeColor].CGColor;
_onlineButton.layer.borderWidth = 1;
_onlineButton.hidden = YES;
_onlineButton.layer.cornerRadius = 10;
[_onlineButton addTarget:self action:@selector(onlineButtonAction:) forControlEvents:UIControlEventTouchUpInside];
}
return _onlineButton;
@@ -313,12 +467,10 @@
- (SDCycleScrollView *)cycleScrollView {
if (!_cycleScrollView) {
_cycleScrollView = [[SDCycleScrollView alloc] init];
_cycleScrollView = [SDCycleScrollView cycleScrollViewWithFrame:CGRectZero delegate:self placeholderImage:[UIImageConstant defalutBannerPlaceholder]];
_cycleScrollView.backgroundColor = [UIColor clearColor];
_cycleScrollView.delegate = self;
_cycleScrollView.bannerImageViewContentMode = UIViewContentModeScaleAspectFill;
_cycleScrollView.pageControlStyle = SDCycleScrollViewPageContolStyleNone;;
_cycleScrollView.placeholderImage = [UIImageConstant defaultAvatarPlaceholder];
_cycleScrollView.pageControlStyle = SDCycleScrollViewPageContolStyleNone;
_cycleScrollView.autoScroll = NO;
}
return _cycleScrollView;
@@ -346,6 +498,134 @@
return _reviewIcon;
}
- (UIStackView *)tagStackView {
if (!_tagStackView) {
_tagStackView = [[UIStackView alloc] init];
_tagStackView.axis = UILayoutConstraintAxisHorizontal;
_tagStackView.distribution = UIStackViewDistributionFill;
_tagStackView.alignment = UIStackViewAlignmentCenter;
_tagStackView.spacing = 2;
}
return _tagStackView;
}
- (NetImageView *)experImageView {
if (!_experImageView) {
NetImageConfig * config = [[NetImageConfig alloc] init];
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
config.imageType = ImageTypeUserCardLevel;
_experImageView = [[NetImageView alloc] initWithConfig:config];
_experImageView.userInteractionEnabled = YES;
_experImageView.hidden = YES;
_experImageView.contentMode = UIViewContentModeScaleAspectFit;
}
return _experImageView;
}
- (NetImageView *)charmImageView {
if (!_charmImageView) {
NetImageConfig * config = [[NetImageConfig alloc] init];
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
config.imageType = ImageTypeUserCardLevel;
_charmImageView = [[NetImageView alloc] initWithConfig:config];
_charmImageView.userInteractionEnabled = YES;
_charmImageView.hidden = YES;
_charmImageView.contentMode = UIViewContentModeScaleAspectFit;
}
return _charmImageView;
}
- (NetImageView *)nobleIconImageView {
if (!_nobleIconImageView) {
NetImageConfig * config = [[NetImageConfig alloc] init];
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
config.imageType = ImageTypeUserCardLevel;
_nobleIconImageView = [[NetImageView alloc] initWithConfig:config];
_nobleIconImageView.contentMode = UIViewContentModeScaleAspectFit;
}
return _nobleIconImageView;
}
- (UIView *)namePlateView {
if (!_namePlateView) {
_namePlateView = [[UIView alloc] init];
_namePlateView.backgroundColor = [UIColor clearColor];
_namePlateView.hidden = YES;
}
return _namePlateView;
}
- (NetImageView *)nameplateImageView {
if (!_nameplateImageView) {
NetImageConfig * config = [[NetImageConfig alloc] init];
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
config.imageType = ImageTypeUserCardLevel;
_nameplateImageView = [[NetImageView alloc] initWithConfig:config];
_nameplateImageView.userInteractionEnabled = YES;
_nameplateImageView.contentMode = UIViewContentModeScaleAspectFit;
}
return _nameplateImageView;
}
- (UILabel *)nameplateLabel {
if (!_nameplateLabel) {
_nameplateLabel = [[UILabel alloc] init];
_nameplateLabel.font = [UIFont systemFontOfSize:10];
_nameplateLabel.textAlignment = NSTextAlignmentCenter;
_nameplateLabel.textColor = [UIColor whiteColor];
}
return _nameplateLabel;
}
- (UIImageView *)newUserImageView {
if (!_newUserImageView) {
_newUserImageView = [[UIImageView alloc] init];
_newUserImageView.userInteractionEnabled = YES;
_newUserImageView.image = [UIImage imageNamed:@"common_new_user"];
_newUserImageView.hidden = YES;
}
return _newUserImageView;
}
- (UIImageView *)officalImageView {
if (!_officalImageView) {
_officalImageView = [[UIImageView alloc] init];
_officalImageView.userInteractionEnabled = YES;
_officalImageView.image = [UIImage imageNamed:@"common_offical"];
_officalImageView.hidden = YES;
}
return _officalImageView;
}
- (UIView *)signBackView {
if (!_signBackView) {
_signBackView = [[UIView alloc] init];
_signBackView.backgroundColor = [ThemeColor appBackgroundColor];
CAShapeLayer * layer = [CAShapeLayer layer];
layer.path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, KScreenWidth, 79) byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(12, 12)].CGPath;
_signBackView.layer.mask = layer;
}
return _signBackView;
}
- (UIView *)lineView {
if (!_lineView) {
_lineView = [[UIView alloc] init];
_lineView.backgroundColor = [ThemeColor dividerColor];
}
return _lineView;
}
- (UILabel *)signLabel {
if (!_signLabel) {
_signLabel = [[UILabel alloc] init];
_signLabel.font = [UIFont systemFontOfSize:12];;
_signLabel.textColor = [ThemeColor secondTextColor];
_signLabel.numberOfLines = 2;
}
return _signLabel;
}
- (NSMutableArray *)userPhtotArray {
if (!_userPhtotArray) {
_userPhtotArray = [NSMutableArray array];
@@ -353,4 +633,11 @@
return _userPhtotArray;
}
- (UserPhoto *)avatarPhoto {
if (!_avatarPhoto) {
_avatarPhoto = [[UserPhoto alloc] init];
}
return _avatarPhoto;
}
@end

View File

@@ -47,10 +47,6 @@ NS_ASSUME_NONNULL_BEGIN
/// @param electorUserId 自己的uid
+ (void)roomDatingPickUser:(HttpRequestHelperCompletion)completion roomUserId:(NSString *)roomUserId chosenUserId:(NSString *)chosenUserId electorUserId:(NSString *)electorUserId;
/// 上传访问用户的记录
/// @param completion 完成
/// @param uid 被访问的用户uid
+ (void)uploadVisitUserCompletion:(HttpRequestHelperCompletion)completion uid:(NSString *)uid;
@end