公会主页和家族主页
@@ -246,6 +246,28 @@
|
||||
9BEE3D11278584FE00C83219 /* XPNobleCenterEmptyView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BEE3D10278584FE00C83219 /* XPNobleCenterEmptyView.m */; };
|
||||
9BEE3D142785884A00C83219 /* XPNobleCenterResidueView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BEE3D132785884A00C83219 /* XPNobleCenterResidueView.m */; };
|
||||
9BEE3D1727858E5700C83219 /* XPNobleAuthorityDescView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BEE3D1627858E5700C83219 /* XPNobleAuthorityDescView.m */; };
|
||||
E800805A27FD34DE0055A8AB /* XPMineClanViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E800805927FD34DE0055A8AB /* XPMineClanViewController.m */; };
|
||||
E800805D27FD34E90055A8AB /* XPMineGuildViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E800805C27FD34E90055A8AB /* XPMineGuildViewController.m */; };
|
||||
E800806227FD373D0055A8AB /* XPClanMemberTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E800806127FD373D0055A8AB /* XPClanMemberTableViewCell.m */; };
|
||||
E800806527FD37A20055A8AB /* XPGuildHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = E800806427FD37A20055A8AB /* XPGuildHeaderView.m */; };
|
||||
E800806827FD3B520055A8AB /* XPClanMenuView.m in Sources */ = {isa = PBXBuildFile; fileRef = E800806727FD3B520055A8AB /* XPClanMenuView.m */; };
|
||||
E800806B27FD42B00055A8AB /* XPClanRoomCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E800806A27FD42B00055A8AB /* XPClanRoomCollectionViewCell.m */; };
|
||||
E800806E27FD6BF40055A8AB /* XPGuildPresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = E800806D27FD6BF40055A8AB /* XPGuildPresenter.m */; };
|
||||
E800807227FD6C3D0055A8AB /* XPClanPresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = E800807127FD6C3D0055A8AB /* XPClanPresenter.m */; };
|
||||
E800807627FD6D930055A8AB /* Api+Guild.m in Sources */ = {isa = PBXBuildFile; fileRef = E800807527FD6D930055A8AB /* Api+Guild.m */; };
|
||||
E800807927FD84560055A8AB /* ClanInfoModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E800807827FD84560055A8AB /* ClanInfoModel.m */; };
|
||||
E800807C27FD84980055A8AB /* GuildInfoModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E800807B27FD84980055A8AB /* GuildInfoModel.m */; };
|
||||
E800807F27FD859E0055A8AB /* ClanDetailInfoModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E800807E27FD859E0055A8AB /* ClanDetailInfoModel.m */; };
|
||||
E800808527FD8FC20055A8AB /* ClanMemberDetailInfoModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E800808427FD8FC20055A8AB /* ClanMemberDetailInfoModel.m */; };
|
||||
E800808827FDA5100055A8AB /* XPClanSectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = E800808727FDA5100055A8AB /* XPClanSectionView.m */; };
|
||||
E801274027E323C800BAC3F2 /* XPRoomPKViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E801273F27E323C800BAC3F2 /* XPRoomPKViewController.m */; };
|
||||
E801274327E323E500BAC3F2 /* XPRoomPKPresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = E801274227E323E500BAC3F2 /* XPRoomPKPresenter.m */; };
|
||||
E801274727E3241700BAC3F2 /* Api+RoomPK.m in Sources */ = {isa = PBXBuildFile; fileRef = E801274627E3241700BAC3F2 /* Api+RoomPK.m */; };
|
||||
E801274B27E327DA00BAC3F2 /* XPRoomPKTypeTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E801274A27E327DA00BAC3F2 /* XPRoomPKTypeTableViewCell.m */; };
|
||||
E801274E27E3280000BAC3F2 /* XPRoomPKVoteTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E801274D27E3280000BAC3F2 /* XPRoomPKVoteTableViewCell.m */; };
|
||||
E801275127E3281100BAC3F2 /* XPRoomPKTimeTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E801275027E3281100BAC3F2 /* XPRoomPKTimeTableViewCell.m */; };
|
||||
E801275527E3326000BAC3F2 /* XPRoomPKUserView.m in Sources */ = {isa = PBXBuildFile; fileRef = E801275427E3326000BAC3F2 /* XPRoomPKUserView.m */; };
|
||||
E801275827E347FD00BAC3F2 /* RoomPKRecordModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E801275727E347FD00BAC3F2 /* RoomPKRecordModel.m */; };
|
||||
E80487652717DDD9008595F2 /* XPRoomMenuItem.m in Sources */ = {isa = PBXBuildFile; fileRef = E80487642717DDD9008595F2 /* XPRoomMenuItem.m */; };
|
||||
E80CBDE627D0C1CF001E1EC2 /* HomeMenuSourceModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E80CBDE527D0C1CF001E1EC2 /* HomeMenuSourceModel.m */; };
|
||||
E80CBDEA27D0C53F001E1EC2 /* XPWeakTimer.m in Sources */ = {isa = PBXBuildFile; fileRef = E80CBDE927D0C53F001E1EC2 /* XPWeakTimer.m */; };
|
||||
@@ -1114,6 +1136,53 @@
|
||||
9BEE3D1627858E5700C83219 /* XPNobleAuthorityDescView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPNobleAuthorityDescView.m; sourceTree = "<group>"; };
|
||||
B66633E061B1B34177CD011C /* Pods-xplan-ios.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-xplan-ios.release.xcconfig"; path = "Target Support Files/Pods-xplan-ios/Pods-xplan-ios.release.xcconfig"; sourceTree = "<group>"; };
|
||||
CACF623970097D653132D69A /* Pods_xplan_ios.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_xplan_ios.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
E800805827FD34DE0055A8AB /* XPMineClanViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineClanViewController.h; sourceTree = "<group>"; };
|
||||
E800805927FD34DE0055A8AB /* XPMineClanViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineClanViewController.m; sourceTree = "<group>"; };
|
||||
E800805B27FD34E90055A8AB /* XPMineGuildViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineGuildViewController.h; sourceTree = "<group>"; };
|
||||
E800805C27FD34E90055A8AB /* XPMineGuildViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineGuildViewController.m; sourceTree = "<group>"; };
|
||||
E800806027FD373D0055A8AB /* XPClanMemberTableViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPClanMemberTableViewCell.h; sourceTree = "<group>"; };
|
||||
E800806127FD373D0055A8AB /* XPClanMemberTableViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPClanMemberTableViewCell.m; sourceTree = "<group>"; };
|
||||
E800806327FD37A20055A8AB /* XPGuildHeaderView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPGuildHeaderView.h; sourceTree = "<group>"; };
|
||||
E800806427FD37A20055A8AB /* XPGuildHeaderView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPGuildHeaderView.m; sourceTree = "<group>"; };
|
||||
E800806627FD3B520055A8AB /* XPClanMenuView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPClanMenuView.h; sourceTree = "<group>"; };
|
||||
E800806727FD3B520055A8AB /* XPClanMenuView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPClanMenuView.m; sourceTree = "<group>"; };
|
||||
E800806927FD42B00055A8AB /* XPClanRoomCollectionViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPClanRoomCollectionViewCell.h; sourceTree = "<group>"; };
|
||||
E800806A27FD42B00055A8AB /* XPClanRoomCollectionViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPClanRoomCollectionViewCell.m; sourceTree = "<group>"; };
|
||||
E800806C27FD6BF40055A8AB /* XPGuildPresenter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPGuildPresenter.h; sourceTree = "<group>"; };
|
||||
E800806D27FD6BF40055A8AB /* XPGuildPresenter.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPGuildPresenter.m; sourceTree = "<group>"; };
|
||||
E800806F27FD6C1B0055A8AB /* XPGuildProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPGuildProtocol.h; sourceTree = "<group>"; };
|
||||
E800807027FD6C3D0055A8AB /* XPClanPresenter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPClanPresenter.h; sourceTree = "<group>"; };
|
||||
E800807127FD6C3D0055A8AB /* XPClanPresenter.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPClanPresenter.m; sourceTree = "<group>"; };
|
||||
E800807327FD6C590055A8AB /* XPClanProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPClanProtocol.h; sourceTree = "<group>"; };
|
||||
E800807427FD6D930055A8AB /* Api+Guild.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Api+Guild.h"; sourceTree = "<group>"; };
|
||||
E800807527FD6D930055A8AB /* Api+Guild.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "Api+Guild.m"; sourceTree = "<group>"; };
|
||||
E800807727FD84560055A8AB /* ClanInfoModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ClanInfoModel.h; sourceTree = "<group>"; };
|
||||
E800807827FD84560055A8AB /* ClanInfoModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ClanInfoModel.m; sourceTree = "<group>"; };
|
||||
E800807A27FD84980055A8AB /* GuildInfoModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GuildInfoModel.h; sourceTree = "<group>"; };
|
||||
E800807B27FD84980055A8AB /* GuildInfoModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = GuildInfoModel.m; sourceTree = "<group>"; };
|
||||
E800807D27FD859E0055A8AB /* ClanDetailInfoModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ClanDetailInfoModel.h; sourceTree = "<group>"; };
|
||||
E800807E27FD859E0055A8AB /* ClanDetailInfoModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ClanDetailInfoModel.m; sourceTree = "<group>"; };
|
||||
E800808327FD8FC20055A8AB /* ClanMemberDetailInfoModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ClanMemberDetailInfoModel.h; sourceTree = "<group>"; };
|
||||
E800808427FD8FC20055A8AB /* ClanMemberDetailInfoModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ClanMemberDetailInfoModel.m; sourceTree = "<group>"; };
|
||||
E800808627FDA5100055A8AB /* XPClanSectionView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPClanSectionView.h; sourceTree = "<group>"; };
|
||||
E800808727FDA5100055A8AB /* XPClanSectionView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPClanSectionView.m; sourceTree = "<group>"; };
|
||||
E801273E27E323C800BAC3F2 /* XPRoomPKViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomPKViewController.h; sourceTree = "<group>"; };
|
||||
E801273F27E323C800BAC3F2 /* XPRoomPKViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomPKViewController.m; sourceTree = "<group>"; };
|
||||
E801274127E323E500BAC3F2 /* XPRoomPKPresenter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomPKPresenter.h; sourceTree = "<group>"; };
|
||||
E801274227E323E500BAC3F2 /* XPRoomPKPresenter.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomPKPresenter.m; sourceTree = "<group>"; };
|
||||
E801274427E3240000BAC3F2 /* XPRoomPKProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomPKProtocol.h; sourceTree = "<group>"; };
|
||||
E801274527E3241700BAC3F2 /* Api+RoomPK.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Api+RoomPK.h"; sourceTree = "<group>"; };
|
||||
E801274627E3241700BAC3F2 /* Api+RoomPK.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "Api+RoomPK.m"; sourceTree = "<group>"; };
|
||||
E801274927E327DA00BAC3F2 /* XPRoomPKTypeTableViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomPKTypeTableViewCell.h; sourceTree = "<group>"; };
|
||||
E801274A27E327DA00BAC3F2 /* XPRoomPKTypeTableViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomPKTypeTableViewCell.m; sourceTree = "<group>"; };
|
||||
E801274C27E3280000BAC3F2 /* XPRoomPKVoteTableViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomPKVoteTableViewCell.h; sourceTree = "<group>"; };
|
||||
E801274D27E3280000BAC3F2 /* XPRoomPKVoteTableViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomPKVoteTableViewCell.m; sourceTree = "<group>"; };
|
||||
E801274F27E3281100BAC3F2 /* XPRoomPKTimeTableViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomPKTimeTableViewCell.h; sourceTree = "<group>"; };
|
||||
E801275027E3281100BAC3F2 /* XPRoomPKTimeTableViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomPKTimeTableViewCell.m; sourceTree = "<group>"; };
|
||||
E801275327E3326000BAC3F2 /* XPRoomPKUserView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomPKUserView.h; sourceTree = "<group>"; };
|
||||
E801275427E3326000BAC3F2 /* XPRoomPKUserView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomPKUserView.m; sourceTree = "<group>"; };
|
||||
E801275627E347FD00BAC3F2 /* RoomPKRecordModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RoomPKRecordModel.h; sourceTree = "<group>"; };
|
||||
E801275727E347FD00BAC3F2 /* RoomPKRecordModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RoomPKRecordModel.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>"; };
|
||||
E80CBDE427D0C1CF001E1EC2 /* HomeMenuSourceModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HomeMenuSourceModel.h; sourceTree = "<group>"; };
|
||||
@@ -3267,6 +3336,216 @@
|
||||
path = Pods;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
E800805227FD33950055A8AB /* Guild */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
E800805627FD33E90055A8AB /* Model */,
|
||||
E800805727FD340F0055A8AB /* Api */,
|
||||
E800805527FD33DF0055A8AB /* View */,
|
||||
E800805427FD33CC0055A8AB /* Presenter */,
|
||||
E800805327FD33C30055A8AB /* Protocol */,
|
||||
);
|
||||
path = Guild;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
E800805327FD33C30055A8AB /* Protocol */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
E800806F27FD6C1B0055A8AB /* XPGuildProtocol.h */,
|
||||
E800807327FD6C590055A8AB /* XPClanProtocol.h */,
|
||||
);
|
||||
path = Protocol;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
E800805427FD33CC0055A8AB /* Presenter */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
E800806C27FD6BF40055A8AB /* XPGuildPresenter.h */,
|
||||
E800806D27FD6BF40055A8AB /* XPGuildPresenter.m */,
|
||||
E800807027FD6C3D0055A8AB /* XPClanPresenter.h */,
|
||||
E800807127FD6C3D0055A8AB /* XPClanPresenter.m */,
|
||||
);
|
||||
path = Presenter;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
E800805527FD33DF0055A8AB /* View */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
E800805F27FD36EB0055A8AB /* SubViews */,
|
||||
E800805E27FD36E30055A8AB /* Cell */,
|
||||
E800805827FD34DE0055A8AB /* XPMineClanViewController.h */,
|
||||
E800805927FD34DE0055A8AB /* XPMineClanViewController.m */,
|
||||
E800805B27FD34E90055A8AB /* XPMineGuildViewController.h */,
|
||||
E800805C27FD34E90055A8AB /* XPMineGuildViewController.m */,
|
||||
);
|
||||
path = View;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
E800805627FD33E90055A8AB /* Model */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
E800807D27FD859E0055A8AB /* ClanDetailInfoModel.h */,
|
||||
E800807E27FD859E0055A8AB /* ClanDetailInfoModel.m */,
|
||||
E800807727FD84560055A8AB /* ClanInfoModel.h */,
|
||||
E800807827FD84560055A8AB /* ClanInfoModel.m */,
|
||||
E800807A27FD84980055A8AB /* GuildInfoModel.h */,
|
||||
E800807B27FD84980055A8AB /* GuildInfoModel.m */,
|
||||
E800808327FD8FC20055A8AB /* ClanMemberDetailInfoModel.h */,
|
||||
E800808427FD8FC20055A8AB /* ClanMemberDetailInfoModel.m */,
|
||||
);
|
||||
path = Model;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
E800805727FD340F0055A8AB /* Api */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
E800807427FD6D930055A8AB /* Api+Guild.h */,
|
||||
E800807527FD6D930055A8AB /* Api+Guild.m */,
|
||||
);
|
||||
path = Api;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
E800805E27FD36E30055A8AB /* Cell */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
E800806027FD373D0055A8AB /* XPClanMemberTableViewCell.h */,
|
||||
E800806127FD373D0055A8AB /* XPClanMemberTableViewCell.m */,
|
||||
E800806927FD42B00055A8AB /* XPClanRoomCollectionViewCell.h */,
|
||||
E800806A27FD42B00055A8AB /* XPClanRoomCollectionViewCell.m */,
|
||||
);
|
||||
path = Cell;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
E800805F27FD36EB0055A8AB /* SubViews */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
E800806327FD37A20055A8AB /* XPGuildHeaderView.h */,
|
||||
E800806427FD37A20055A8AB /* XPGuildHeaderView.m */,
|
||||
E800806627FD3B520055A8AB /* XPClanMenuView.h */,
|
||||
E800806727FD3B520055A8AB /* XPClanMenuView.m */,
|
||||
E800808627FDA5100055A8AB /* XPClanSectionView.h */,
|
||||
E800808727FDA5100055A8AB /* XPClanSectionView.m */,
|
||||
);
|
||||
path = SubViews;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
E801273827E322D700BAC3F2 /* RoomPK */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
E801273D27E3230F00BAC3F2 /* Model */,
|
||||
E801273C27E3230400BAC3F2 /* Api */,
|
||||
E801273B27E322FE00BAC3F2 /* View */,
|
||||
E801273A27E322F500BAC3F2 /* Presenter */,
|
||||
E801273927E322E900BAC3F2 /* Protocol */,
|
||||
);
|
||||
path = RoomPK;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
E801273927E322E900BAC3F2 /* Protocol */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
E801274427E3240000BAC3F2 /* XPRoomPKProtocol.h */,
|
||||
E8664EE027E45EE6000171BA /* XPRoomPKRecordProtocol.h */,
|
||||
);
|
||||
path = Protocol;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
E801273A27E322F500BAC3F2 /* Presenter */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
E801274127E323E500BAC3F2 /* XPRoomPKPresenter.h */,
|
||||
E801274227E323E500BAC3F2 /* XPRoomPKPresenter.m */,
|
||||
E8664EDD27E45EC7000171BA /* XPRoomPKRecordPresenter.h */,
|
||||
E8664EDE27E45EC7000171BA /* XPRoomPKRecordPresenter.m */,
|
||||
);
|
||||
path = Presenter;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
E801273B27E322FE00BAC3F2 /* View */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
E801275227E3321C00BAC3F2 /* SubViews */,
|
||||
E801274827E3278E00BAC3F2 /* Cell */,
|
||||
E801273E27E323C800BAC3F2 /* XPRoomPKViewController.h */,
|
||||
E801273F27E323C800BAC3F2 /* XPRoomPKViewController.m */,
|
||||
E8664ED427E434D5000171BA /* XPRoomPKRecordViewController.h */,
|
||||
E8664ED527E434D5000171BA /* XPRoomPKRecordViewController.m */,
|
||||
E81AF32327F1D5B8003B9E43 /* XPRoomPKProgressView.h */,
|
||||
E81AF32427F1D5B8003B9E43 /* XPRoomPKProgressView.m */,
|
||||
E80A086327F318620027B30C /* XPRoomPKPlayingView.h */,
|
||||
E80A086427F318620027B30C /* XPRoomPKPlayingView.m */,
|
||||
E84843AD27F59E7E0050D365 /* XPRoomPKResultView.h */,
|
||||
E84843AE27F59E7E0050D365 /* XPRoomPKResultView.m */,
|
||||
);
|
||||
path = View;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
E801273C27E3230400BAC3F2 /* Api */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
E801274527E3241700BAC3F2 /* Api+RoomPK.h */,
|
||||
E801274627E3241700BAC3F2 /* Api+RoomPK.m */,
|
||||
);
|
||||
path = Api;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
E801273D27E3230F00BAC3F2 /* Model */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
E801275627E347FD00BAC3F2 /* RoomPKRecordModel.h */,
|
||||
E801275727E347FD00BAC3F2 /* RoomPKRecordModel.m */,
|
||||
E8664EE427E482EF000171BA /* RoomPKTeamModel.h */,
|
||||
E8664EE527E482EF000171BA /* RoomPKTeamModel.m */,
|
||||
E8664ED127E4258A000171BA /* RoomPKTimeItemModel.h */,
|
||||
E8664ED227E4258A000171BA /* RoomPKTimeItemModel.m */,
|
||||
E8A88D2B27E81E8700CA8837 /* RoomPKChooseUserModel.h */,
|
||||
E8A88D2C27E81E8700CA8837 /* RoomPKChooseUserModel.m */,
|
||||
E8A88D2E27E85EEA00CA8837 /* RoomPKInfoModel.h */,
|
||||
E8A88D2F27E85EEA00CA8837 /* RoomPKInfoModel.m */,
|
||||
E80A086027F2AC190027B30C /* RoomPKDetailInfoModel.h */,
|
||||
E80A086127F2AC190027B30C /* RoomPKDetailInfoModel.m */,
|
||||
);
|
||||
path = Model;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
E801274827E3278E00BAC3F2 /* Cell */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
E801274927E327DA00BAC3F2 /* XPRoomPKTypeTableViewCell.h */,
|
||||
E801274A27E327DA00BAC3F2 /* XPRoomPKTypeTableViewCell.m */,
|
||||
E801274C27E3280000BAC3F2 /* XPRoomPKVoteTableViewCell.h */,
|
||||
E801274D27E3280000BAC3F2 /* XPRoomPKVoteTableViewCell.m */,
|
||||
E801274F27E3281100BAC3F2 /* XPRoomPKTimeTableViewCell.h */,
|
||||
E801275027E3281100BAC3F2 /* XPRoomPKTimeTableViewCell.m */,
|
||||
E8664ED727E4355C000171BA /* XPRoomPKRecordTableViewCell.h */,
|
||||
E8664ED827E4355C000171BA /* XPRoomPKRecordTableViewCell.m */,
|
||||
E8664EDA27E43632000171BA /* XPRoomPKEmptyTableViewCell.h */,
|
||||
E8664EDB27E43632000171BA /* XPRoomPKEmptyTableViewCell.m */,
|
||||
E8A88D2827E81C8600CA8837 /* XPRoomPKUserCollectionViewCell.h */,
|
||||
E8A88D2927E81C8600CA8837 /* XPRoomPKUserCollectionViewCell.m */,
|
||||
);
|
||||
path = Cell;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
E801275227E3321C00BAC3F2 /* SubViews */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
E801275327E3326000BAC3F2 /* XPRoomPKUserView.h */,
|
||||
E801275427E3326000BAC3F2 /* XPRoomPKUserView.m */,
|
||||
E8664ECE27E42238000171BA /* XPRoomPKTimePickerView.h */,
|
||||
E8664ECF27E42238000171BA /* XPRoomPKTimePickerView.m */,
|
||||
E8664EE127E47711000171BA /* XPRoomPKRecordNickView.h */,
|
||||
E8664EE227E47711000171BA /* XPRoomPKRecordNickView.m */,
|
||||
E8A88D2527E8193400CA8837 /* XPRoomPKSelectUserView.h */,
|
||||
E8A88D2627E8193400CA8837 /* XPRoomPKSelectUserView.m */,
|
||||
E81AF32627F1EE69003B9E43 /* XPRoomPKPanelUserView.h */,
|
||||
E81AF32727F1EE69003B9E43 /* XPRoomPKPanelUserView.m */,
|
||||
E84843B027F5A0740050D365 /* XPRomPKResultTitleLabel.h */,
|
||||
E84843B127F5A0740050D365 /* XPRomPKResultTitleLabel.m */,
|
||||
);
|
||||
path = SubViews;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
E804875F2717DD70008595F2 /* Model */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
@@ -5060,6 +5339,7 @@
|
||||
E8E70D7126F2EB4900F03460 /* View */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
E800805227FD33950055A8AB /* Guild */,
|
||||
E896EF912771AA6C00AD2CC1 /* Friend */,
|
||||
9BC5C8EA277AFEDC007C8719 /* Noble */,
|
||||
9B92A34B2798068700AD168F /* SkillCard */,
|
||||
@@ -5429,6 +5709,7 @@
|
||||
E88B5CB226FB1CFF00DA9178 /* XPMineTeenagerProtocol.h in Sources */,
|
||||
9BD9A18027A0EFC7004186FE /* XPMineVisitorTableViewCell.m in Sources */,
|
||||
E824546626F5FF6000BE8163 /* XPMineResetPayPasswordProtocol.h in Sources */,
|
||||
E800807227FD6C3D0055A8AB /* XPClanPresenter.m in Sources */,
|
||||
E89DA66427005932008483C1 /* XPIAPHelper.m in Sources */,
|
||||
E824545E26F5EF2200BE8163 /* XPMineVerifIdentityProtocol.h in Sources */,
|
||||
E824545326F5CEAD00BE8163 /* XPMineModifPayProtocol.h in Sources */,
|
||||
@@ -5478,6 +5759,8 @@
|
||||
E8C6FFD42754AA87004DC9F0 /* XPNoteView.m in Sources */,
|
||||
9B2EA7C628041EFC00ED17BF /* XPAnchorPkPanelView.m in Sources */,
|
||||
E84150BB27747BAF00A7F548 /* XPFirstRechargePresenter.m in Sources */,
|
||||
E8A88D2D27E81E8700CA8837 /* RoomPKChooseUserModel.m in Sources */,
|
||||
E800806B27FD42B00055A8AB /* XPClanRoomCollectionViewCell.m in Sources */,
|
||||
9BEE3D1727858E5700C83219 /* XPNobleAuthorityDescView.m in Sources */,
|
||||
E82325F9274E2E42003A3332 /* Api+UserCard.m in Sources */,
|
||||
9BD9A17C27A0EE24004186FE /* XPMineVisitorViewController.m in Sources */,
|
||||
@@ -5513,6 +5796,7 @@
|
||||
E82325F5274E2E09003A3332 /* XPUserCardPresenter.m in Sources */,
|
||||
E880B39E278BD49E00A83B0D /* XPAcrossRoomPKViewController.m in Sources */,
|
||||
E8AC723D26F4B6AA007D6E91 /* XPLoginBindPhoneResultViewController.m in Sources */,
|
||||
E800806527FD37A20055A8AB /* XPGuildHeaderView.m in Sources */,
|
||||
9B2A12D52783EEC700CED41B /* XPNobleCenterTableHeadView.m in Sources */,
|
||||
9BEE3D11278584FE00C83219 /* XPNobleCenterEmptyView.m in Sources */,
|
||||
9BCF585F27995363008401A4 /* XPSkillCardSelectPropView.m in Sources */,
|
||||
@@ -5577,6 +5861,7 @@
|
||||
E82325E6274CCAFA003A3332 /* XPShareInfoModel.m in Sources */,
|
||||
189DD55A26DE39D200AB55B1 /* BaseMvpPresenter.m in Sources */,
|
||||
E8F9168E27ECA69500F10D8F /* HomeLittleGameRoomModel.m in Sources */,
|
||||
E800805D27FD34E90055A8AB /* XPMineGuildViewController.m in Sources */,
|
||||
9BC5C8F9277B02EA007C8719 /* Api+NobleCenter.m in Sources */,
|
||||
180806D827293794001FD836 /* NSObject+MJExtension.m in Sources */,
|
||||
E88863D3278ED4C0004BCFAB /* Timestamp.m in Sources */,
|
||||
@@ -5609,6 +5894,7 @@
|
||||
E8C6FFCC27548120004DC9F0 /* Api+Home.m in Sources */,
|
||||
186A534E26FC6ED900D67B2C /* TTPopupService.m in Sources */,
|
||||
18A61BD7274F7F6900A09A54 /* NetImageConfig.m in Sources */,
|
||||
E800806E27FD6BF40055A8AB /* XPGuildPresenter.m in Sources */,
|
||||
E8C21501274B76F60079E6BF /* XPRoomAnimationHitView.m in Sources */,
|
||||
E8AC722426F47E5E007D6E91 /* XPMineFeedbackViewController.m in Sources */,
|
||||
E87E914E2796678D00A7B3F2 /* XPMineDressEmptyTableViewCell.m in Sources */,
|
||||
@@ -5641,6 +5927,7 @@
|
||||
E8C6FFD027548256004DC9F0 /* XPHomeListCollectionViewCell.m in Sources */,
|
||||
E84BF7DD277C765400EF8877 /* XPRoomRoleEmptyTableViewCell.m in Sources */,
|
||||
E8E5E1A027C36E3F00F457D8 /* HomeBannerInfoModel.m in Sources */,
|
||||
E800807F27FD859E0055A8AB /* ClanDetailInfoModel.m in Sources */,
|
||||
E8EEB8F426FC2050007C6EBA /* SDBrowserImageView.m in Sources */,
|
||||
E88863CC278EC336004BCFAB /* AcrossRoomPKPrizeModel.m in Sources */,
|
||||
E824544626F5934700BE8163 /* XPMinePayPwdPresenter.m in Sources */,
|
||||
@@ -5665,6 +5952,7 @@
|
||||
E8E5E19D27C36C3500F457D8 /* XPHomeMenuTableViewCell.m in Sources */,
|
||||
E8AC721026F43955007D6E91 /* UIImageConstant.m in Sources */,
|
||||
E81C27A026EEF83D0031E639 /* XPHtmlUrl.m in Sources */,
|
||||
E800807C27FD84980055A8AB /* GuildInfoModel.m in Sources */,
|
||||
E8A03DF0276303D40098D9EA /* XPCandyTreeRankTableViewCell.m in Sources */,
|
||||
9BCF58532798FDA1008401A4 /* XPSkillCardModel.m in Sources */,
|
||||
18E7B1B726E8B2D10064BC9B /* Api+Main.m in Sources */,
|
||||
@@ -5689,6 +5977,7 @@
|
||||
9B2EA7C02804037700ED17BF /* AnchorPKStageView.m in Sources */,
|
||||
E811FFF72742367B00918544 /* XPGiftEmptyCollectionViewCell.m in Sources */,
|
||||
E8A86E0827BA38DB001C21F9 /* UIImage+RW.m in Sources */,
|
||||
E800807927FD84560055A8AB /* ClanInfoModel.m in Sources */,
|
||||
189DD67E26E1FD8900AB55B1 /* UIImage+Utils.m in Sources */,
|
||||
E824545626F5E51900BE8163 /* XPMineVerifIdentityViewController.m in Sources */,
|
||||
E82D5C73276AE94800858D6D /* CarModel.m in Sources */,
|
||||
@@ -5729,10 +6018,12 @@
|
||||
E8A03DEC276301EF0098D9EA /* XPCandyTreeRankView.m in Sources */,
|
||||
E880B3A1278BD60C00A83B0D /* XPAcrossRoomPKSelectRoomView.m in Sources */,
|
||||
E8D48250278D68BA003C1D08 /* XPAcrpssRoomPKPanelView.m in Sources */,
|
||||
E800807627FD6D930055A8AB /* Api+Guild.m in Sources */,
|
||||
18F404C3276098F100A6C548 /* Api+Message.m in Sources */,
|
||||
E8C6FFED27550CC2004DC9F0 /* HomeSearchResultModel.m in Sources */,
|
||||
9BB549592782E6A30090CD26 /* XPNobleCenterPresenter.m in Sources */,
|
||||
9B85B6D7279FDABA00A0A1AC /* XPUserCardSkillCardView.m in Sources */,
|
||||
E800808827FDA5100055A8AB /* XPClanSectionView.m in Sources */,
|
||||
9B33E3CB27D85379003B0E62 /* UploadFile.m in Sources */,
|
||||
E8AEAEF327141C7C0017FCE0 /* XPRoomMessageContainerView.m in Sources */,
|
||||
9B1B729D28002264003FACE9 /* XPMineAnchorFansTeamModel.m in Sources */,
|
||||
@@ -5780,6 +6071,7 @@
|
||||
189DD56526DE465A00AB55B1 /* LoginViewController.m in Sources */,
|
||||
E824544B26F5BBB800BE8163 /* XPMineModifPayPwdViewController.m in Sources */,
|
||||
E81C1B2227705F950020D1E4 /* Api+ArrangeMic.m in Sources */,
|
||||
E800805A27FD34DE0055A8AB /* XPMineClanViewController.m in Sources */,
|
||||
E8ACEFF527C8EF0500F66D1A /* XPHomeHotRoomViewController.m in Sources */,
|
||||
E81EF6DC279AB5CC00FF3EDE /* XPLittleGameRoomOpenView.m in Sources */,
|
||||
E84150C227747BF700A7F548 /* FirstRechargeModel.m in Sources */,
|
||||
@@ -5817,6 +6109,7 @@
|
||||
18C17A5D26F338F300C48E11 /* XplanFBFlutterViewContainer.m in Sources */,
|
||||
E89DA67527009ACD008483C1 /* XPMineRechargeNavView.m in Sources */,
|
||||
1808072D2731598F001FD836 /* XPNetImageYYLabel.m in Sources */,
|
||||
E800806827FD3B520055A8AB /* XPClanMenuView.m in Sources */,
|
||||
E896EFAF2771AF0F00AD2CC1 /* XPMineFriendEmptyTableViewCell.m in Sources */,
|
||||
18486213271EA9DA005FC5DC /* RtcManager.m in Sources */,
|
||||
186A536926FC6F2E00D67B2C /* XPShareView.m in Sources */,
|
||||
@@ -5907,6 +6200,8 @@
|
||||
E80CBDE627D0C1CF001E1EC2 /* HomeMenuSourceModel.m in Sources */,
|
||||
189DD75026E21D9000AB55B1 /* GCDHelper.m in Sources */,
|
||||
E82D5C76276AEB5100858D6D /* NameplateModel.m in Sources */,
|
||||
E800806227FD373D0055A8AB /* XPClanMemberTableViewCell.m in Sources */,
|
||||
E81AF32827F1EE69003B9E43 /* XPRoomPKPanelUserView.m in Sources */,
|
||||
E84150BF27747BD300A7F548 /* Api+FirstRecharge.m in Sources */,
|
||||
E84B0E422727EE0A008818C6 /* XPRoomMessageHeaderView.m in Sources */,
|
||||
E8C6FFDD2754CF5D004DC9F0 /* HomeRecommendRoomModel.m in Sources */,
|
||||
@@ -5959,6 +6254,7 @@
|
||||
9BA8A47227C5D590000365A3 /* XPVoiceCardCircleLayer.m in Sources */,
|
||||
9B33E3D427D8A1A4003B0E62 /* XPSkillCardPlayerManager.m in Sources */,
|
||||
9BAA5FF0277A23F4007453F3 /* XPPermissionsViewController.m in Sources */,
|
||||
E800808527FD8FC20055A8AB /* ClanMemberDetailInfoModel.m in Sources */,
|
||||
E8412FA92779C2ED006E1101 /* XPRoomSettingItemModel.m in Sources */,
|
||||
9B92A3692798145000AD168F /* XPSkillCardTypeModel.m in Sources */,
|
||||
189DD58F26DF97E700AB55B1 /* LoginPresenter.m in Sources */,
|
||||
|
6
xplan-ios/Assets.xcassets/Mine/Guild/Contents.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "mine_guild_clan_header_anchor_income_bg@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "mine_guild_clan_header_anchor_income_bg@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 3.1 KiB |
22
xplan-ios/Assets.xcassets/Mine/Guild/mine_guild_clan_header_bg.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "mine_guild_clan_header_bg@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "mine_guild_clan_header_bg@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 110 KiB |
After Width: | Height: | Size: 226 KiB |
22
xplan-ios/Assets.xcassets/Mine/Guild/mine_guild_clan_header_income_bg.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "mine_guild_clan_header_income_bg@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "mine_guild_clan_header_income_bg@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 4.2 KiB |
After Width: | Height: | Size: 9.0 KiB |
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "mine_guild_clan_header_superadmin_set_bg@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "mine_guild_clan_header_superadmin_set_bg@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 2.5 KiB |
After Width: | Height: | Size: 5.3 KiB |
@@ -31,6 +31,8 @@ typedef NS_ENUM(NSInteger, XPMineItemType) {
|
||||
XPMineItemType_Skill_Card, ///技能卡
|
||||
XPMineItemType_Visitor,///访客记录
|
||||
XPMineItemType_FansTeam,///粉丝团
|
||||
///我的公会
|
||||
XPMineItemType_My_Guild,
|
||||
};
|
||||
|
||||
|
||||
|
@@ -74,6 +74,11 @@
|
||||
realNameItem.itemImageName = @"mine_normal_real_name_authentic";
|
||||
realNameItem.type = XPMineItemType_Real_Name_Authentic;
|
||||
realNameItem.cornerType = UIRectCornerBottomLeft | UIRectCornerBottomRight;
|
||||
|
||||
XPMineItemModel * guildItem = [[XPMineItemModel alloc] init];
|
||||
guildItem.itemName = @"我的工会";
|
||||
guildItem.itemImageName = @"mine_normal_my_guild";
|
||||
guildItem.type = XPMineItemType_My_Guild;
|
||||
|
||||
XPMineItemModel * visitorItem = [[XPMineItemModel alloc] init];
|
||||
visitorItem.itemName = @"访客记录";
|
||||
@@ -86,8 +91,8 @@
|
||||
fansTeamItem.itemName = @"粉丝团";
|
||||
fansTeamItem.itemImageName = @"mine_normal_anchor_fansTeam";
|
||||
fansTeamItem.type = XPMineItemType_FansTeam;
|
||||
|
||||
NSArray * array = @[myRoomItem,teenagerItem, myDressUp, inviteFriend, visitorItem, fansTeamItem, realNameItem];
|
||||
NSArray * array = @[myRoomItem,teenagerItem, myDressUp, guildItem, inviteFriend, visitorItem,fansTeamItem, realNameItem];
|
||||
|
||||
|
||||
[[self getView] onGetNormalItemsSuccess:array];
|
||||
}
|
||||
|
39
xplan-ios/Main/Mine/View/Guild/Api/Api+Guild.h
Normal file
@@ -0,0 +1,39 @@
|
||||
//
|
||||
// Api+Guild.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2022/4/6.
|
||||
//
|
||||
|
||||
#import "Api.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface Api (Guild)
|
||||
|
||||
/// 获取家族详情
|
||||
/// @param completion 完成
|
||||
/// @param uid 族长的uid
|
||||
+ (void)getClanDetailInfo:(HttpRequestHelperCompletion)completion uid:(NSString *)uid;
|
||||
|
||||
/// 获取工会中房间列表
|
||||
/// @param completion 完成
|
||||
/// @param clanId 工会的id
|
||||
+ (void)getRoomListInClan:(HttpRequestHelperCompletion)completion clanId:(NSString *)clanId;
|
||||
|
||||
/// 工会成员列表
|
||||
/// @param completion 完成
|
||||
/// @param uid 用户的uid
|
||||
/// @param page 当前的页数
|
||||
/// @param pageSize 每页多少个
|
||||
+ (void)getClanMemberList:(HttpRequestHelperCompletion)completion uid:(NSString *)uid page:(NSString *)page pageSize:(NSString *)pageSize;
|
||||
|
||||
/// 房间成员列表
|
||||
/// @param completion 完成
|
||||
/// @param hallId 用户的uid
|
||||
/// @param page 当前的页数
|
||||
/// @param pageSize 每页多少个
|
||||
+ (void)getGuildMemberList:(HttpRequestHelperCompletion)completion hallId:(NSString *)hallId page:(NSString *)page pageSize:(NSString *)pageSize;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
46
xplan-ios/Main/Mine/View/Guild/Api/Api+Guild.m
Normal file
@@ -0,0 +1,46 @@
|
||||
//
|
||||
// Api+Guild.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2022/4/6.
|
||||
//
|
||||
|
||||
#import "Api+Guild.h"
|
||||
|
||||
@implementation Api (Guild)
|
||||
|
||||
/// 获取家族详情
|
||||
/// @param completion 完成
|
||||
/// @param uid 族长的uid
|
||||
+ (void)getClanDetailInfo:(HttpRequestHelperCompletion)completion uid:(NSString *)uid {
|
||||
[self makeRequest:@"clan/getUserHallAndClan" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, uid, nil];
|
||||
}
|
||||
|
||||
/// 获取工会中房间列表
|
||||
/// @param completion 完成
|
||||
/// @param clanId 工会的id
|
||||
+ (void)getRoomListInClan:(HttpRequestHelperCompletion)completion clanId:(NSString *)clanId {
|
||||
[self makeRequest:@"clan/listHall" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__,clanId, nil];
|
||||
}
|
||||
|
||||
/// 工会成员列表
|
||||
/// @param completion 完成
|
||||
/// @param uid 用户的uid
|
||||
/// @param page 当前的页数
|
||||
/// @param pageSize 每页多少个
|
||||
+ (void)getClanMemberList:(HttpRequestHelperCompletion)completion uid:(NSString *)uid page:(NSString *)page pageSize:(NSString *)pageSize {
|
||||
[self makeRequest:@"clan/listMember" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, uid, page, pageSize,nil];
|
||||
}
|
||||
|
||||
/// 房间成员列表
|
||||
/// @param completion 完成
|
||||
/// @param hallId 用户的uid
|
||||
/// @param page 当前的页数
|
||||
/// @param pageSize 每页多少个
|
||||
+ (void)getGuildMemberList:(HttpRequestHelperCompletion)completion hallId:(NSString *)hallId page:(NSString *)page pageSize:(NSString *)pageSize {
|
||||
[self makeRequest:@"hall/getAllMembers" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, hallId, page, pageSize,nil];
|
||||
}
|
||||
|
||||
|
||||
|
||||
@end
|
22
xplan-ios/Main/Mine/View/Guild/Model/ClanDetailInfoModel.h
Normal file
@@ -0,0 +1,22 @@
|
||||
//
|
||||
// ClanDetailInfoModel.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2022/4/6.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "ClanInfoModel.h"
|
||||
#import "GuildInfoModel.h"
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface ClanDetailInfoModel : NSObject
|
||||
///家族信息
|
||||
@property (nonatomic,strong) ClanInfoModel *clan;
|
||||
///公会信息
|
||||
@property (nonatomic,strong) GuildInfoModel *hall;
|
||||
///当前用户是否是公会超管
|
||||
@property (nonatomic, assign) BOOL manageHall;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
12
xplan-ios/Main/Mine/View/Guild/Model/ClanDetailInfoModel.m
Normal file
@@ -0,0 +1,12 @@
|
||||
//
|
||||
// ClanDetailInfoModel.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2022/4/6.
|
||||
//
|
||||
|
||||
#import "ClanDetailInfoModel.h"
|
||||
|
||||
@implementation ClanDetailInfoModel
|
||||
|
||||
@end
|
37
xplan-ios/Main/Mine/View/Guild/Model/ClanInfoModel.h
Normal file
@@ -0,0 +1,37 @@
|
||||
//
|
||||
// ClanInfoModel.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2022/4/6.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface ClanInfoModel : NSObject
|
||||
///家族id
|
||||
@property (nonatomic, copy) NSString *cid;
|
||||
/// 族长 uid
|
||||
@property (nonatomic, copy) NSString *elderUid;
|
||||
/// 族长音游号
|
||||
@property (nonatomic, copy) NSString *elderErbanNo;
|
||||
/// 族长 名称
|
||||
@property (nonatomic, copy) NSString *elderName;
|
||||
/// 家族 名称
|
||||
@property (nonatomic, copy) NSString *name;
|
||||
///家族头像
|
||||
@property (nonatomic, copy) NSString *avatar;
|
||||
///家族成员数量
|
||||
@property (nonatomic, strong) NSNumber *clanMemberNum;
|
||||
///家族公会数量
|
||||
@property (nonatomic, strong) NSNumber *clanHallNum;
|
||||
///是否是家族族长
|
||||
@property (nonatomic, assign) BOOL userIsElder;
|
||||
///家族等级图片
|
||||
@property (nonatomic, copy) NSString *levelIcon;
|
||||
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
15
xplan-ios/Main/Mine/View/Guild/Model/ClanInfoModel.m
Normal file
@@ -0,0 +1,15 @@
|
||||
//
|
||||
// ClanInfoModel.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2022/4/6.
|
||||
//
|
||||
|
||||
#import "ClanInfoModel.h"
|
||||
|
||||
@implementation ClanInfoModel
|
||||
|
||||
+ (NSDictionary *)replacedKeyFromPropertyName {
|
||||
return @{@"cid":@"id"};
|
||||
}
|
||||
@end
|
@@ -0,0 +1,43 @@
|
||||
//
|
||||
// ClanMemberInfoModel.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2022/4/6.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "XPEnum.h"
|
||||
#import "GuildInfoModel.h"
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@class ClanMemberInfoModel;
|
||||
@interface ClanMemberDetailInfoModel : NSObject
|
||||
///总的个数
|
||||
@property (nonatomic,assign) NSInteger count;
|
||||
///用户的实体
|
||||
@property (nonatomic,strong) NSArray<ClanMemberInfoModel *> *members;
|
||||
@end
|
||||
|
||||
@interface ClanMemberInfoModel : NSObject
|
||||
///头像
|
||||
@property (nonatomic,copy) NSString *avatar;
|
||||
///平台id
|
||||
@property (nonatomic,copy) NSString *erbanNo;
|
||||
///性别
|
||||
@property (nonatomic,assign) GenderType gender;
|
||||
///公会名称
|
||||
@property (nonatomic, copy) NSString *hallName;
|
||||
///昵称
|
||||
@property (nonatomic,copy) NSString *nick;
|
||||
///类型
|
||||
@property (nonatomic,assign) GuildRoleType roleType;
|
||||
///用户的uid
|
||||
@property (nonatomic,copy) NSString *uid;
|
||||
//用户等级
|
||||
@property (nonatomic, copy) NSString *experUrl;
|
||||
///魅力等级
|
||||
@property (nonatomic, copy) NSString *charmUrl;
|
||||
@end
|
||||
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -0,0 +1,25 @@
|
||||
//
|
||||
// ClanMemberInfoModel.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2022/4/6.
|
||||
//
|
||||
|
||||
#import "ClanMemberDetailInfoModel.h"
|
||||
|
||||
@implementation ClanMemberDetailInfoModel
|
||||
+ (NSDictionary *)objectClassInArray {
|
||||
return @{@"members": ClanMemberInfoModel.class};
|
||||
}
|
||||
@end
|
||||
|
||||
|
||||
@implementation ClanMemberInfoModel
|
||||
|
||||
+ (NSDictionary *)replacedKeyFromPropertyName {
|
||||
return @{@"experUrl":@"userLevelVo.experUrl",
|
||||
@"charmUrl":@"userLevelVo.charmUrl"
|
||||
};
|
||||
}
|
||||
|
||||
@end
|
46
xplan-ios/Main/Mine/View/Guild/Model/GuildInfoModel.h
Normal file
@@ -0,0 +1,46 @@
|
||||
//
|
||||
// GuildInfoModel.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2022/4/6.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
typedef NS_ENUM(NSInteger, GuildRoleType) {
|
||||
///会长
|
||||
GuildRoleType_Owner = 1,
|
||||
///管理
|
||||
GuildRoleType_Manager,
|
||||
///普通成员
|
||||
GuildRoleType_Normal,
|
||||
///族长
|
||||
GuildRoleType_Elder,
|
||||
///组长 房主
|
||||
GuildRoleType_Elder_Owner,
|
||||
///超管
|
||||
GuildRoleType_Super_Admin
|
||||
};
|
||||
|
||||
@interface GuildInfoModel : NSObject
|
||||
///模厅id
|
||||
@property (nonatomic, copy) NSString *hallId;
|
||||
/// 模厅名称
|
||||
@property (nonatomic, copy) NSString *hallName;
|
||||
///角色类型
|
||||
@property (nonatomic, assign) GuildRoleType roleType;
|
||||
/// 厅主的 uid
|
||||
@property (nonatomic, copy) NSString *ownerUid;
|
||||
/// 厅主的 音游号
|
||||
@property (nonatomic, copy) NSString *ownerErbanNo;
|
||||
/// 模厅名称
|
||||
@property (nonatomic, copy) NSString *ownerNick;
|
||||
/// 模厅头像
|
||||
@property (nonatomic, copy) NSString *ownerAvatar;
|
||||
/// 模厅成员数量
|
||||
@property (nonatomic, strong) NSNumber *memberCount;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
12
xplan-ios/Main/Mine/View/Guild/Model/GuildInfoModel.m
Normal file
@@ -0,0 +1,12 @@
|
||||
//
|
||||
// GuildInfoModel.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2022/4/6.
|
||||
//
|
||||
|
||||
#import "GuildInfoModel.h"
|
||||
|
||||
@implementation GuildInfoModel
|
||||
|
||||
@end
|
28
xplan-ios/Main/Mine/View/Guild/Presenter/XPClanPresenter.h
Normal file
@@ -0,0 +1,28 @@
|
||||
//
|
||||
// XPClanPresenter.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2022/4/6.
|
||||
//
|
||||
|
||||
#import "BaseMvpPresenter.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface XPClanPresenter : BaseMvpPresenter
|
||||
/// 获取家族相亲的信息
|
||||
/// @param uid 用户的uid
|
||||
- (void)getClanDetailInfo:(NSString *)uid;
|
||||
|
||||
/// 获取家族成员的列表
|
||||
/// @param uid 族长的uid
|
||||
/// @param page 当前的页数
|
||||
/// @param pageSize 一页多少个
|
||||
- (void)getClanMemberList:(NSString *)uid page:(int)page pageSize:(NSInteger)pageSize state:(int)state;
|
||||
|
||||
/// 获取当前家族房间的列表
|
||||
/// @param clanId 族长的id
|
||||
- (void)getClanRoomList:(NSString *)clanId;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
47
xplan-ios/Main/Mine/View/Guild/Presenter/XPClanPresenter.m
Normal file
@@ -0,0 +1,47 @@
|
||||
//
|
||||
// XPClanPresenter.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2022/4/6.
|
||||
//
|
||||
|
||||
#import "XPClanPresenter.h"
|
||||
#import "XPClanProtocol.h"
|
||||
#import "Api+Guild.h"
|
||||
#import "ClanDetailInfoModel.h"
|
||||
#import "ClanMemberDetailInfoModel.h"
|
||||
|
||||
@implementation XPClanPresenter
|
||||
|
||||
/// 获取家族相亲的信息
|
||||
/// @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];
|
||||
}
|
||||
|
||||
/// 获取家族成员的列表
|
||||
/// @param uid 族长的uid
|
||||
/// @param page 当前的页数
|
||||
/// @param pageSize 一页多少个
|
||||
- (void)getClanMemberList:(NSString *)uid page:(int)page pageSize:(NSInteger)pageSize state:(int)state {
|
||||
NSString * pageStr = [NSString stringWithFormat:@"%d", page];
|
||||
NSString * pageSizeStr = [NSString stringWithFormat:@"%ld", pageSize];
|
||||
[Api getClanMemberList:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
|
||||
ClanMemberDetailInfoModel * model= [ClanMemberDetailInfoModel modelWithDictionary:data.data];
|
||||
[[self getView] getClanMemberListSuccess:model state:state];
|
||||
}] uid:uid page:pageStr pageSize:pageSizeStr];
|
||||
}
|
||||
|
||||
/// 获取当前家族房间的列表
|
||||
/// @param clanId 族长的id
|
||||
- (void)getClanRoomList:(NSString *)clanId {
|
||||
[Api getRoomListInClan:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
|
||||
NSArray * array = [GuildInfoModel modelsWithArray:data.data];
|
||||
[[self getView] getClanRoomListSuccess:array];
|
||||
}] clanId:clanId];
|
||||
}
|
||||
|
||||
@end
|
25
xplan-ios/Main/Mine/View/Guild/Presenter/XPGuildPresenter.h
Normal file
@@ -0,0 +1,25 @@
|
||||
//
|
||||
// XPGuildPresenter.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2022/4/6.
|
||||
//
|
||||
|
||||
#import "BaseMvpPresenter.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface XPGuildPresenter : BaseMvpPresenter
|
||||
/// 获取工会成员列表
|
||||
/// @param hallId 工会id
|
||||
/// @param page 当前的页数
|
||||
/// @param pageSize 一页多少个
|
||||
/// @param state 状态
|
||||
- (void)getGuildMemberList:(NSString *)hallId page:(int)page pageSize:(NSInteger)pageSize state:(int)state;
|
||||
|
||||
/// 获取家族相亲的信息
|
||||
/// @param uid 用户的uid
|
||||
- (void)getClanDetailInfo:(NSString *)uid;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
42
xplan-ios/Main/Mine/View/Guild/Presenter/XPGuildPresenter.m
Normal file
@@ -0,0 +1,42 @@
|
||||
//
|
||||
// XPGuildPresenter.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2022/4/6.
|
||||
//
|
||||
|
||||
#import "XPGuildPresenter.h"
|
||||
#import "Api+Guild.h"
|
||||
#import "ClanMemberDetailInfoModel.h"
|
||||
#import "ClanDetailInfoModel.h"
|
||||
#import "XPGuildProtocol.h"
|
||||
|
||||
@implementation XPGuildPresenter
|
||||
|
||||
|
||||
/// 获取工会成员列表
|
||||
/// @param hallId 工会id
|
||||
/// @param page 当前的页数
|
||||
/// @param pageSize 一页多少个
|
||||
/// @param state 状态
|
||||
- (void)getGuildMemberList:(NSString *)hallId page:(int)page pageSize:(NSInteger)pageSize state:(int)state {
|
||||
NSString * pageStr = [NSString stringWithFormat:@"%d", page];
|
||||
NSString * pageSizeStr = [NSString stringWithFormat:@"%ld", pageSize];
|
||||
[Api getGuildMemberList:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
|
||||
ClanMemberDetailInfoModel * memberInfo = [ClanMemberDetailInfoModel modelWithDictionary:data.data];
|
||||
[[self getView] getGuildMemberListSuccess:memberInfo state:state];
|
||||
}fail:^(NSInteger code, NSString * _Nullable msg) {
|
||||
[[self getView] getGuildMemberListFail:msg state:state];
|
||||
}] hallId:hallId page:pageStr pageSize:pageSizeStr];
|
||||
}
|
||||
|
||||
/// 获取家族详细的信息
|
||||
/// @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
|
22
xplan-ios/Main/Mine/View/Guild/Protocol/XPClanProtocol.h
Normal file
@@ -0,0 +1,22 @@
|
||||
//
|
||||
// XPClanProtocol.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2022/4/6.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "ClanDetailInfoModel.h"
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
@class ClanDetailInfoModel, ClanMemberDetailInfoModel;
|
||||
@protocol XPClanProtocol <NSObject>
|
||||
|
||||
///获取家族详情成功
|
||||
- (void)getClanDetailInfoSuccess:(ClanDetailInfoModel *)clanDetailInfo;
|
||||
///获取工会成员列表成功
|
||||
- (void)getClanMemberListSuccess:(ClanMemberDetailInfoModel *)memberInfo state:(int)state;
|
||||
///获取工会房间的列表
|
||||
- (void)getClanRoomListSuccess:(NSArray *)array;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
21
xplan-ios/Main/Mine/View/Guild/Protocol/XPGuildProtocol.h
Normal file
@@ -0,0 +1,21 @@
|
||||
//
|
||||
// XPGuildProtocol.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2022/4/6.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
@class ClanMemberDetailInfoModel,ClanDetailInfoModel;
|
||||
@protocol XPGuildProtocol <NSObject>
|
||||
|
||||
- (void)getGuildMemberListSuccess:(ClanMemberDetailInfoModel *)memberInfo state:(int)state;
|
||||
- (void)getGuildMemberListFail:(NSString *)msg state:(int)state;
|
||||
|
||||
///获取家族详情成功
|
||||
- (void)getClanDetailInfoSuccess:(ClanDetailInfoModel *)clanDetailInfo;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -0,0 +1,17 @@
|
||||
//
|
||||
// XPClanMemberTableViewCell.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2022/4/6.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "ClanMemberDetailInfoModel.h"
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
@interface XPClanMemberTableViewCell : UITableViewCell
|
||||
///是否是最后的一个
|
||||
@property (nonatomic,assign) BOOL isLast;
|
||||
@property (nonatomic,strong) ClanMemberInfoModel *memberInfo;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -0,0 +1,377 @@
|
||||
//
|
||||
// XPClanMemberTableViewCell.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2022/4/6.
|
||||
//
|
||||
|
||||
#import "XPClanMemberTableViewCell.h"
|
||||
///Third
|
||||
#import <Masonry/Masonry.h>
|
||||
///Tool
|
||||
#import "ThemeColor.h"
|
||||
#import "NetImageView.h"
|
||||
#import "UIImage+Utils.h"
|
||||
#import "XPMacro.h"
|
||||
///Model
|
||||
#import "ClanMemberDetailInfoModel.h"
|
||||
|
||||
@interface XPClanMemberTableViewCell ()
|
||||
///背景色
|
||||
@property (nonatomic,strong) UIView * backView;
|
||||
///头像
|
||||
@property (nonatomic,strong) NetImageView *avatarImageView;
|
||||
///头像的边框
|
||||
@property (nonatomic,strong) UIImageView *avatarBorderView;
|
||||
///角色
|
||||
@property (nonatomic,strong) UIButton *roleButon;
|
||||
///昵称的容器
|
||||
@property (nonatomic,strong) UIStackView *nickStackView;
|
||||
///x姓名
|
||||
@property (nonatomic,strong) UILabel *nickLabel;
|
||||
///id
|
||||
@property (nonatomic,strong) UILabel *idLabel;
|
||||
///性别
|
||||
@property (nonatomic,strong) UIImageView *sexImageView;
|
||||
///魅力等级
|
||||
@property (nonatomic,strong) NetImageView *charmImageView;
|
||||
///等级
|
||||
@property (nonatomic,strong) NetImageView *experImageView;
|
||||
///所属工会
|
||||
@property (nonatomic,strong) UILabel *guildNickLabel;
|
||||
@property (nonatomic,strong) CAShapeLayer *shapeLayer;
|
||||
@end
|
||||
|
||||
@implementation XPClanMemberTableViewCell
|
||||
- (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.backView];
|
||||
[self.backView addSubview:self.avatarBorderView];
|
||||
[self.backView addSubview:self.avatarImageView];
|
||||
[self.backView addSubview:self.roleButon];
|
||||
[self.backView addSubview:self.nickStackView];
|
||||
[self.backView addSubview:self.idLabel];
|
||||
[self.backView addSubview:self.guildNickLabel];
|
||||
|
||||
[self.nickStackView addArrangedSubview:self.nickLabel];
|
||||
[self.nickStackView addArrangedSubview:self.sexImageView];
|
||||
[self.nickStackView addArrangedSubview:self.charmImageView];
|
||||
[self.nickStackView addArrangedSubview:self.experImageView];
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
[self.backView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.right.mas_equalTo(self.contentView).inset(15);
|
||||
make.top.bottom.mas_equalTo(self.contentView);
|
||||
}];
|
||||
|
||||
[self.avatarImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(54, 54));
|
||||
make.centerY.mas_equalTo(self.contentView);
|
||||
make.left.mas_equalTo(self.backView).offset(9);
|
||||
}];
|
||||
|
||||
[self.avatarBorderView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(57, 57));
|
||||
make.center.mas_equalTo(self.avatarImageView);
|
||||
}];
|
||||
|
||||
[self.roleButon mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.height.mas_equalTo(17);
|
||||
make.width.mas_equalTo(28);
|
||||
make.bottom.mas_equalTo(self.avatarBorderView);
|
||||
make.centerX.mas_equalTo(self.avatarImageView);
|
||||
}];
|
||||
[self.sexImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.width.mas_equalTo(18);
|
||||
}];
|
||||
|
||||
[self.experImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.width.mas_equalTo(24);
|
||||
}];
|
||||
|
||||
[self.charmImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.width.mas_equalTo(24);
|
||||
}];
|
||||
|
||||
[self.nickStackView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.mas_equalTo(self.avatarImageView.mas_right).offset(6);
|
||||
make.height.mas_equalTo(20);
|
||||
make.bottom.mas_equalTo(self.avatarImageView.mas_centerY).offset(-3);
|
||||
}];
|
||||
|
||||
[self.idLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.mas_equalTo(self.nickLabel);
|
||||
make.top.mas_equalTo(self.avatarImageView.mas_centerY).offset(3);
|
||||
}];
|
||||
|
||||
[self.guildNickLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.right.mas_equalTo(self.backView).offset(-15);
|
||||
make.centerY.mas_equalTo(self.idLabel);
|
||||
}];
|
||||
}
|
||||
#pragma mark - Getters And Setters
|
||||
- (void)setMemberInfo:(ClanMemberInfoModel *)memberInfo {
|
||||
_memberInfo = memberInfo;
|
||||
if (_memberInfo) {
|
||||
self.avatarImageView.imageUrl = _memberInfo.avatar;
|
||||
NSString * nick = _memberInfo.nick;
|
||||
if (nick.length > 8) {
|
||||
nick = [nick substringToIndex:8];
|
||||
}
|
||||
self.nickLabel.text = nick;
|
||||
self.sexImageView.image = _memberInfo.gender == GenderType_Female ? [UIImage imageNamed:@"common_female"] : [UIImage imageNamed:@"common_male"];
|
||||
if (_memberInfo.experUrl) {
|
||||
if (self.experImageView.state == NetImageStateLoaded) {
|
||||
CGFloat kImageScale = self.experImageView.image.size.width / self.experImageView.image.size.height;
|
||||
CGFloat imageWidth = 20 * kImageScale;
|
||||
[self.experImageView mas_updateConstraints:^(MASConstraintMaker *make) {
|
||||
make.width.mas_equalTo(imageWidth);
|
||||
}];
|
||||
} else {
|
||||
@kWeakify(self);
|
||||
[self.experImageView loadImageWithUrl:_memberInfo.experUrl completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) {
|
||||
@kStrongify(self);
|
||||
CGFloat kImageScale = image.size.width / image.size.height;
|
||||
CGFloat imageWidth = 20 * kImageScale;
|
||||
[self.experImageView mas_updateConstraints:^(MASConstraintMaker *make) {
|
||||
make.width.mas_equalTo(imageWidth);
|
||||
}];
|
||||
}];
|
||||
}
|
||||
}
|
||||
self.experImageView.hidden = _memberInfo.experUrl.length <= 0;
|
||||
|
||||
if (_memberInfo.charmUrl) {
|
||||
if (self.charmImageView.state == NetImageStateLoaded) {
|
||||
CGFloat kImageScale = self.charmImageView.image.size.width / self.charmImageView.image.size.height;
|
||||
CGFloat imageWidth = 20 * kImageScale;
|
||||
[self.charmImageView mas_updateConstraints:^(MASConstraintMaker *make) {
|
||||
make.width.mas_equalTo(imageWidth);
|
||||
}];
|
||||
} else {
|
||||
@kWeakify(self);
|
||||
[self.charmImageView loadImageWithUrl:_memberInfo.charmUrl completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) {
|
||||
@kStrongify(self);
|
||||
CGFloat kImageScale = image.size.width / image.size.height;
|
||||
CGFloat imageWidth = 20 * kImageScale;
|
||||
[self.charmImageView mas_updateConstraints:^(MASConstraintMaker *make) {
|
||||
make.width.mas_equalTo(imageWidth);
|
||||
}];
|
||||
}];
|
||||
}
|
||||
}
|
||||
self.charmImageView.hidden = _memberInfo.charmUrl.length <= 0;
|
||||
self.idLabel.text = [NSString stringWithFormat:@"ID:%@", _memberInfo.erbanNo];
|
||||
self.guildNickLabel.text = _memberInfo.hallName;
|
||||
UIColor * avatarBoderColor;
|
||||
UIColor * roleGradStartColor;
|
||||
UIColor * roleGradEndColor;
|
||||
NSString * roleTitle;
|
||||
CGFloat roleWidth = 45;
|
||||
switch (_memberInfo.roleType) {
|
||||
case GuildRoleType_Elder:
|
||||
roleTitle = @"会长";
|
||||
avatarBoderColor = UIColorFromRGB(0xFFD755);
|
||||
roleGradStartColor = UIColorFromRGB(0xFF5357);
|
||||
roleGradEndColor = UIColorFromRGB(0xFFC919);
|
||||
roleWidth= 45;
|
||||
break;
|
||||
case GuildRoleType_Elder_Owner:
|
||||
roleTitle = @"会长·房主";
|
||||
avatarBoderColor = UIColorFromRGB(0xFFD755);
|
||||
roleGradStartColor = UIColorFromRGB(0xFF5357);
|
||||
roleGradEndColor = UIColorFromRGB(0xFFC919);
|
||||
roleWidth = 66;
|
||||
break;
|
||||
case GuildRoleType_Owner:
|
||||
roleTitle = @"房主";
|
||||
avatarBoderColor = UIColorFromRGB(0xF86868);
|
||||
roleGradEndColor = UIColorFromRGB(0xF86868);
|
||||
roleGradStartColor = UIColorFromRGB(0xF6A945);
|
||||
roleWidth = 45;
|
||||
break;
|
||||
case GuildRoleType_Normal:
|
||||
roleTitle = @"";
|
||||
break;
|
||||
case GuildRoleType_Manager:
|
||||
roleTitle = @"房间管理";
|
||||
avatarBoderColor = UIColorFromRGB(0x248CFE);
|
||||
roleGradStartColor = UIColorFromRGB(0x5092FE);
|
||||
roleGradEndColor = UIColorFromRGB(0x6A10B5);
|
||||
roleWidth = 58;
|
||||
break;
|
||||
case GuildRoleType_Super_Admin:
|
||||
roleTitle = @"公会超管";
|
||||
avatarBoderColor = UIColorFromRGB(0x7727E4);
|
||||
roleGradStartColor = UIColorFromRGB(0x5092FE);
|
||||
roleGradEndColor = UIColorFromRGB(0x6A10B5);
|
||||
roleWidth = 58;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (roleTitle.length > 0) {
|
||||
self.roleButon.hidden = NO;
|
||||
self.avatarBorderView.hidden = NO;
|
||||
[self.roleButon setTitle:roleTitle forState:UIControlStateNormal];
|
||||
self.avatarBorderView.layer.borderColor = avatarBoderColor.CGColor;
|
||||
[self.roleButon setBackgroundImage:[UIImage gradientColorImageFromColors:@[roleGradStartColor, roleGradEndColor] gradientType:GradientTypeUpleftToLowright imgSize:CGSizeMake(roleWidth, 17)] forState:UIControlStateNormal];
|
||||
[self.roleButon mas_updateConstraints:^(MASConstraintMaker *make) {
|
||||
make.width.mas_equalTo(roleWidth);
|
||||
}];
|
||||
} else {
|
||||
self.avatarBorderView.hidden = YES;
|
||||
self.roleButon.hidden = YES;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setIsLast:(BOOL)isLast {
|
||||
_isLast = isLast;
|
||||
if (_isLast) {
|
||||
self.backView.layer.mask = self.shapeLayer;
|
||||
} else {
|
||||
self.backView.layer.mask = nil;
|
||||
}
|
||||
}
|
||||
|
||||
- (UIView *)backView {
|
||||
if (!_backView) {
|
||||
_backView = [[UIView alloc] init];
|
||||
_backView.backgroundColor = [ThemeColor appCellBackgroundColor];
|
||||
_backView.layer.masksToBounds = YES;
|
||||
}
|
||||
return _backView;
|
||||
}
|
||||
|
||||
- (NetImageView *)avatarImageView {
|
||||
if (!_avatarImageView) {
|
||||
NetImageConfig * config = [[NetImageConfig alloc]init];
|
||||
config.imageType = ImageTypeUserIcon;
|
||||
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
|
||||
_avatarImageView = [[NetImageView alloc] initWithConfig:config];
|
||||
_avatarImageView.layer.masksToBounds = YES;
|
||||
_avatarImageView.layer.cornerRadius = 54.0/2.0;
|
||||
_avatarImageView.layer.borderColor = [ThemeColor appMainColor].CGColor;
|
||||
}
|
||||
return _avatarImageView;
|
||||
}
|
||||
|
||||
- (UIButton *)roleButon {
|
||||
if (!_roleButon) {
|
||||
_roleButon = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_roleButon setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
|
||||
_roleButon.titleLabel.font = [UIFont systemFontOfSize:12];
|
||||
_roleButon.layer.masksToBounds = YES;
|
||||
_roleButon.layer.cornerRadius = 17.0 / 2.0;
|
||||
}
|
||||
return _roleButon;
|
||||
}
|
||||
|
||||
- (UILabel *)idLabel {
|
||||
if (!_idLabel) {
|
||||
_idLabel = [[UILabel alloc] init];
|
||||
_idLabel.font = [UIFont systemFontOfSize:12];
|
||||
_idLabel.textColor = [ThemeColor secondTextColor];
|
||||
}
|
||||
return _idLabel;
|
||||
}
|
||||
|
||||
- (UIStackView *)nickStackView {
|
||||
if (!_nickStackView) {
|
||||
_nickStackView = [[UIStackView alloc] init];
|
||||
_nickStackView.axis = UILayoutConstraintAxisHorizontal;
|
||||
_nickStackView.distribution = UIStackViewDistributionFill;
|
||||
_nickStackView.alignment = UIStackViewAlignmentFill;
|
||||
_nickStackView.spacing = 7;
|
||||
}
|
||||
return _nickStackView;
|
||||
}
|
||||
|
||||
|
||||
- (UILabel *)nickLabel {
|
||||
if (!_nickLabel) {
|
||||
_nickLabel = [[UILabel alloc] init];
|
||||
_nickLabel.font = [UIFont systemFontOfSize:18];
|
||||
_nickLabel.textColor = [ThemeColor mainTextColor];
|
||||
}
|
||||
return _nickLabel;
|
||||
}
|
||||
|
||||
- (UIImageView *)sexImageView {
|
||||
if (!_sexImageView) {
|
||||
_sexImageView = [[UIImageView alloc] init];
|
||||
_sexImageView.userInteractionEnabled = YES;
|
||||
}
|
||||
return _sexImageView;
|
||||
}
|
||||
|
||||
- (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;
|
||||
}
|
||||
|
||||
- (UILabel *)guildNickLabel {
|
||||
if (!_guildNickLabel) {
|
||||
_guildNickLabel = [[UILabel alloc] init];
|
||||
_guildNickLabel.font = [UIFont systemFontOfSize:13];
|
||||
_guildNickLabel.textColor = [ThemeColor secondTextColor];
|
||||
}
|
||||
return _guildNickLabel;
|
||||
}
|
||||
|
||||
- (UIImageView *)avatarBorderView {
|
||||
if (!_avatarBorderView) {
|
||||
_avatarBorderView = [[UIImageView alloc] init];
|
||||
_avatarBorderView.userInteractionEnabled = YES;
|
||||
_avatarBorderView.layer.masksToBounds = YES;
|
||||
_avatarBorderView.layer.cornerRadius = 57.0 /2.0;
|
||||
_avatarBorderView.backgroundColor = [ThemeColor appCellBackgroundColor];
|
||||
_avatarBorderView.layer.borderWidth = 1;
|
||||
}
|
||||
return _avatarBorderView;
|
||||
}
|
||||
|
||||
- (CAShapeLayer *)shapeLayer {
|
||||
if (!_shapeLayer) {
|
||||
_shapeLayer = [CAShapeLayer layer];
|
||||
_shapeLayer.path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, KScreenWidth - 15 * 2, 66) byRoundingCorners:UIRectCornerBottomLeft | UIRectCornerBottomRight cornerRadii:CGSizeMake(12, 12)].CGPath;
|
||||
}
|
||||
return _shapeLayer;
|
||||
}
|
||||
|
||||
|
||||
@end
|
@@ -0,0 +1,16 @@
|
||||
//
|
||||
// XPClanRoomCollectionViewCell.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2022/4/6.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
@class GuildInfoModel;
|
||||
@interface XPClanRoomCollectionViewCell : UICollectionViewCell
|
||||
@property (nonatomic,strong) GuildInfoModel *guildInfo;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -0,0 +1,105 @@
|
||||
//
|
||||
// XPClanRoomCollectionViewCell.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2022/4/6.
|
||||
//
|
||||
|
||||
#import "XPClanRoomCollectionViewCell.h"
|
||||
///Third
|
||||
#import <Masonry/Masonry.h>
|
||||
///Tool
|
||||
#import "ThemeColor.h"
|
||||
#import "NetImageView.h"
|
||||
#import "UIImage+Utils.h"
|
||||
///Model
|
||||
#import "GuildInfoModel.h"
|
||||
|
||||
@interface XPClanRoomCollectionViewCell ()
|
||||
///在线
|
||||
@property (nonatomic,strong) UIButton *onlineButton;
|
||||
///房间头像
|
||||
@property (nonatomic,strong) NetImageView *avatarImageView;
|
||||
///标题
|
||||
@property (nonatomic,strong) UILabel *titleLabel;
|
||||
@end
|
||||
|
||||
@implementation XPClanRoomCollectionViewCell
|
||||
|
||||
- (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.avatarImageView];
|
||||
[self.contentView addSubview:self.titleLabel];
|
||||
[self.avatarImageView addSubview:self.onlineButton];
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
[self.avatarImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.top.right.mas_equalTo(self.contentView);
|
||||
make.height.mas_equalTo(self.avatarImageView.mas_width);
|
||||
}];
|
||||
|
||||
[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.right.mas_equalTo(self.contentView);
|
||||
make.top.mas_equalTo(self.avatarImageView.mas_bottom).offset(6);
|
||||
}];
|
||||
|
||||
[self.onlineButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(28, 14));
|
||||
make.left.top.mas_equalTo(self.avatarImageView);
|
||||
}];
|
||||
}
|
||||
|
||||
#pragma mark - Getters And Setters
|
||||
- (void)setGuildInfo:(GuildInfoModel *)guildInfo {
|
||||
_guildInfo = guildInfo;
|
||||
if (_guildInfo) {
|
||||
self.avatarImageView.imageUrl = _guildInfo.ownerAvatar;
|
||||
self.titleLabel.text = _guildInfo.hallName;
|
||||
}
|
||||
}
|
||||
|
||||
- (NetImageView *)avatarImageView {
|
||||
if (!_avatarImageView) {
|
||||
NetImageConfig * config = [[NetImageConfig alloc]init];
|
||||
config.imageType = ImageTypeUserIcon;
|
||||
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
|
||||
_avatarImageView = [[NetImageView alloc] initWithConfig:config];
|
||||
_avatarImageView.layer.masksToBounds = YES;
|
||||
_avatarImageView.layer.cornerRadius = 8;
|
||||
}
|
||||
return _avatarImageView;
|
||||
}
|
||||
|
||||
- (UILabel *)titleLabel {
|
||||
if (!_titleLabel) {
|
||||
_titleLabel = [[UILabel alloc] init];
|
||||
_titleLabel.textAlignment = NSTextAlignmentCenter;
|
||||
_titleLabel.font = [UIFont systemFontOfSize:13];
|
||||
_titleLabel.textColor = [ThemeColor mainTextColor];
|
||||
}
|
||||
return _titleLabel;
|
||||
}
|
||||
|
||||
- (UIButton *)onlineButton {
|
||||
if (!_onlineButton) {
|
||||
_onlineButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_onlineButton setTitle:@"在线" forState:UIControlStateNormal];
|
||||
[_onlineButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
|
||||
_onlineButton.titleLabel.font = [UIFont systemFontOfSize:12];
|
||||
[_onlineButton setBackgroundImage:[UIImage imageWithColor:UIColorFromRGB(0x7727E4)] forState:UIControlStateNormal];
|
||||
_onlineButton.layer.masksToBounds = YES;
|
||||
_onlineButton.layer.cornerRadius = 2;
|
||||
}
|
||||
return _onlineButton;
|
||||
}
|
||||
@end
|
@@ -0,0 +1,19 @@
|
||||
//
|
||||
// XPClanMenuView.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2022/4/6.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface XPClanMenuView : UIView
|
||||
///显示图片的名称
|
||||
@property (nonatomic,copy) NSString * imageName;
|
||||
///显示标题
|
||||
@property (nonatomic,copy) NSString *title;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -0,0 +1,80 @@
|
||||
//
|
||||
// XPClanMenuView.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2022/4/6.
|
||||
//
|
||||
|
||||
#import "XPClanMenuView.h"
|
||||
///Third
|
||||
#import <Masonry/Masonry.h>
|
||||
///Tool
|
||||
#import "ThemeColor.h"
|
||||
|
||||
@interface XPClanMenuView ()
|
||||
///显示背景图
|
||||
@property (nonatomic,strong) UIImageView *logoImageView;
|
||||
///显示名字
|
||||
@property (nonatomic,strong) UILabel *titleLabel;
|
||||
@end
|
||||
|
||||
@implementation XPClanMenuView
|
||||
|
||||
- (instancetype)initWithFrame:(CGRect)frame
|
||||
{
|
||||
self = [super initWithFrame:frame];
|
||||
if (self) {
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
#pragma mark - Private Method
|
||||
- (void)initSubViews {
|
||||
[self addSubview:self.logoImageView];
|
||||
[self addSubview:self.titleLabel];
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
[self.logoImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.edges.mas_equalTo(self);
|
||||
}];
|
||||
|
||||
[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.top.mas_equalTo(self).offset(8);
|
||||
}];
|
||||
}
|
||||
#pragma mark - Getters And Setters
|
||||
- (void)setImageName:(NSString *)imageName {
|
||||
_imageName = imageName;
|
||||
if (_imageName) {
|
||||
self.logoImageView.image = [UIImage imageNamed:_imageName];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setTitle:(NSString *)title {
|
||||
_title = title;
|
||||
if (_title.length > 0) {
|
||||
self.titleLabel.text = _title;
|
||||
}
|
||||
}
|
||||
|
||||
- (UIImageView *)logoImageView {
|
||||
if (!_logoImageView) {
|
||||
_logoImageView = [[UIImageView alloc] init];
|
||||
_logoImageView.userInteractionEnabled = YES;
|
||||
}
|
||||
return _logoImageView;
|
||||
}
|
||||
|
||||
- (UILabel *)titleLabel {
|
||||
if (!_titleLabel) {
|
||||
_titleLabel = [[UILabel alloc] init];
|
||||
_titleLabel.font = [UIFont systemFontOfSize:14];
|
||||
_titleLabel.textColor = [UIColor whiteColor];
|
||||
}
|
||||
return _titleLabel;
|
||||
}
|
||||
|
||||
@end
|
@@ -0,0 +1,19 @@
|
||||
//
|
||||
// XPClanSectionView.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2022/4/6.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface XPClanSectionView : UIView
|
||||
///顶部是否切圆角
|
||||
@property (nonatomic,assign) BOOL isTopCor;
|
||||
///显示标题
|
||||
@property (nonatomic,copy) NSString *title;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
110
xplan-ios/Main/Mine/View/Guild/View/SubViews/XPClanSectionView.m
Normal file
@@ -0,0 +1,110 @@
|
||||
//
|
||||
// XPClanSectionView.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2022/4/6.
|
||||
//
|
||||
|
||||
#import "XPClanSectionView.h"
|
||||
///Third
|
||||
#import <Masonry/Masonry.h>
|
||||
///Tool
|
||||
#import "ThemeColor.h"
|
||||
#import "XPMacro.h"
|
||||
|
||||
@interface XPClanSectionView ()
|
||||
///显示背景色
|
||||
@property (nonatomic,strong) UIView * backView;
|
||||
///标题
|
||||
@property (nonatomic,strong) UILabel *titleLabel;
|
||||
///搜索
|
||||
@property (nonatomic,strong) UIButton *searchButton;
|
||||
@end
|
||||
|
||||
@implementation XPClanSectionView
|
||||
|
||||
- (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 addSubview:self.backView];
|
||||
[self.backView addSubview:self.titleLabel];
|
||||
[self.backView addSubview:self.searchButton];
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
[self.backView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.right.mas_equalTo(self).inset(15);
|
||||
make.top.bottom.mas_equalTo(self);
|
||||
}];
|
||||
|
||||
[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.top.mas_equalTo(self.backView).offset(15);
|
||||
}];
|
||||
|
||||
[self.searchButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(22, 22));
|
||||
make.centerY.mas_equalTo(self.titleLabel);
|
||||
make.right.mas_equalTo(self.backView).offset(-15);
|
||||
}];
|
||||
}
|
||||
#pragma mark - Event Response
|
||||
- (void)searchButtonAction:(UIButton *)sender {
|
||||
|
||||
}
|
||||
|
||||
#pragma mark - Getters And Setters
|
||||
- (void)setTitle:(NSString *)title {
|
||||
_title = title;
|
||||
if (_title.length > 0) {
|
||||
self.titleLabel.text = _title;
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setIsTopCor:(BOOL)isTopCor {
|
||||
_isTopCor = isTopCor;
|
||||
if (_isTopCor) {
|
||||
CAShapeLayer * layer = [CAShapeLayer layer];
|
||||
layer.path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, KScreenWidth - 30, 37) byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(12, 12)].CGPath;
|
||||
self.backView.layer.mask = layer;
|
||||
}
|
||||
}
|
||||
|
||||
- (UIView *)backView {
|
||||
if (!_backView) {
|
||||
_backView = [[UIView alloc] init];
|
||||
_backView.backgroundColor = [ThemeColor appCellBackgroundColor];
|
||||
_backView.layer.masksToBounds = YES;
|
||||
}
|
||||
return _backView;
|
||||
}
|
||||
|
||||
- (UILabel *)titleLabel {
|
||||
if (!_titleLabel) {
|
||||
_titleLabel = [[UILabel alloc] init];
|
||||
_titleLabel.font = [UIFont systemFontOfSize:15];
|
||||
_titleLabel.textColor = [ThemeColor secondTextColor];
|
||||
}
|
||||
return _titleLabel;
|
||||
}
|
||||
|
||||
- (UIButton *)searchButton {
|
||||
if (!_searchButton) {
|
||||
_searchButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_searchButton setImage:[UIImage imageNamed:@"mine_guild_section_search"] forState:UIControlStateNormal];
|
||||
[_searchButton setImage:[UIImage imageNamed:@"mine_guild_section_search"] forState:UIControlStateSelected];
|
||||
[_searchButton addTarget:self action:@selector(searchButtonAction:) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _searchButton;
|
||||
}
|
||||
|
||||
|
||||
@end
|
@@ -0,0 +1,28 @@
|
||||
//
|
||||
// XPGuildHeaderView.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2022/4/6.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
@class ClanDetailInfoModel, XPGuildHeaderView, GuildInfoModel;
|
||||
|
||||
@protocol XPGuildHeaderViewDelegate <NSObject>
|
||||
|
||||
- (void)xPGuildHeaderView:(XPGuildHeaderView *)view dicSelectGuild:(GuildInfoModel *)guildInfo;
|
||||
|
||||
@end
|
||||
|
||||
@interface XPGuildHeaderView : UIView
|
||||
///家族信息
|
||||
@property (nonatomic,strong) ClanDetailInfoModel *clanInfo;
|
||||
///家族房间列表
|
||||
@property (nonatomic,strong) NSArray *clanRoomList;
|
||||
///代理
|
||||
@property (nonatomic,weak) id<XPGuildHeaderViewDelegate> delegate;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
326
xplan-ios/Main/Mine/View/Guild/View/SubViews/XPGuildHeaderView.m
Normal file
@@ -0,0 +1,326 @@
|
||||
//
|
||||
// XPGuildHeaderView.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2022/4/6.
|
||||
//
|
||||
|
||||
#import "XPGuildHeaderView.h"
|
||||
///Third
|
||||
#import <Masonry/Masonry.h>
|
||||
///Tool
|
||||
#import "ThemeColor.h"
|
||||
#import "NetImageView.h"
|
||||
#import "XPMacro.h"
|
||||
///Model
|
||||
#import "ClanDetailInfoModel.h"
|
||||
///View
|
||||
#import "XPClanMenuView.h"
|
||||
#import "XPClanRoomCollectionViewCell.h"
|
||||
@interface XPGuildHeaderView ()<UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout>
|
||||
///背景图
|
||||
@property (nonatomic,strong) UIImageView *backImageView;
|
||||
///头像
|
||||
@property (nonatomic,strong) NetImageView *avatarImageView;
|
||||
///工会名称
|
||||
@property (nonatomic,strong) UILabel *clanNameLabel;
|
||||
///大鹅id
|
||||
@property (nonatomic,strong) UILabel *daeIdLabel;
|
||||
///房间数量
|
||||
@property (nonatomic,strong) UILabel *roomNumberLabel;
|
||||
///家族等级
|
||||
@property (nonatomic,strong) NetImageView *clanLevelImageView;
|
||||
///查看流水
|
||||
@property (nonatomic,strong) XPClanMenuView *incomeView;
|
||||
///个播收入
|
||||
@property (nonatomic,strong) XPClanMenuView *anchorIncomeView;
|
||||
///超管设置
|
||||
@property (nonatomic,strong) XPClanMenuView *superAdminSetView;
|
||||
///工会房间的容器
|
||||
@property (nonatomic,strong) UIView * clanRoomView;
|
||||
///工会房间多少个
|
||||
@property (nonatomic,strong) UILabel *numberLabel;
|
||||
///列表
|
||||
@property (nonatomic,strong) UICollectionView *collectionView;
|
||||
@end
|
||||
|
||||
@implementation XPGuildHeaderView
|
||||
|
||||
- (instancetype)initWithFrame:(CGRect)frame {
|
||||
self = [super initWithFrame:frame];
|
||||
if (self) {
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
#pragma mark - Private Method
|
||||
- (void)initSubViews {
|
||||
[self addSubview:self.backImageView];
|
||||
[self addSubview:self.avatarImageView];
|
||||
[self addSubview:self.clanNameLabel];
|
||||
[self addSubview:self.daeIdLabel];
|
||||
[self addSubview:self.roomNumberLabel];
|
||||
[self addSubview:self.clanLevelImageView];
|
||||
[self addSubview:self.incomeView];
|
||||
[self addSubview:self.anchorIncomeView];
|
||||
[self addSubview:self.superAdminSetView];
|
||||
[self addSubview:self.clanRoomView];
|
||||
|
||||
[self.clanRoomView addSubview:self.numberLabel];
|
||||
[self.clanRoomView addSubview:self.collectionView];
|
||||
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
[self mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.width.mas_equalTo(KScreenWidth);
|
||||
make.bottom.mas_equalTo(self.clanRoomView.mas_bottom).offset(15);
|
||||
}];
|
||||
|
||||
CGFloat kBackScale = 274.0 / 375.0;
|
||||
[self.backImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.right.top.mas_equalTo(self);
|
||||
make.height.mas_equalTo(KScreenWidth * kBackScale);
|
||||
}];
|
||||
|
||||
[self.avatarImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(64 * kScreenScale, 64 * kScreenScale));
|
||||
make.left.mas_equalTo(self).offset(15);
|
||||
make.top.mas_equalTo(self).offset(108 * kScreenScale);
|
||||
}];
|
||||
|
||||
[self.clanNameLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.mas_equalTo(self.avatarImageView.mas_right).offset(6);
|
||||
make.top.mas_equalTo(self.avatarImageView);
|
||||
make.right.mas_lessThanOrEqualTo(self.clanLevelImageView);
|
||||
}];
|
||||
|
||||
[self.daeIdLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.mas_equalTo(self.clanNameLabel);
|
||||
make.top.mas_equalTo(self.clanNameLabel.mas_bottom).offset(6);
|
||||
}];
|
||||
|
||||
[self.roomNumberLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.mas_equalTo(self.clanNameLabel);
|
||||
make.top.mas_equalTo(self.daeIdLabel.mas_bottom).offset(6);
|
||||
}];
|
||||
|
||||
[self.clanLevelImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(60, 60));
|
||||
make.centerY.mas_equalTo(self.avatarImageView);
|
||||
make.right.mas_equalTo(self).offset(-35);
|
||||
}];
|
||||
|
||||
CGFloat kMenuScale = 52.0 / 111.0;
|
||||
CGFloat kMenuItemWidth = (CGFloat)(KScreenWidth - 15 * 2 - 6 * 2) / 3.0;
|
||||
[self.incomeView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.mas_equalTo(self).offset(15);
|
||||
make.top.mas_equalTo(self.avatarImageView.mas_bottom).offset(25);
|
||||
make.width.mas_equalTo(kMenuItemWidth);
|
||||
make.height.mas_equalTo(kMenuItemWidth * kMenuScale);
|
||||
}];
|
||||
|
||||
[self.anchorIncomeView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.centerY.mas_equalTo(self.incomeView);
|
||||
make.left.mas_equalTo(self.incomeView.mas_right).offset(6);
|
||||
}];
|
||||
|
||||
[self.superAdminSetView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.centerY.mas_equalTo(self.incomeView);
|
||||
make.left.mas_equalTo(self.anchorIncomeView.mas_right).offset(6);
|
||||
}];
|
||||
|
||||
[self.clanRoomView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.right.mas_equalTo(self).inset(16);
|
||||
make.height.mas_equalTo(130);
|
||||
make.top.mas_equalTo(self.incomeView.mas_bottom).offset(15);
|
||||
}];
|
||||
|
||||
[self.numberLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.mas_equalTo(self.clanRoomView).offset(9);
|
||||
make.top.mas_equalTo(self.clanRoomView).offset(10);
|
||||
}];
|
||||
|
||||
[self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.right.mas_equalTo(self.clanRoomView).inset(9);
|
||||
make.top.mas_equalTo(self.numberLabel.mas_bottom).offset(3);
|
||||
make.bottom.mas_equalTo(self.clanRoomView);
|
||||
}];
|
||||
}
|
||||
|
||||
#pragma mark - UICollectionViewDelegate
|
||||
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
|
||||
return self.clanRoomList.count;
|
||||
}
|
||||
|
||||
- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
|
||||
XPClanRoomCollectionViewCell * cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([ XPClanRoomCollectionViewCell class]) forIndexPath:indexPath];
|
||||
cell.guildInfo = [self.clanRoomList objectAtIndex:indexPath.row];
|
||||
return cell;
|
||||
}
|
||||
|
||||
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
|
||||
[collectionView deselectItemAtIndexPath:indexPath animated:YES];
|
||||
if (self.clanRoomList.count > 0) {
|
||||
GuildInfoModel * guildInfo = [self.clanRoomList objectAtIndex:indexPath.row];
|
||||
if (self.delegate && [self.delegate respondsToSelector:@selector(xPGuildHeaderView:dicSelectGuild:)]) {
|
||||
[self.delegate xPGuildHeaderView:self dicSelectGuild:guildInfo];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - Getters And Setters
|
||||
- (void)setClanInfo:(ClanDetailInfoModel *)clanInfo {
|
||||
_clanInfo = clanInfo;
|
||||
if (_clanInfo) {
|
||||
self.avatarImageView.imageUrl = _clanInfo.clan.avatar;
|
||||
NSString * elderName = _clanInfo.clan.elderName;
|
||||
if (elderName.length > 8) {
|
||||
elderName = [elderName substringToIndex:8];
|
||||
}
|
||||
self.clanNameLabel.text = elderName;
|
||||
self.daeIdLabel.text = _clanInfo.clan.elderErbanNo;
|
||||
self.clanLevelImageView.imageUrl = _clanInfo.clan.levelIcon;
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setClanRoomList:(NSArray *)clanRoomList {
|
||||
_clanRoomList = clanRoomList;
|
||||
if (_clanRoomList.count > 0) {
|
||||
[self.clanRoomView mas_updateConstraints:^(MASConstraintMaker *make) {
|
||||
make.height.mas_equalTo(130);
|
||||
}];
|
||||
self.roomNumberLabel.text = [NSString stringWithFormat:@"公会房间数量:%ld", _clanRoomList.count];
|
||||
} else {
|
||||
[self.clanRoomView mas_updateConstraints:^(MASConstraintMaker *make) {
|
||||
make.height.mas_equalTo(0);
|
||||
}];
|
||||
self.roomNumberLabel.text = @"公会房间数量:0";
|
||||
}
|
||||
[self.collectionView reloadData];
|
||||
}
|
||||
|
||||
- (UIImageView *)backImageView {
|
||||
if (!_backImageView) {
|
||||
_backImageView = [[UIImageView alloc] init];
|
||||
_backImageView.userInteractionEnabled = YES;
|
||||
_backImageView.image = [UIImage imageNamed:@"mine_guild_clan_header_bg"];
|
||||
}
|
||||
return _backImageView;
|
||||
}
|
||||
|
||||
- (NetImageView *)avatarImageView {
|
||||
if (!_avatarImageView) {
|
||||
NetImageConfig * config = [[NetImageConfig alloc]init];
|
||||
config.imageType = ImageTypeUserIcon;
|
||||
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
|
||||
_avatarImageView = [[NetImageView alloc] initWithConfig:config];
|
||||
_avatarImageView.layer.masksToBounds = YES;
|
||||
_avatarImageView.layer.cornerRadius = 32;
|
||||
_avatarImageView.layer.borderWidth = 2;
|
||||
_avatarImageView.layer.borderColor = UIColorFromRGB(0xC6C6E9).CGColor;
|
||||
}
|
||||
return _avatarImageView;
|
||||
}
|
||||
|
||||
- (UILabel *)clanNameLabel {
|
||||
if (!_clanNameLabel) {
|
||||
_clanNameLabel = [[UILabel alloc] init];
|
||||
_clanNameLabel.font = [UIFont systemFontOfSize:18];
|
||||
_clanNameLabel.textColor = [UIColor whiteColor];
|
||||
}
|
||||
return _clanNameLabel;
|
||||
}
|
||||
|
||||
- (UILabel *)daeIdLabel {
|
||||
if (!_daeIdLabel) {
|
||||
_daeIdLabel = [[UILabel alloc] init];
|
||||
_daeIdLabel.font = [UIFont systemFontOfSize:12];
|
||||
_daeIdLabel.textColor = UIColorFromRGB(0xC6C6E9);
|
||||
}
|
||||
return _daeIdLabel;
|
||||
}
|
||||
|
||||
- (UILabel *)roomNumberLabel {
|
||||
if (!_roomNumberLabel) {
|
||||
_roomNumberLabel = [[UILabel alloc] init];
|
||||
_roomNumberLabel.font = [UIFont systemFontOfSize:12];
|
||||
_roomNumberLabel.textColor = UIColorFromRGB(0xC6C6E9);
|
||||
}
|
||||
return _roomNumberLabel;
|
||||
}
|
||||
|
||||
- (NetImageView *)clanLevelImageView {
|
||||
if (!_clanLevelImageView) {
|
||||
_clanLevelImageView = [[NetImageView alloc] init];
|
||||
}
|
||||
return _clanLevelImageView;
|
||||
}
|
||||
|
||||
- (XPClanMenuView *)incomeView {
|
||||
if (!_incomeView) {
|
||||
_incomeView = [[XPClanMenuView alloc] init];
|
||||
_incomeView.title = @"查看流水";
|
||||
_incomeView.imageName = @"mine_guild_clan_header_income_bg";
|
||||
}
|
||||
return _incomeView;
|
||||
}
|
||||
|
||||
- (XPClanMenuView *)anchorIncomeView {
|
||||
if (!_anchorIncomeView) {
|
||||
_anchorIncomeView = [[XPClanMenuView alloc] init];
|
||||
_anchorIncomeView.title = @"主播收入";
|
||||
_anchorIncomeView.imageName = @"mine_guild_clan_header_anchor_income_bg";
|
||||
}
|
||||
return _anchorIncomeView;
|
||||
}
|
||||
|
||||
- (XPClanMenuView *)superAdminSetView {
|
||||
if (!_superAdminSetView) {
|
||||
_superAdminSetView = [[XPClanMenuView alloc] init];
|
||||
_superAdminSetView.title = @"工会超管设置";
|
||||
_superAdminSetView.imageName = @"mine_guild_clan_header_superadmin_set_bg";
|
||||
}
|
||||
return _superAdminSetView;
|
||||
}
|
||||
|
||||
- (UIView *)clanRoomView {
|
||||
if (!_clanRoomView) {
|
||||
_clanRoomView = [[UIView alloc] init];
|
||||
_clanRoomView.backgroundColor = [ThemeColor appCellBackgroundColor];
|
||||
_clanRoomView.layer.masksToBounds = YES;
|
||||
_clanRoomView.layer.cornerRadius = 10;
|
||||
}
|
||||
return _clanRoomView;
|
||||
}
|
||||
|
||||
- (UILabel *)numberLabel {
|
||||
if (!_numberLabel) {
|
||||
_numberLabel = [[UILabel alloc] init];
|
||||
_numberLabel.text = @"公会房间(0)";
|
||||
_numberLabel.font = [UIFont systemFontOfSize:14];
|
||||
_numberLabel.textColor = [ThemeColor mainTextColor];
|
||||
}
|
||||
return _numberLabel;
|
||||
}
|
||||
|
||||
- (UICollectionView *)collectionView{
|
||||
if (!_collectionView) {
|
||||
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
|
||||
layout.scrollDirection = UICollectionViewScrollDirectionHorizontal;
|
||||
layout.minimumLineSpacing = 10;
|
||||
layout.itemSize = CGSizeMake(60, 80);
|
||||
layout.minimumInteritemSpacing = 0;
|
||||
_collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout];
|
||||
_collectionView.dataSource = self;
|
||||
_collectionView.delegate = self;
|
||||
_collectionView.backgroundColor = [UIColor clearColor];
|
||||
[_collectionView registerClass:[XPClanRoomCollectionViewCell class] forCellWithReuseIdentifier:NSStringFromClass([XPClanRoomCollectionViewCell class])];
|
||||
}
|
||||
return _collectionView;
|
||||
}
|
||||
|
||||
|
||||
@end
|
@@ -0,0 +1,17 @@
|
||||
//
|
||||
// XPMineClanViewController.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2022/4/6.
|
||||
//
|
||||
|
||||
#import "MvpViewController.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface XPMineClanViewController : MvpViewController
|
||||
///组长的Uid
|
||||
@property (nonatomic,copy) NSString *uid;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
282
xplan-ios/Main/Mine/View/Guild/View/XPMineClanViewController.m
Normal file
@@ -0,0 +1,282 @@
|
||||
//
|
||||
// XPMineClanViewController.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2022/4/6.
|
||||
//
|
||||
|
||||
#import "XPMineClanViewController.h"
|
||||
///Third
|
||||
#import <Masonry/Masonry.h>
|
||||
#import <MJRefresh/MJRefresh.h>
|
||||
///Tool
|
||||
#import "XPMacro.h"
|
||||
#import "ThemeColor.h"
|
||||
///Model
|
||||
#import "ClanDetailInfoModel.h"
|
||||
#import "ClanMemberDetailInfoModel.h"
|
||||
///View
|
||||
#import "XPClanMemberTableViewCell.h"
|
||||
#import "XPGuildHeaderView.h"
|
||||
#import "XPClanSectionView.h"
|
||||
#import "XPMineGuildViewController.h"
|
||||
///P
|
||||
#import "XPClanPresenter.h"
|
||||
#import "XPClanProtocol.h"
|
||||
|
||||
@interface XPMineClanViewController ()<UITableViewDataSource, UITableViewDelegate, XPClanProtocol, XPGuildHeaderViewDelegate>
|
||||
///顶部视图
|
||||
@property (nonatomic,strong) XPGuildHeaderView *headerView;
|
||||
///导航栏
|
||||
@property (nonatomic,strong) UIView * navView;
|
||||
///返回按钮
|
||||
@property (nonatomic,strong) UIButton *backButton;
|
||||
///标题
|
||||
@property (nonatomic,strong) UILabel *titleLabel;
|
||||
///列表
|
||||
@property (nonatomic,strong) UITableView *tableView;
|
||||
///当前页数
|
||||
@property (nonatomic,assign) int page;
|
||||
///是否有更多的数据
|
||||
@property (nonatomic,assign) BOOL hasNoMoreData;
|
||||
///家族信息详情
|
||||
@property (nonatomic,strong) ClanDetailInfoModel *clanDetailInfo;
|
||||
///成员详情的列表
|
||||
@property (nonatomic,strong) ClanMemberDetailInfoModel *memberDetailInfo;
|
||||
///数据源
|
||||
@property (nonatomic,strong) NSMutableArray *datasource;
|
||||
///区头
|
||||
@property (nonatomic,strong) XPClanSectionView *sectionView;
|
||||
@end
|
||||
|
||||
@implementation XPMineClanViewController
|
||||
|
||||
- (BOOL)isHiddenNavBar {
|
||||
return YES;
|
||||
}
|
||||
|
||||
- (XPClanPresenter *)createPresenter {
|
||||
return [[XPClanPresenter alloc] init];
|
||||
}
|
||||
|
||||
- (void)viewDidLoad {
|
||||
[super viewDidLoad];
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
[self initHeaderAndFooterRrfresh];
|
||||
}
|
||||
#pragma mark - 下拉刷新
|
||||
- (void)initHeaderAndFooterRrfresh {
|
||||
MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(headerRefresh)];
|
||||
header.stateLabel.font = [UIFont systemFontOfSize:10.0];
|
||||
header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0];
|
||||
header.stateLabel.textColor = [ThemeColor secondTextColor];
|
||||
header.lastUpdatedTimeLabel.textColor = [ThemeColor secondTextColor];
|
||||
self.tableView.mj_header = header;
|
||||
|
||||
MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRefresh)];
|
||||
footer.stateLabel.textColor = [ThemeColor secondTextColor];
|
||||
footer.stateLabel.font = [UIFont systemFontOfSize:10.0];
|
||||
self.tableView.mj_footer = footer;
|
||||
|
||||
[self headerRefresh];
|
||||
}
|
||||
|
||||
#pragma mark - 刷新的fangfa
|
||||
- (void)headerRefresh {
|
||||
self.page = 1;
|
||||
[self.presenter getClanDetailInfo:self.uid];
|
||||
[self.presenter getClanMemberList:self.uid page:self.page pageSize:20 state:0];
|
||||
}
|
||||
|
||||
- (void)footerRefresh {
|
||||
if (self.hasNoMoreData) {
|
||||
[self showErrorToast:@"没有更多数据了"];
|
||||
[self.tableView.mj_footer endRefreshing];
|
||||
return;
|
||||
}
|
||||
self.page++;
|
||||
[self.presenter getClanMemberList:self.uid page:self.page pageSize:20 state:1];
|
||||
}
|
||||
|
||||
#pragma mark - Private Method
|
||||
- (void)initSubViews {
|
||||
[self.view addSubview:self.tableView];
|
||||
[self.view addSubview:self.navView];
|
||||
[self.navView addSubview:self.backButton];
|
||||
[self.navView addSubview:self.titleLabel];
|
||||
self.tableView.tableHeaderView = self.headerView;
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
[self.navView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.right.top.mas_equalTo(self.view);
|
||||
make.height.mas_equalTo(kNavigationHeight);
|
||||
}];
|
||||
|
||||
[self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.right.top.mas_equalTo(self.view);
|
||||
make.bottom.mas_equalTo(self.view).offset(-20);
|
||||
}];
|
||||
|
||||
[self.backButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.mas_equalTo(self.view).mas_offset(10);
|
||||
make.top.mas_equalTo(statusbarHeight);
|
||||
make.height.width.mas_equalTo(44);
|
||||
}];
|
||||
|
||||
[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.centerX.mas_equalTo(self.navView);
|
||||
make.centerY.mas_equalTo(self.backButton);
|
||||
}];
|
||||
}
|
||||
|
||||
#pragma mark - UITableViewDelegate And UITableViewDataSource
|
||||
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
|
||||
return self.datasource.count;
|
||||
}
|
||||
|
||||
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
XPClanMemberTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPClanMemberTableViewCell class])];
|
||||
if (cell == nil) {
|
||||
cell = [[XPClanMemberTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPClanMemberTableViewCell class])];
|
||||
}
|
||||
ClanMemberInfoModel * memberInfo = [self.datasource objectAtIndex:indexPath.row];
|
||||
cell.isLast = (self.datasource.count -1) == indexPath.row;
|
||||
cell.memberInfo = memberInfo;
|
||||
return cell;
|
||||
}
|
||||
|
||||
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
return 66;
|
||||
}
|
||||
|
||||
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
|
||||
return 37;
|
||||
}
|
||||
|
||||
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
|
||||
if (section == 0) {
|
||||
if (self.sectionView == nil) {
|
||||
XPClanSectionView * sectionView = [[XPClanSectionView alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, 37)];
|
||||
sectionView.isTopCor = YES;
|
||||
self.sectionView = sectionView;
|
||||
}
|
||||
return self.sectionView;
|
||||
}
|
||||
return [UIView new];
|
||||
}
|
||||
|
||||
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{
|
||||
return 0.01f;
|
||||
}
|
||||
|
||||
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section{
|
||||
return [[UIView alloc]init];
|
||||
}
|
||||
|
||||
#pragma mark -XPClanProtocol
|
||||
- (void)getClanDetailInfoSuccess:(ClanDetailInfoModel *)clanDetailInfo {
|
||||
self.clanDetailInfo = clanDetailInfo;
|
||||
self.headerView.clanInfo = clanDetailInfo;
|
||||
self.titleLabel.text = clanDetailInfo.clan.name;
|
||||
[self.presenter getClanRoomList:clanDetailInfo.clan.cid];
|
||||
}
|
||||
|
||||
- (void)getClanMemberListSuccess:(ClanMemberDetailInfoModel *)memberInfo state:(int)state {
|
||||
self.sectionView.title = [NSString stringWithFormat:@"成员列表 (%ld)", memberInfo.count];
|
||||
if (state == 0) {
|
||||
self.hasNoMoreData = NO;
|
||||
[self.datasource removeAllObjects];
|
||||
[self.tableView.mj_header endRefreshing];
|
||||
} else {
|
||||
[self.tableView.mj_footer endRefreshing];
|
||||
}
|
||||
|
||||
if (memberInfo.members.count > 0) {
|
||||
[self.datasource addObjectsFromArray:memberInfo.members];
|
||||
} else {
|
||||
self.hasNoMoreData = YES;
|
||||
}
|
||||
[self.tableView reloadData];
|
||||
}
|
||||
|
||||
- (void)getClanRoomListSuccess:(NSArray *)array {
|
||||
self.headerView.clanRoomList = array;
|
||||
}
|
||||
|
||||
#pragma mark - XPGuildHeaderViewDelegate
|
||||
- (void)xPGuildHeaderView:(XPGuildHeaderView *)view dicSelectGuild:(GuildInfoModel *)guildInfo {
|
||||
XPMineGuildViewController * guildVC = [[XPMineGuildViewController alloc] init];
|
||||
guildVC.ownerUid = guildInfo.ownerUid;
|
||||
guildVC.guildId = guildInfo.hallId;
|
||||
[self.navigationController pushViewController:guildVC animated:YES];
|
||||
}
|
||||
|
||||
#pragma mark - Event Response
|
||||
- (void)backButtonAction:(UIButton *)sender {
|
||||
[self.navigationController popViewControllerAnimated:YES];
|
||||
}
|
||||
|
||||
#pragma mark - Getters And Setters
|
||||
- (UIView *)navView {
|
||||
if (!_navView) {
|
||||
_navView = [[UIView alloc] init];
|
||||
_navView.backgroundColor = [UIColor clearColor];
|
||||
}
|
||||
return _navView;
|
||||
}
|
||||
|
||||
- (UIButton *)backButton {
|
||||
if (!_backButton) {
|
||||
_backButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_backButton setImage:[UIImage imageNamed:@"home_search_white_back"] forState:UIControlStateNormal];
|
||||
[_backButton setImage:[UIImage imageNamed:@"home_search_white_back"] forState:UIControlStateSelected];
|
||||
[_backButton addTarget:self action:@selector(backButtonAction:) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _backButton;
|
||||
}
|
||||
|
||||
- (UILabel *)titleLabel {
|
||||
if (!_titleLabel) {
|
||||
_titleLabel = [[UILabel alloc] init];
|
||||
_titleLabel.textAlignment = NSTextAlignmentCenter;
|
||||
_titleLabel.font = [UIFont systemFontOfSize:17];
|
||||
_titleLabel.textColor = [UIColor whiteColor];
|
||||
}
|
||||
return _titleLabel;
|
||||
}
|
||||
|
||||
- (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];
|
||||
_tableView.showsVerticalScrollIndicator = NO;
|
||||
if (@available(iOS 11.0, *)) {
|
||||
_tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
|
||||
}
|
||||
[_tableView registerClass:[XPClanMemberTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPClanMemberTableViewCell class])];
|
||||
}
|
||||
return _tableView;
|
||||
}
|
||||
|
||||
- (NSMutableArray *)datasource {
|
||||
if (!_datasource) {
|
||||
_datasource = [NSMutableArray array];
|
||||
}
|
||||
return _datasource;
|
||||
}
|
||||
|
||||
- (XPGuildHeaderView *)headerView {
|
||||
if (!_headerView) {
|
||||
_headerView = [[XPGuildHeaderView alloc] init];
|
||||
_headerView.delegate = self;
|
||||
}
|
||||
return _headerView;
|
||||
}
|
||||
|
||||
@end
|
@@ -0,0 +1,17 @@
|
||||
//
|
||||
// XPMineGuildViewController.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2022/4/6.
|
||||
//
|
||||
|
||||
#import "MvpViewController.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
@interface XPMineGuildViewController : MvpViewController
|
||||
@property (nonatomic,strong) NSString *ownerUid;
|
||||
@property (nonatomic,strong) NSString *guildId;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
387
xplan-ios/Main/Mine/View/Guild/View/XPMineGuildViewController.m
Normal file
@@ -0,0 +1,387 @@
|
||||
//
|
||||
// XPMineGuildViewController.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2022/4/6.
|
||||
// 工会主页
|
||||
|
||||
#import "XPMineGuildViewController.h"
|
||||
///Third
|
||||
#import <Masonry/Masonry.h>
|
||||
#import <MJRefresh/MJRefresh.h>
|
||||
///Tool
|
||||
#import "XPMacro.h"
|
||||
#import "ThemeColor.h"
|
||||
#import "NetImageView.h"
|
||||
///Model
|
||||
#import "ClanDetailInfoModel.h"
|
||||
#import "ClanMemberDetailInfoModel.h"
|
||||
///View
|
||||
#import "XPClanMemberTableViewCell.h"
|
||||
#import "XPClanSectionView.h"
|
||||
///P
|
||||
#import "XPGuildPresenter.h"
|
||||
#import "XPGuildProtocol.h"
|
||||
|
||||
@interface XPMineGuildViewController ()<UITableViewDataSource, UITableViewDelegate, XPGuildProtocol>
|
||||
///导航栏
|
||||
@property (nonatomic,strong) UIView * navView;
|
||||
///返回按钮
|
||||
@property (nonatomic,strong) UIButton *backButton;
|
||||
///标题
|
||||
@property (nonatomic,strong) UILabel *titleLabel;
|
||||
///退出房间
|
||||
@property (nonatomic,strong) UIButton *exitButton;
|
||||
///列表
|
||||
@property (nonatomic,strong) UITableView *tableView;
|
||||
///顶部视图
|
||||
@property (nonatomic,strong) UIView * headerView;
|
||||
///显示头像
|
||||
@property (nonatomic,strong) NetImageView *avatarImageView;
|
||||
///显示id
|
||||
@property (nonatomic,strong) UILabel *idLabel;
|
||||
///背景图
|
||||
@property (nonatomic,strong) NetImageView *backImageView;
|
||||
///高斯模糊
|
||||
@property (nonatomic,strong) UIVisualEffectView * blurView;
|
||||
///当前页数
|
||||
@property (nonatomic,assign) int page;
|
||||
///是否有更多的数据
|
||||
@property (nonatomic,assign) BOOL hasNoMoreData;
|
||||
///数据源
|
||||
@property (nonatomic,strong) NSMutableArray *datasource;
|
||||
///区头
|
||||
@property (nonatomic,strong) XPClanSectionView *sectionView;
|
||||
@end
|
||||
|
||||
@implementation XPMineGuildViewController
|
||||
|
||||
- (BOOL)isHiddenNavBar {
|
||||
return YES;
|
||||
}
|
||||
|
||||
- (XPGuildPresenter *)createPresenter {
|
||||
return [[XPGuildPresenter alloc] init];
|
||||
}
|
||||
|
||||
- (void)viewDidLoad {
|
||||
[super viewDidLoad];
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
[self initHeaderAndFooterRrfresh];
|
||||
}
|
||||
#pragma mark - 下拉刷新
|
||||
- (void)initHeaderAndFooterRrfresh {
|
||||
MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(headerRefresh)];
|
||||
header.stateLabel.font = [UIFont systemFontOfSize:10.0];
|
||||
header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0];
|
||||
header.stateLabel.textColor = [ThemeColor secondTextColor];
|
||||
header.lastUpdatedTimeLabel.textColor = [ThemeColor secondTextColor];
|
||||
self.tableView.mj_header = header;
|
||||
|
||||
MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRefresh)];
|
||||
footer.stateLabel.textColor = [ThemeColor secondTextColor];
|
||||
footer.stateLabel.font = [UIFont systemFontOfSize:10.0];
|
||||
self.tableView.mj_footer = footer;
|
||||
|
||||
[self headerRefresh];
|
||||
}
|
||||
|
||||
#pragma mark - 刷新的fangfa
|
||||
- (void)headerRefresh {
|
||||
if (self.guildId.length <= 0 || self.ownerUid.length <= 0) {
|
||||
[self showErrorToast:@"获取信息失败"];
|
||||
[self.navigationController popViewControllerAnimated:YES];
|
||||
return;
|
||||
}
|
||||
self.page = 1;
|
||||
[self.presenter getClanDetailInfo:self.ownerUid];
|
||||
[self.presenter getGuildMemberList:self.guildId page:self.page pageSize:20 state:0];
|
||||
}
|
||||
|
||||
- (void)footerRefresh {
|
||||
if (self.guildId.length <= 0 || self.ownerUid.length <= 0) {
|
||||
[self showErrorToast:@"获取信息失败"];
|
||||
[self.navigationController popViewControllerAnimated:YES];
|
||||
return;
|
||||
}
|
||||
|
||||
if (self.hasNoMoreData) {
|
||||
[self showErrorToast:@"没有更多数据了"];
|
||||
[self.tableView.mj_footer endRefreshing];
|
||||
return;
|
||||
}
|
||||
self.page++;
|
||||
[self.presenter getGuildMemberList:self.guildId page:self.page pageSize:20 state:1];
|
||||
}
|
||||
|
||||
#pragma mark - Private Method
|
||||
- (void)initSubViews {
|
||||
[self.view addSubview:self.backImageView];
|
||||
[self.view addSubview:self.tableView];
|
||||
[self.view addSubview:self.navView];
|
||||
[self.navView addSubview:self.backButton];
|
||||
[self.navView addSubview:self.titleLabel];
|
||||
[self.navView addSubview:self.exitButton];
|
||||
|
||||
[self.backImageView addSubview:self.blurView];
|
||||
|
||||
[self.headerView addSubview:self.avatarImageView];
|
||||
[self.headerView addSubview:self.idLabel];
|
||||
self.headerView.frame = CGRectMake(0, 0, KScreenWidth, 174);
|
||||
self.tableView.tableHeaderView = self.headerView;
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
[self.navView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.right.top.mas_equalTo(self.view);
|
||||
make.height.mas_equalTo(kNavigationHeight);
|
||||
}];
|
||||
|
||||
[self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.right.top.mas_equalTo(self.view);
|
||||
make.bottom.mas_equalTo(self.view).offset(-20);
|
||||
}];
|
||||
|
||||
[self.backButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.mas_equalTo(self.view).mas_offset(10);
|
||||
make.top.mas_equalTo(statusbarHeight);
|
||||
make.height.width.mas_equalTo(44);
|
||||
}];
|
||||
|
||||
[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.mas_equalTo(self.backButton.mas_right);
|
||||
make.right.mas_equalTo(self.exitButton.mas_left);
|
||||
make.centerY.mas_equalTo(self.backButton);
|
||||
}];
|
||||
|
||||
[self.exitButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.right.mas_equalTo(self.navView).offset(-15);
|
||||
make.centerY.mas_equalTo(self.backButton);
|
||||
}];
|
||||
|
||||
[self.backImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.right.top.mas_equalTo(self.view);
|
||||
make.height.mas_equalTo(250);
|
||||
}];
|
||||
|
||||
[self.blurView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.edges.mas_equalTo(self.backImageView);
|
||||
}];
|
||||
|
||||
[self.avatarImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(70, 70));
|
||||
make.centerX.mas_equalTo(self.headerView);
|
||||
make.top.mas_equalTo(self.headerView).offset(66);
|
||||
}];
|
||||
|
||||
[self.idLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.centerX.mas_equalTo(self.headerView);
|
||||
make.top.mas_equalTo(self.avatarImageView.mas_bottom).offset(10);
|
||||
}];
|
||||
}
|
||||
|
||||
#pragma mark - UITableViewDelegate And UITableViewDataSource
|
||||
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
|
||||
return self.datasource.count;
|
||||
}
|
||||
|
||||
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
XPClanMemberTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPClanMemberTableViewCell class])];
|
||||
if (cell == nil) {
|
||||
cell = [[XPClanMemberTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPClanMemberTableViewCell class])];
|
||||
}
|
||||
ClanMemberInfoModel * memberInfo = [self.datasource objectAtIndex:indexPath.row];
|
||||
cell.isLast = (self.datasource.count -1) == indexPath.row;
|
||||
cell.memberInfo = memberInfo;
|
||||
return cell;
|
||||
}
|
||||
|
||||
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
return 66;
|
||||
}
|
||||
|
||||
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
|
||||
return 37;
|
||||
}
|
||||
|
||||
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
|
||||
if (section == 0) {
|
||||
if (self.sectionView == nil) {
|
||||
XPClanSectionView * sectionView = [[XPClanSectionView alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, 37)];
|
||||
sectionView.isTopCor = YES;
|
||||
self.sectionView = sectionView;
|
||||
}
|
||||
return self.sectionView;
|
||||
}
|
||||
return [UIView new];
|
||||
}
|
||||
|
||||
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{
|
||||
return 0.01f;
|
||||
}
|
||||
|
||||
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section{
|
||||
return [[UIView alloc]init];
|
||||
}
|
||||
|
||||
#pragma mark -XPClanProtocol
|
||||
|
||||
- (void)getGuildMemberListSuccess:(ClanMemberDetailInfoModel *)memberInfo state:(int)state {
|
||||
self.sectionView.title = [NSString stringWithFormat:@"成员列表 (%ld)人", memberInfo.count];
|
||||
if (state == 0) {
|
||||
self.hasNoMoreData = NO;
|
||||
[self.datasource removeAllObjects];
|
||||
[self.tableView.mj_header endRefreshing];
|
||||
} else {
|
||||
[self.tableView.mj_footer endRefreshing];
|
||||
}
|
||||
|
||||
if (memberInfo.members.count > 0) {
|
||||
[self.datasource addObjectsFromArray:memberInfo.members];
|
||||
} else {
|
||||
self.hasNoMoreData = YES;
|
||||
}
|
||||
[self.tableView reloadData];
|
||||
}
|
||||
|
||||
- (void)getGuildMemberListFail:(NSString *)msg state:(int)state {
|
||||
if (state == 0) {
|
||||
[self.tableView.mj_header endRefreshing];
|
||||
} else {
|
||||
[self.tableView.mj_footer endRefreshing];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)getClanDetailInfoSuccess:(ClanDetailInfoModel *)clanDetailInfo {
|
||||
self.avatarImageView.imageUrl = clanDetailInfo.hall.ownerAvatar;
|
||||
self.idLabel.text = [NSString stringWithFormat:@"房间ID:%@",clanDetailInfo.hall.ownerErbanNo];
|
||||
self.backImageView.imageUrl = clanDetailInfo.hall.ownerAvatar;
|
||||
self.titleLabel.text = clanDetailInfo.hall.ownerNick;
|
||||
}
|
||||
|
||||
#pragma mark - Event Response
|
||||
- (void)backButtonAction:(UIButton *)sender {
|
||||
[self.navigationController popViewControllerAnimated:YES];
|
||||
}
|
||||
|
||||
- (void)exitButtonAction:(UIButton *)sender {
|
||||
|
||||
}
|
||||
|
||||
#pragma mark - Getters And Setters
|
||||
|
||||
- (UIView *)navView {
|
||||
if (!_navView) {
|
||||
_navView = [[UIView alloc] init];
|
||||
_navView.backgroundColor = [UIColor clearColor];
|
||||
}
|
||||
return _navView;
|
||||
}
|
||||
|
||||
- (UIButton *)backButton {
|
||||
if (!_backButton) {
|
||||
_backButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_backButton setImage:[UIImage imageNamed:@"home_search_white_back"] forState:UIControlStateNormal];
|
||||
[_backButton setImage:[UIImage imageNamed:@"home_search_white_back"] forState:UIControlStateSelected];
|
||||
[_backButton addTarget:self action:@selector(backButtonAction:) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _backButton;
|
||||
}
|
||||
|
||||
- (UILabel *)titleLabel {
|
||||
if (!_titleLabel) {
|
||||
_titleLabel = [[UILabel alloc] init];
|
||||
_titleLabel.textAlignment = NSTextAlignmentCenter;
|
||||
_titleLabel.font = [UIFont systemFontOfSize:17];
|
||||
_titleLabel.textColor = [UIColor whiteColor];
|
||||
}
|
||||
return _titleLabel;
|
||||
}
|
||||
|
||||
- (UIButton *)exitButton {
|
||||
if (!_exitButton) {
|
||||
_exitButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_exitButton setTitle:@"退出房间" forState:UIControlStateNormal];
|
||||
[_exitButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
|
||||
_exitButton.titleLabel.font = [UIFont systemFontOfSize:16];
|
||||
[_exitButton addTarget:self action:@selector(exitButtonAction:) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _exitButton;
|
||||
}
|
||||
|
||||
- (UIView *)headerView {
|
||||
if (!_headerView) {
|
||||
_headerView = [[UIView alloc] init];
|
||||
_headerView.backgroundColor = [UIColor clearColor];
|
||||
}
|
||||
return _headerView;
|
||||
}
|
||||
|
||||
- (NetImageView *)avatarImageView {
|
||||
if (!_avatarImageView) {
|
||||
NetImageConfig * config = [[NetImageConfig alloc]init];
|
||||
config.imageType = ImageTypeUserIcon;
|
||||
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
|
||||
_avatarImageView = [[NetImageView alloc] initWithConfig:config];
|
||||
_avatarImageView.layer.masksToBounds = YES;
|
||||
_avatarImageView.layer.cornerRadius = 70/2;
|
||||
}
|
||||
return _avatarImageView;
|
||||
}
|
||||
|
||||
- (UILabel *)idLabel {
|
||||
if (!_idLabel) {
|
||||
_idLabel = [[UILabel alloc] init];
|
||||
_idLabel.font = [UIFont systemFontOfSize:13];
|
||||
_idLabel.textColor = [UIColor whiteColor];
|
||||
_idLabel.textAlignment = NSTextAlignmentCenter;
|
||||
}
|
||||
return _idLabel;
|
||||
}
|
||||
|
||||
- (NetImageView *)backImageView {
|
||||
if (!_backImageView) {
|
||||
NetImageConfig * config = [[NetImageConfig alloc]init];
|
||||
config.imageType = ImageTypeUserIcon;
|
||||
_backImageView = [[NetImageView alloc] initWithConfig:config];
|
||||
_backImageView.contentMode = UIViewContentModeScaleAspectFill;
|
||||
_backImageView.layer.masksToBounds = YES;
|
||||
}
|
||||
return _backImageView;
|
||||
}
|
||||
|
||||
- (UIVisualEffectView *)blurView {
|
||||
if (!_blurView) {
|
||||
UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];
|
||||
_blurView = [[UIVisualEffectView alloc] initWithEffect:blurEffect];
|
||||
_blurView.alpha = 0.3;
|
||||
}
|
||||
return _blurView;
|
||||
}
|
||||
|
||||
|
||||
- (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];
|
||||
_tableView.showsVerticalScrollIndicator = NO;
|
||||
if (@available(iOS 11.0, *)) {
|
||||
_tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
|
||||
}
|
||||
[_tableView registerClass:[XPClanMemberTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPClanMemberTableViewCell class])];
|
||||
}
|
||||
return _tableView;
|
||||
}
|
||||
|
||||
- (NSMutableArray *)datasource {
|
||||
if (!_datasource) {
|
||||
_datasource = [NSMutableArray array];
|
||||
}
|
||||
return _datasource;
|
||||
}
|
||||
@end
|
@@ -45,6 +45,8 @@
|
||||
#import "XPSkillCardViewController.h"
|
||||
#import "XPMineVisitorViewController.h"
|
||||
#import "XPMineFansTeamViewController.h"
|
||||
#import "XPMineClanViewController.h"
|
||||
|
||||
|
||||
@interface XPMineViewController ()<UITableViewDelegate, UITableViewDataSource, XPMineProtocol, XPMineHeadItemTableViewCellDelegate, XPMineHeadViewDelegate>
|
||||
///顶部背景
|
||||
@@ -268,6 +270,13 @@
|
||||
[self.navigationController pushViewController:fansTeamVc animated:YES];
|
||||
}
|
||||
break;
|
||||
case XPMineItemType_My_Guild:
|
||||
{
|
||||
XPMineClanViewController * clanVC = [[XPMineClanViewController alloc] init];
|
||||
clanVC.uid = [NSString stringWithFormat:@"%ld", self.userInfo.uid];
|
||||
[self.navigationController pushViewController:clanVC animated:YES];
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|