个人中心添加家族
This commit is contained in:
@@ -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 */,
|
||||
|
22
xplan-ios/Assets.xcassets/Mine/mine_userinfo_header_shadow_bg.imageset/Contents.json
vendored
Normal file
22
xplan-ios/Assets.xcassets/Mine/mine_userinfo_header_shadow_bg.imageset/Contents.json
vendored
Normal 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 |
@@ -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
|
||||
|
@@ -11,7 +11,8 @@
|
||||
|
||||
+ (NSDictionary *)objectClassInArray {
|
||||
return @{
|
||||
@"privatePhoto":UserPhoto.class
|
||||
@"privatePhoto":UserPhoto.class,
|
||||
@"userGiftWall":UserGiftWallInfoModel.class
|
||||
};
|
||||
}
|
||||
|
||||
|
@@ -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";
|
||||
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
27
xplan-ios/Main/Mine/Model/UserInfo/UserGiftWallInfoModel.h
Normal file
27
xplan-ios/Main/Mine/Model/UserInfo/UserGiftWallInfoModel.h
Normal 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
|
12
xplan-ios/Main/Mine/Model/UserInfo/UserGiftWallInfoModel.m
Normal file
12
xplan-ios/Main/Mine/Model/UserInfo/UserGiftWallInfoModel.m
Normal file
@@ -0,0 +1,12 @@
|
||||
//
|
||||
// UserGiftWallInfoModel.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2022/4/14.
|
||||
//
|
||||
|
||||
#import "UserGiftWallInfoModel.h"
|
||||
|
||||
@implementation UserGiftWallInfoModel
|
||||
|
||||
@end
|
21
xplan-ios/Main/Mine/Presenter/XPMineUserDataPresenter.h
Normal file
21
xplan-ios/Main/Mine/Presenter/XPMineUserDataPresenter.h
Normal 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
|
33
xplan-ios/Main/Mine/Presenter/XPMineUserDataPresenter.m
Normal file
33
xplan-ios/Main/Mine/Presenter/XPMineUserDataPresenter.m
Normal 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
|
@@ -27,6 +27,7 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
///@param targetUid 被访问用户的uid
|
||||
- (void)visitUser:(NSString *)targetUid;
|
||||
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
19
xplan-ios/Main/Mine/Protocol/XPMineUserDataProtocol.h
Normal file
19
xplan-ios/Main/Mine/Protocol/XPMineUserDataProtocol.h
Normal 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
|
@@ -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
|
@@ -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
|
@@ -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
|
@@ -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
|
@@ -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
|
@@ -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
|
@@ -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
|
@@ -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
|
@@ -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
|
@@ -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
|
@@ -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
|
@@ -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
|
@@ -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
|
219
xplan-ios/Main/Mine/View/MineInfo/XPMineUserDataViewController.m
Normal file
219
xplan-ios/Main/Mine/View/MineInfo/XPMineUserDataViewController.m
Normal 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
|
@@ -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
|
@@ -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
|
@@ -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
|
||||
|
@@ -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;
|
||||
}
|
||||
|
||||
- (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;
|
||||
}
|
||||
cell.userInfo = self.userInfo;
|
||||
return cell;
|
||||
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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
@@ -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
|
@@ -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];
|
||||
|
@@ -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,67 +94,164 @@
|
||||
}
|
||||
|
||||
#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) {
|
||||
make.top.right.mas_equalTo(self);
|
||||
make.width.mas_equalTo(85);
|
||||
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.reviewIcon mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.right.mas_equalTo(self);
|
||||
make.width.mas_equalTo(85);
|
||||
make.height.mas_equalTo(50);
|
||||
}];
|
||||
|
||||
[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,21 +265,10 @@
|
||||
}
|
||||
|
||||
#pragma mark - SDCycleScrollViewDelegate
|
||||
/** 如果你需要自定义cell样式,请在实现此代理方法返回你的自定义cell的class。 */
|
||||
- (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];
|
||||
self.reviewIcon.hidden = !photo.isReview;
|
||||
UserPhoto * photo = [self.userPhtotArray objectAtIndex:index];
|
||||
self.reviewIcon.hidden = !photo.isReview;
|
||||
}
|
||||
|
||||
// 轮播图点击
|
||||
@@ -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];
|
||||
@@ -242,27 +344,55 @@
|
||||
self.imageUrls = imageUrls;
|
||||
self.cycleScrollView.imageURLStringsGroup = imageUrls;
|
||||
self.pageLabel.text = [NSString stringWithFormat:@"1/%lu",(unsigned long)imageUrls.count];
|
||||
// 要初始化一下当前的审核状态
|
||||
self.reviewIcon.hidden = ![self.userInfo.privatePhoto objectAtIndex:0].isReview;
|
||||
// 要初始化一下当前的审核状态
|
||||
self.reviewIcon.hidden = ![self.userInfo.privatePhoto objectAtIndex:0].isReview;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (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;
|
||||
@@ -338,14 +490,142 @@
|
||||
}
|
||||
|
||||
- (UIImageView *)reviewIcon {
|
||||
if (!_reviewIcon) {
|
||||
_reviewIcon = [[UIImageView alloc] init];
|
||||
_reviewIcon.image = [UIImage imageNamed:@"mine_album_reviewing"];
|
||||
_reviewIcon.hidden = YES;
|
||||
}
|
||||
return _reviewIcon;
|
||||
if (!_reviewIcon) {
|
||||
_reviewIcon = [[UIImageView alloc] init];
|
||||
_reviewIcon.image = [UIImage imageNamed:@"mine_album_reviewing"];
|
||||
_reviewIcon.hidden = YES;
|
||||
}
|
||||
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
|
||||
|
@@ -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
|
||||
|
||||
|
Reference in New Issue
Block a user