房间s1的UI 已经布局完成 开始接入云信
This commit is contained in:
2
Podfile
2
Podfile
@@ -39,5 +39,7 @@ target 'xplan-ios' do
|
|||||||
pod 'mob_sharesdk/ShareSDKPlatforms/QQ'
|
pod 'mob_sharesdk/ShareSDKPlatforms/QQ'
|
||||||
pod 'mob_sharesdk/ShareSDKPlatforms/WeChat'
|
pod 'mob_sharesdk/ShareSDKPlatforms/WeChat'
|
||||||
pod 'mob_sharesdk/ShareSDKPlatforms/Apple'
|
pod 'mob_sharesdk/ShareSDKPlatforms/Apple'
|
||||||
|
#调试
|
||||||
|
pod 'LookinServer', :configurations => ['Debug']
|
||||||
|
|
||||||
end
|
end
|
||||||
|
@@ -19,6 +19,7 @@ PODS:
|
|||||||
- FFPopup (1.1.5)
|
- FFPopup (1.1.5)
|
||||||
- HappyDNS (0.3.17)
|
- HappyDNS (0.3.17)
|
||||||
- IAPHelper (1.1)
|
- IAPHelper (1.1)
|
||||||
|
- LookinServer (1.0.4)
|
||||||
- MarqueeLabel-ObjC (3.3.0)
|
- MarqueeLabel-ObjC (3.3.0)
|
||||||
- Masonry (1.1.0)
|
- Masonry (1.1.0)
|
||||||
- MBProgressHUD (1.2.0)
|
- MBProgressHUD (1.2.0)
|
||||||
@@ -57,6 +58,7 @@ DEPENDENCIES:
|
|||||||
- Base64
|
- Base64
|
||||||
- FFPopup
|
- FFPopup
|
||||||
- IAPHelper
|
- IAPHelper
|
||||||
|
- LookinServer
|
||||||
- MarqueeLabel-ObjC
|
- MarqueeLabel-ObjC
|
||||||
- Masonry
|
- Masonry
|
||||||
- MBProgressHUD
|
- MBProgressHUD
|
||||||
@@ -82,6 +84,7 @@ SPEC REPOS:
|
|||||||
- FFPopup
|
- FFPopup
|
||||||
- HappyDNS
|
- HappyDNS
|
||||||
- IAPHelper
|
- IAPHelper
|
||||||
|
- LookinServer
|
||||||
- MarqueeLabel-ObjC
|
- MarqueeLabel-ObjC
|
||||||
- Masonry
|
- Masonry
|
||||||
- MBProgressHUD
|
- MBProgressHUD
|
||||||
@@ -104,6 +107,7 @@ SPEC CHECKSUMS:
|
|||||||
FFPopup: a208dcee8db3e54ec4a88fcd6481f6f5d85b7a83
|
FFPopup: a208dcee8db3e54ec4a88fcd6481f6f5d85b7a83
|
||||||
HappyDNS: 848ef73e24f2b0e2752064223ce2dc0dd88900ea
|
HappyDNS: 848ef73e24f2b0e2752064223ce2dc0dd88900ea
|
||||||
IAPHelper: fd74f53b0ac142eed085777b88b86a11746a2dd4
|
IAPHelper: fd74f53b0ac142eed085777b88b86a11746a2dd4
|
||||||
|
LookinServer: 743c1681771d0a8dcc38825325a080c3186404a5
|
||||||
MarqueeLabel-ObjC: 696eaa82e4fcc7fb53e4fdf37ac138f03bf022d6
|
MarqueeLabel-ObjC: 696eaa82e4fcc7fb53e4fdf37ac138f03bf022d6
|
||||||
Masonry: 678fab65091a9290e40e2832a55e7ab731aad201
|
Masonry: 678fab65091a9290e40e2832a55e7ab731aad201
|
||||||
MBProgressHUD: 3ee5efcc380f6a79a7cc9b363dd669c5e1ae7406
|
MBProgressHUD: 3ee5efcc380f6a79a7cc9b363dd669c5e1ae7406
|
||||||
@@ -119,6 +123,6 @@ SPEC CHECKSUMS:
|
|||||||
SZTextView: 094dc6acc9beec537685c545d6e3e0d4975174e1
|
SZTextView: 094dc6acc9beec537685c545d6e3e0d4975174e1
|
||||||
YYText: 5c461d709e24d55a182d1441c41dc639a18a4849
|
YYText: 5c461d709e24d55a182d1441c41dc639a18a4849
|
||||||
|
|
||||||
PODFILE CHECKSUM: 111c1baf4d2041d86b97a47854c455685b233ed1
|
PODFILE CHECKSUM: 359c488aca65b2f81870e252d1da6f7da7b45dd5
|
||||||
|
|
||||||
COCOAPODS: 1.10.1
|
COCOAPODS: 1.10.1
|
||||||
|
@@ -127,6 +127,11 @@
|
|||||||
E86596462701612D00846EBD /* UIImageView+Vague.m in Sources */ = {isa = PBXBuildFile; fileRef = E86596452701612D00846EBD /* UIImageView+Vague.m */; };
|
E86596462701612D00846EBD /* UIImageView+Vague.m in Sources */ = {isa = PBXBuildFile; fileRef = E86596452701612D00846EBD /* UIImageView+Vague.m */; };
|
||||||
E86596512701A1C000846EBD /* StatisticsService.m in Sources */ = {isa = PBXBuildFile; fileRef = E86596502701A1C000846EBD /* StatisticsService.m */; };
|
E86596512701A1C000846EBD /* StatisticsService.m in Sources */ = {isa = PBXBuildFile; fileRef = E86596502701A1C000846EBD /* StatisticsService.m */; };
|
||||||
E86596542701A55500846EBD /* StatisticsServiceHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = E86596532701A55500846EBD /* StatisticsServiceHelper.m */; };
|
E86596542701A55500846EBD /* StatisticsServiceHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = E86596532701A55500846EBD /* StatisticsServiceHelper.m */; };
|
||||||
|
E868070A271959DB0024F48F /* XPRoomPositionView.m in Sources */ = {isa = PBXBuildFile; fileRef = E8680709271959DB0024F48F /* XPRoomPositionView.m */; };
|
||||||
|
E868070F27195DD30024F48F /* XPRoomPositionLayoutImpl.m in Sources */ = {isa = PBXBuildFile; fileRef = E868070E27195DD30024F48F /* XPRoomPositionLayoutImpl.m */; };
|
||||||
|
E868071327195E1A0024F48F /* XPRoomPositionDataSourceImpl.m in Sources */ = {isa = PBXBuildFile; fileRef = E868071227195E1A0024F48F /* XPRoomPositionDataSourceImpl.m */; };
|
||||||
|
E8680718271967B00024F48F /* XPRoomPostionBaseItemView.m in Sources */ = {isa = PBXBuildFile; fileRef = E8680717271967B00024F48F /* XPRoomPostionBaseItemView.m */; };
|
||||||
|
E868071B271969A50024F48F /* XCRoomPostionNickView.m in Sources */ = {isa = PBXBuildFile; fileRef = E868071A271969A50024F48F /* XCRoomPostionNickView.m */; };
|
||||||
E872308926E89BE000B90D4F /* LoginPhoneViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E872308826E89BE000B90D4F /* LoginPhoneViewController.m */; };
|
E872308926E89BE000B90D4F /* LoginPhoneViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E872308826E89BE000B90D4F /* LoginPhoneViewController.m */; };
|
||||||
E872308D26E89DAA00B90D4F /* LoginInputView.m in Sources */ = {isa = PBXBuildFile; fileRef = E872308C26E89DAA00B90D4F /* LoginInputView.m */; };
|
E872308D26E89DAA00B90D4F /* LoginInputView.m in Sources */ = {isa = PBXBuildFile; fileRef = E872308C26E89DAA00B90D4F /* LoginInputView.m */; };
|
||||||
E872309326E8D31500B90D4F /* LoginVerifCodeView.m in Sources */ = {isa = PBXBuildFile; fileRef = E872309226E8D31500B90D4F /* LoginVerifCodeView.m */; };
|
E872309326E8D31500B90D4F /* LoginVerifCodeView.m in Sources */ = {isa = PBXBuildFile; fileRef = E872309226E8D31500B90D4F /* LoginVerifCodeView.m */; };
|
||||||
@@ -176,7 +181,7 @@
|
|||||||
E8AEAEED27141AE20017FCE0 /* XPRoomBackUIView.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AEAEEC27141AE20017FCE0 /* XPRoomBackUIView.m */; };
|
E8AEAEED27141AE20017FCE0 /* XPRoomBackUIView.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AEAEEC27141AE20017FCE0 /* XPRoomBackUIView.m */; };
|
||||||
E8AEAEF027141C430017FCE0 /* XPRoomBottomMenuView.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AEAEEF27141C430017FCE0 /* XPRoomBottomMenuView.m */; };
|
E8AEAEF027141C430017FCE0 /* XPRoomBottomMenuView.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AEAEEF27141C430017FCE0 /* XPRoomBottomMenuView.m */; };
|
||||||
E8AEAEF327141C7C0017FCE0 /* XPRoomMessageView.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AEAEF227141C7C0017FCE0 /* XPRoomMessageView.m */; };
|
E8AEAEF327141C7C0017FCE0 /* XPRoomMessageView.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AEAEF227141C7C0017FCE0 /* XPRoomMessageView.m */; };
|
||||||
E8AEAEF627141C910017FCE0 /* XPRoomPositionView.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AEAEF527141C910017FCE0 /* XPRoomPositionView.m */; };
|
E8AEAEF627141C910017FCE0 /* XPRoomPositionContainView.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AEAEF527141C910017FCE0 /* XPRoomPositionContainView.m */; };
|
||||||
E8AEAEF927141CA30017FCE0 /* XPRoomInfoView.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AEAEF827141CA30017FCE0 /* XPRoomInfoView.m */; };
|
E8AEAEF927141CA30017FCE0 /* XPRoomInfoView.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AEAEF827141CA30017FCE0 /* XPRoomInfoView.m */; };
|
||||||
E8B825B726E9A7D8009E8E9F /* BaseObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E8B825B626E9A7D8009E8E9F /* BaseObject.m */; };
|
E8B825B726E9A7D8009E8E9F /* BaseObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E8B825B626E9A7D8009E8E9F /* BaseObject.m */; };
|
||||||
E8B825BF26E9E57D009E8E9F /* LoginTicketInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = E8B825BE26E9E57D009E8E9F /* LoginTicketInfo.m */; };
|
E8B825BF26E9E57D009E8E9F /* LoginTicketInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = E8B825BE26E9E57D009E8E9F /* LoginTicketInfo.m */; };
|
||||||
@@ -453,6 +458,18 @@
|
|||||||
E86596502701A1C000846EBD /* StatisticsService.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = StatisticsService.m; sourceTree = "<group>"; };
|
E86596502701A1C000846EBD /* StatisticsService.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = StatisticsService.m; sourceTree = "<group>"; };
|
||||||
E86596522701A55500846EBD /* StatisticsServiceHelper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StatisticsServiceHelper.h; sourceTree = "<group>"; };
|
E86596522701A55500846EBD /* StatisticsServiceHelper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StatisticsServiceHelper.h; sourceTree = "<group>"; };
|
||||||
E86596532701A55500846EBD /* StatisticsServiceHelper.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = StatisticsServiceHelper.m; sourceTree = "<group>"; };
|
E86596532701A55500846EBD /* StatisticsServiceHelper.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = StatisticsServiceHelper.m; sourceTree = "<group>"; };
|
||||||
|
E8680708271959DB0024F48F /* XPRoomPositionView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomPositionView.h; sourceTree = "<group>"; };
|
||||||
|
E8680709271959DB0024F48F /* XPRoomPositionView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomPositionView.m; sourceTree = "<group>"; };
|
||||||
|
E868070D27195DD30024F48F /* XPRoomPositionLayoutImpl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomPositionLayoutImpl.h; sourceTree = "<group>"; };
|
||||||
|
E868070E27195DD30024F48F /* XPRoomPositionLayoutImpl.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomPositionLayoutImpl.m; sourceTree = "<group>"; };
|
||||||
|
E868071027195DF00024F48F /* XPRoomPositionLayoutProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomPositionLayoutProtocol.h; sourceTree = "<group>"; };
|
||||||
|
E868071127195E1A0024F48F /* XPRoomPositionDataSourceImpl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomPositionDataSourceImpl.h; sourceTree = "<group>"; };
|
||||||
|
E868071227195E1A0024F48F /* XPRoomPositionDataSourceImpl.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomPositionDataSourceImpl.m; sourceTree = "<group>"; };
|
||||||
|
E868071427195E340024F48F /* XPRoomPositionDataSourceProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomPositionDataSourceProtocol.h; sourceTree = "<group>"; };
|
||||||
|
E8680716271967B00024F48F /* XPRoomPostionBaseItemView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomPostionBaseItemView.h; sourceTree = "<group>"; };
|
||||||
|
E8680717271967B00024F48F /* XPRoomPostionBaseItemView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomPostionBaseItemView.m; sourceTree = "<group>"; };
|
||||||
|
E8680719271969A50024F48F /* XCRoomPostionNickView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XCRoomPostionNickView.h; sourceTree = "<group>"; };
|
||||||
|
E868071A271969A50024F48F /* XCRoomPostionNickView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XCRoomPostionNickView.m; sourceTree = "<group>"; };
|
||||||
E872308726E89BE000B90D4F /* LoginPhoneViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LoginPhoneViewController.h; sourceTree = "<group>"; };
|
E872308726E89BE000B90D4F /* LoginPhoneViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LoginPhoneViewController.h; sourceTree = "<group>"; };
|
||||||
E872308826E89BE000B90D4F /* LoginPhoneViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LoginPhoneViewController.m; sourceTree = "<group>"; };
|
E872308826E89BE000B90D4F /* LoginPhoneViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LoginPhoneViewController.m; sourceTree = "<group>"; };
|
||||||
E872308B26E89DAA00B90D4F /* LoginInputView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LoginInputView.h; sourceTree = "<group>"; };
|
E872308B26E89DAA00B90D4F /* LoginInputView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LoginInputView.h; sourceTree = "<group>"; };
|
||||||
@@ -546,8 +563,8 @@
|
|||||||
E8AEAEEF27141C430017FCE0 /* XPRoomBottomMenuView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomBottomMenuView.m; sourceTree = "<group>"; };
|
E8AEAEEF27141C430017FCE0 /* XPRoomBottomMenuView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomBottomMenuView.m; sourceTree = "<group>"; };
|
||||||
E8AEAEF127141C7C0017FCE0 /* XPRoomMessageView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomMessageView.h; sourceTree = "<group>"; };
|
E8AEAEF127141C7C0017FCE0 /* XPRoomMessageView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomMessageView.h; sourceTree = "<group>"; };
|
||||||
E8AEAEF227141C7C0017FCE0 /* XPRoomMessageView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomMessageView.m; sourceTree = "<group>"; };
|
E8AEAEF227141C7C0017FCE0 /* XPRoomMessageView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomMessageView.m; sourceTree = "<group>"; };
|
||||||
E8AEAEF427141C910017FCE0 /* XPRoomPositionView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomPositionView.h; sourceTree = "<group>"; };
|
E8AEAEF427141C910017FCE0 /* XPRoomPositionContainView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomPositionContainView.h; sourceTree = "<group>"; };
|
||||||
E8AEAEF527141C910017FCE0 /* XPRoomPositionView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomPositionView.m; sourceTree = "<group>"; };
|
E8AEAEF527141C910017FCE0 /* XPRoomPositionContainView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomPositionContainView.m; sourceTree = "<group>"; };
|
||||||
E8AEAEF727141CA30017FCE0 /* XPRoomInfoView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomInfoView.h; sourceTree = "<group>"; };
|
E8AEAEF727141CA30017FCE0 /* XPRoomInfoView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomInfoView.h; sourceTree = "<group>"; };
|
||||||
E8AEAEF827141CA30017FCE0 /* XPRoomInfoView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomInfoView.m; sourceTree = "<group>"; };
|
E8AEAEF827141CA30017FCE0 /* XPRoomInfoView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomInfoView.m; sourceTree = "<group>"; };
|
||||||
E8B825B526E9A7D8009E8E9F /* BaseObject.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BaseObject.h; sourceTree = "<group>"; };
|
E8B825B526E9A7D8009E8E9F /* BaseObject.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BaseObject.h; sourceTree = "<group>"; };
|
||||||
@@ -1279,6 +1296,49 @@
|
|||||||
path = StatisticsService;
|
path = StatisticsService;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
|
E8680707271959090024F48F /* SubViews */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
E86807152719678B0024F48F /* View */,
|
||||||
|
E868070C27195D4C0024F48F /* Object */,
|
||||||
|
E868070B27195AA30024F48F /* Config */,
|
||||||
|
E8680708271959DB0024F48F /* XPRoomPositionView.h */,
|
||||||
|
E8680709271959DB0024F48F /* XPRoomPositionView.m */,
|
||||||
|
);
|
||||||
|
path = SubViews;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
E868070B27195AA30024F48F /* Config */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
);
|
||||||
|
path = Config;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
E868070C27195D4C0024F48F /* Object */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
E868070D27195DD30024F48F /* XPRoomPositionLayoutImpl.h */,
|
||||||
|
E868070E27195DD30024F48F /* XPRoomPositionLayoutImpl.m */,
|
||||||
|
E868071027195DF00024F48F /* XPRoomPositionLayoutProtocol.h */,
|
||||||
|
E868071127195E1A0024F48F /* XPRoomPositionDataSourceImpl.h */,
|
||||||
|
E868071227195E1A0024F48F /* XPRoomPositionDataSourceImpl.m */,
|
||||||
|
E868071427195E340024F48F /* XPRoomPositionDataSourceProtocol.h */,
|
||||||
|
);
|
||||||
|
path = Object;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
E86807152719678B0024F48F /* View */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
E8680716271967B00024F48F /* XPRoomPostionBaseItemView.h */,
|
||||||
|
E8680717271967B00024F48F /* XPRoomPostionBaseItemView.m */,
|
||||||
|
E8680719271969A50024F48F /* XCRoomPostionNickView.h */,
|
||||||
|
E868071A271969A50024F48F /* XCRoomPostionNickView.m */,
|
||||||
|
);
|
||||||
|
path = View;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
E872308A26E89D5100B90D4F /* CustomView */ = {
|
E872308A26E89D5100B90D4F /* CustomView */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
@@ -1526,8 +1586,9 @@
|
|||||||
E8AEAEEA27141ACC0017FCE0 /* PositionView */ = {
|
E8AEAEEA27141ACC0017FCE0 /* PositionView */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
E8AEAEF427141C910017FCE0 /* XPRoomPositionView.h */,
|
E8680707271959090024F48F /* SubViews */,
|
||||||
E8AEAEF527141C910017FCE0 /* XPRoomPositionView.m */,
|
E8AEAEF427141C910017FCE0 /* XPRoomPositionContainView.h */,
|
||||||
|
E8AEAEF527141C910017FCE0 /* XPRoomPositionContainView.m */,
|
||||||
);
|
);
|
||||||
path = PositionView;
|
path = PositionView;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -1974,6 +2035,7 @@
|
|||||||
E8E70D9226F2F60C00F03460 /* XPMineItemModel.m in Sources */,
|
E8E70D9226F2F60C00F03460 /* XPMineItemModel.m in Sources */,
|
||||||
189DD74A26E21D8400AB55B1 /* SSKeychain.m in Sources */,
|
189DD74A26E21D8400AB55B1 /* SSKeychain.m in Sources */,
|
||||||
E8B846CF26FDD96100A777FE /* XPMineRechageHeadView.m in Sources */,
|
E8B846CF26FDD96100A777FE /* XPMineRechageHeadView.m in Sources */,
|
||||||
|
E868070F27195DD30024F48F /* XPRoomPositionLayoutImpl.m in Sources */,
|
||||||
186A534926FC6ED900D67B2C /* TTAlertMessageAttributedConfig.m in Sources */,
|
186A534926FC6ED900D67B2C /* TTAlertMessageAttributedConfig.m in Sources */,
|
||||||
E81C27AE26EF39AB0031E639 /* AppDelegate+ThirdConfig.m in Sources */,
|
E81C27AE26EF39AB0031E639 /* AppDelegate+ThirdConfig.m in Sources */,
|
||||||
E8E70D8326F2F51A00F03460 /* XPMineHeadView.m in Sources */,
|
E8E70D8326F2F51A00F03460 /* XPMineHeadView.m in Sources */,
|
||||||
@@ -2021,6 +2083,7 @@
|
|||||||
E8EEB91426FC7786007C6EBA /* XPMineUserInfoNickViewController.m in Sources */,
|
E8EEB91426FC7786007C6EBA /* XPMineUserInfoNickViewController.m in Sources */,
|
||||||
18E7B31B26F0982E0064BC9B /* UserExpand.m in Sources */,
|
18E7B31B26F0982E0064BC9B /* UserExpand.m in Sources */,
|
||||||
E824543526F57D6E00BE8163 /* XPLoginVerifBindPhoneViewController.m in Sources */,
|
E824543526F57D6E00BE8163 /* XPLoginVerifBindPhoneViewController.m in Sources */,
|
||||||
|
E8680718271967B00024F48F /* XPRoomPostionBaseItemView.m in Sources */,
|
||||||
E8AEAEE4271418DA0017FCE0 /* XPRoomBaseManager.m in Sources */,
|
E8AEAEE4271418DA0017FCE0 /* XPRoomBaseManager.m in Sources */,
|
||||||
E8B825CD26EA18C8009E8E9F /* ThemeColor.m in Sources */,
|
E8B825CD26EA18C8009E8E9F /* ThemeColor.m in Sources */,
|
||||||
E8AC720D26F435F5007D6E91 /* UIImageView+LoadImage.m in Sources */,
|
E8AC720D26F435F5007D6E91 /* UIImageView+LoadImage.m in Sources */,
|
||||||
@@ -2058,10 +2121,12 @@
|
|||||||
E89DA67527009ACD008483C1 /* XPMineRechargeNavView.m in Sources */,
|
E89DA67527009ACD008483C1 /* XPMineRechargeNavView.m in Sources */,
|
||||||
186A536926FC6F2E00D67B2C /* XCShareView.m in Sources */,
|
186A536926FC6F2E00D67B2C /* XCShareView.m in Sources */,
|
||||||
186A534C26FC6ED900D67B2C /* TTAlertView.m in Sources */,
|
186A534C26FC6ED900D67B2C /* TTAlertView.m in Sources */,
|
||||||
|
E868070A271959DB0024F48F /* XPRoomPositionView.m in Sources */,
|
||||||
E8B825BF26E9E57D009E8E9F /* LoginTicketInfo.m in Sources */,
|
E8B825BF26E9E57D009E8E9F /* LoginTicketInfo.m in Sources */,
|
||||||
187EEEF026E89FE8002833B2 /* AccountInfoStorage.m in Sources */,
|
187EEEF026E89FE8002833B2 /* AccountInfoStorage.m in Sources */,
|
||||||
186A536B26FC6F2E00D67B2C /* XCShareItemCell.m in Sources */,
|
186A536B26FC6F2E00D67B2C /* XCShareItemCell.m in Sources */,
|
||||||
E8B846C526FDB41A00A777FE /* XPMineUserInfolbumPresenter.m in Sources */,
|
E8B846C526FDB41A00A777FE /* XPMineUserInfolbumPresenter.m in Sources */,
|
||||||
|
E868071327195E1A0024F48F /* XPRoomPositionDataSourceImpl.m in Sources */,
|
||||||
E872309326E8D31500B90D4F /* LoginVerifCodeView.m in Sources */,
|
E872309326E8D31500B90D4F /* LoginVerifCodeView.m in Sources */,
|
||||||
186A534626FC6ED900D67B2C /* TTPopup.m in Sources */,
|
186A534626FC6ED900D67B2C /* TTPopup.m in Sources */,
|
||||||
E81C278C26EAFAF60031E639 /* Base64.m in Sources */,
|
E81C278C26EAFAF60031E639 /* Base64.m in Sources */,
|
||||||
@@ -2086,12 +2151,13 @@
|
|||||||
E80487652717DDD9008595F2 /* XPRoomMenuItem.m in Sources */,
|
E80487652717DDD9008595F2 /* XPRoomMenuItem.m in Sources */,
|
||||||
189DD75026E21D9000AB55B1 /* GCDHelper.m in Sources */,
|
189DD75026E21D9000AB55B1 /* GCDHelper.m in Sources */,
|
||||||
186A534826FC6ED900D67B2C /* TTAlertButtonConfig.m in Sources */,
|
186A534826FC6ED900D67B2C /* TTAlertButtonConfig.m in Sources */,
|
||||||
E8AEAEF627141C910017FCE0 /* XPRoomPositionView.m in Sources */,
|
E8AEAEF627141C910017FCE0 /* XPRoomPositionContainView.m in Sources */,
|
||||||
E872308926E89BE000B90D4F /* LoginPhoneViewController.m in Sources */,
|
E872308926E89BE000B90D4F /* LoginPhoneViewController.m in Sources */,
|
||||||
18E7B29026EA0E6B0064BC9B /* FlutterBoost+Xplan.m in Sources */,
|
18E7B29026EA0E6B0064BC9B /* FlutterBoost+Xplan.m in Sources */,
|
||||||
E8B846DC26FDE24300A777FE /* RechargeListModel.m in Sources */,
|
E8B846DC26FDE24300A777FE /* RechargeListModel.m in Sources */,
|
||||||
189DD75926E6003C00AB55B1 /* Api.m in Sources */,
|
189DD75926E6003C00AB55B1 /* Api.m in Sources */,
|
||||||
E88B5CB826FB325200DA9178 /* XPMineTeenagerPwdPresenter.m in Sources */,
|
E88B5CB826FB325200DA9178 /* XPMineTeenagerPwdPresenter.m in Sources */,
|
||||||
|
E868071B271969A50024F48F /* XCRoomPostionNickView.m in Sources */,
|
||||||
E89DA66727006443008483C1 /* RechargeStorage.m in Sources */,
|
E89DA66727006443008483C1 /* RechargeStorage.m in Sources */,
|
||||||
189DD53F26DE255600AB55B1 /* main.m in Sources */,
|
189DD53F26DE255600AB55B1 /* main.m in Sources */,
|
||||||
E8AE427627153B7E00BEEBB2 /* XPRoomPositionManager.m in Sources */,
|
E8AE427627153B7E00BEEBB2 /* XPRoomPositionManager.m in Sources */,
|
||||||
|
6
xplan-ios/Assets.xcassets/Room/Position/Contents.json
Normal file
6
xplan-ios/Assets.xcassets/Room/Position/Contents.json
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
22
xplan-ios/Assets.xcassets/Room/Position/room_position_lock.imageset/Contents.json
vendored
Normal file
22
xplan-ios/Assets.xcassets/Room/Position/room_position_lock.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "room_position_lock@2x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "room_position_lock@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
xplan-ios/Assets.xcassets/Room/Position/room_position_lock.imageset/room_position_lock@2x.png
vendored
Normal file
BIN
xplan-ios/Assets.xcassets/Room/Position/room_position_lock.imageset/room_position_lock@2x.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 7.1 KiB |
BIN
xplan-ios/Assets.xcassets/Room/Position/room_position_lock.imageset/room_position_lock@3x.png
vendored
Normal file
BIN
xplan-ios/Assets.xcassets/Room/Position/room_position_lock.imageset/room_position_lock@3x.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 14 KiB |
22
xplan-ios/Assets.xcassets/Room/Position/room_position_mute.imageset/Contents.json
vendored
Normal file
22
xplan-ios/Assets.xcassets/Room/Position/room_position_mute.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "room_position_mute@2x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "room_position_mute@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
xplan-ios/Assets.xcassets/Room/Position/room_position_mute.imageset/room_position_mute@2x.png
vendored
Normal file
BIN
xplan-ios/Assets.xcassets/Room/Position/room_position_mute.imageset/room_position_mute@2x.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 597 B |
BIN
xplan-ios/Assets.xcassets/Room/Position/room_position_mute.imageset/room_position_mute@3x.png
vendored
Normal file
BIN
xplan-ios/Assets.xcassets/Room/Position/room_position_mute.imageset/room_position_mute@3x.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.1 KiB |
22
xplan-ios/Assets.xcassets/Room/Position/room_position_normal.imageset/Contents.json
vendored
Normal file
22
xplan-ios/Assets.xcassets/Room/Position/room_position_normal.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "room_position_normal@2x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "room_position_normal@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
xplan-ios/Assets.xcassets/Room/Position/room_position_normal.imageset/room_position_normal@2x.png
vendored
Normal file
BIN
xplan-ios/Assets.xcassets/Room/Position/room_position_normal.imageset/room_position_normal@2x.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 7.7 KiB |
BIN
xplan-ios/Assets.xcassets/Room/Position/room_position_normal.imageset/room_position_normal@3x.png
vendored
Normal file
BIN
xplan-ios/Assets.xcassets/Room/Position/room_position_normal.imageset/room_position_normal@3x.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
@@ -10,7 +10,7 @@
|
|||||||
NS_ASSUME_NONNULL_BEGIN
|
NS_ASSUME_NONNULL_BEGIN
|
||||||
|
|
||||||
@interface XPRoomPositionManager : XPRoomBaseManager
|
@interface XPRoomPositionManager : XPRoomBaseManager
|
||||||
|
- (CGFloat)getContainerViewHeight;
|
||||||
@end
|
@end
|
||||||
|
|
||||||
NS_ASSUME_NONNULL_END
|
NS_ASSUME_NONNULL_END
|
||||||
|
@@ -6,11 +6,11 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
#import "XPRoomPositionManager.h"
|
#import "XPRoomPositionManager.h"
|
||||||
#import "XPRoomPositionView.h"
|
#import "XPRoomPositionContainView.h"
|
||||||
|
|
||||||
@interface XPRoomPositionManager ()
|
@interface XPRoomPositionManager ()
|
||||||
///坑位
|
///坑位
|
||||||
@property (nonatomic,strong) XPRoomPositionView *positionView;
|
@property (nonatomic,strong) XPRoomPositionContainView *positionView;
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@implementation XPRoomPositionManager
|
@implementation XPRoomPositionManager
|
||||||
@@ -19,10 +19,15 @@
|
|||||||
return self.positionView;
|
return self.positionView;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (XPRoomPositionView *)positionView {
|
- (XPRoomPositionContainView *)positionView {
|
||||||
if (!_positionView) {
|
if (!_positionView) {
|
||||||
_positionView = [[XPRoomPositionView alloc] init];
|
_positionView = [[XPRoomPositionContainView alloc] init];
|
||||||
}
|
}
|
||||||
return _positionView;
|
return _positionView;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (CGFloat)getContainerViewHeight {
|
||||||
|
return [self.positionView positionContainerViewHeight];
|
||||||
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
@@ -0,0 +1,16 @@
|
|||||||
|
//
|
||||||
|
// XPRoomPositionDataSourceImpl.h
|
||||||
|
// xplan-ios
|
||||||
|
//
|
||||||
|
// Created by 冯硕 on 2021/10/15.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
|
NS_ASSUME_NONNULL_BEGIN
|
||||||
|
|
||||||
|
@interface XPRoomPositionDataSourceImpl : NSObject
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
NS_ASSUME_NONNULL_END
|
@@ -0,0 +1,12 @@
|
|||||||
|
//
|
||||||
|
// XPRoomPositionDataSourceImpl.m
|
||||||
|
// xplan-ios
|
||||||
|
//
|
||||||
|
// Created by 冯硕 on 2021/10/15.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "XPRoomPositionDataSourceImpl.h"
|
||||||
|
|
||||||
|
@implementation XPRoomPositionDataSourceImpl
|
||||||
|
|
||||||
|
@end
|
@@ -0,0 +1,16 @@
|
|||||||
|
//
|
||||||
|
// XPRoomPositionDataSourceProtocol.h
|
||||||
|
// xplan-ios
|
||||||
|
//
|
||||||
|
// Created by 冯硕 on 2021/10/15.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
|
NS_ASSUME_NONNULL_BEGIN
|
||||||
|
|
||||||
|
@protocol XPRoomPositionDataSourceProtocol <NSObject>
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
NS_ASSUME_NONNULL_END
|
@@ -0,0 +1,19 @@
|
|||||||
|
//
|
||||||
|
// XPRoomPositionLayoutImpl.h
|
||||||
|
// xplan-ios
|
||||||
|
//
|
||||||
|
// Created by 冯硕 on 2021/10/15.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
///P
|
||||||
|
#import "XPRoomPositionLayoutProtocol.h"
|
||||||
|
NS_ASSUME_NONNULL_BEGIN
|
||||||
|
|
||||||
|
@interface XPRoomPositionLayoutImpl : NSObject<XPRoomPositionLayoutProtocol>
|
||||||
|
|
||||||
|
- (CGFloat)getPositionViewHeight;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
NS_ASSUME_NONNULL_END
|
@@ -0,0 +1,131 @@
|
|||||||
|
//
|
||||||
|
// XPRoomPositionLayoutImpl.m
|
||||||
|
// xplan-ios
|
||||||
|
//
|
||||||
|
// Created by 冯硕 on 2021/10/15.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "XPRoomPositionLayoutImpl.h"
|
||||||
|
///Tool
|
||||||
|
#import "XPMacro.h"
|
||||||
|
///View
|
||||||
|
#import "XCRoomPostionNickView.h"
|
||||||
|
|
||||||
|
|
||||||
|
@implementation XPRoomPositionLayoutImpl
|
||||||
|
|
||||||
|
///多少个item
|
||||||
|
- (int)numberOfItems {
|
||||||
|
return 9;
|
||||||
|
}
|
||||||
|
|
||||||
|
///item的class 所有的坑位的样式是相同的 如果不同的话 在做
|
||||||
|
- (Class)classOfPositionItme {
|
||||||
|
return [XCRoomPostionNickView class];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
///获取所有item中心点
|
||||||
|
- (NSArray<NSValue *> *)getPositionItemsCenter {
|
||||||
|
int number = [self numberOfItems];
|
||||||
|
CGSize itemSize = [self getNormalItemSize];
|
||||||
|
CGSize ownerSize = [self getOwnerItemSize];
|
||||||
|
CGFloat lineSpace = [self getItemsLineSpace];
|
||||||
|
CGFloat interiteSpace = [self getItemsInteritemSpace];
|
||||||
|
CGFloat ownerItemMaxY = ownerSize.height + [self getOwnerItemToNormalItemHeight];
|
||||||
|
|
||||||
|
CGPoint ownerCenter = CGPointMake(KScreenWidth / 2, ownerSize.height / 2);
|
||||||
|
NSMutableArray* itemArray = [NSMutableArray arrayWithCapacity:number];
|
||||||
|
NSValue * ownerCenterValue = [NSValue valueWithCGPoint:ownerCenter];
|
||||||
|
[itemArray addObject:ownerCenterValue];
|
||||||
|
|
||||||
|
for (int i = 1; i < number; i++) {
|
||||||
|
CGPoint itemCenter = CGPointZero;
|
||||||
|
if (i <= 4) {
|
||||||
|
itemCenter = CGPointMake(itemSize.width / 2 + (itemSize.width + interiteSpace) * (i -1), ownerItemMaxY + itemSize.height/ 2);
|
||||||
|
} else {
|
||||||
|
itemCenter = CGPointMake(itemSize.width / 2 + (itemSize.width + interiteSpace) * (i -1), ownerItemMaxY + itemSize.height/ 2 + itemSize.height + lineSpace);
|
||||||
|
}
|
||||||
|
NSValue * itemCenterValue = [NSValue valueWithCGPoint:itemCenter];
|
||||||
|
[itemArray addObject:itemCenterValue];
|
||||||
|
}
|
||||||
|
return itemArray;
|
||||||
|
}
|
||||||
|
|
||||||
|
///获取所有item的布局
|
||||||
|
- (NSArray<NSValue *> *)getPositionItemsRect {
|
||||||
|
int number = [self numberOfItems];
|
||||||
|
CGSize itemSize = [self getNormalItemSize];
|
||||||
|
CGSize ownerSize = [self getOwnerItemSize];
|
||||||
|
CGFloat lineSpace = [self getItemsLineSpace];
|
||||||
|
CGFloat interiteSpace = [self getItemsInteritemSpace];
|
||||||
|
CGFloat ownerItemMaxY = [self getOwnerItemSize].height + [self getOwnerItemToNormalItemHeight];
|
||||||
|
NSMutableArray* itemArray = [NSMutableArray arrayWithCapacity:number];
|
||||||
|
CGRect ownerRect = CGRectMake((KScreenWidth - 40)/2 - ownerSize.width / 2, 0, ownerSize.width, ownerSize.height);
|
||||||
|
NSValue * ownerFrameValue = [NSValue valueWithCGRect:ownerRect];
|
||||||
|
[itemArray addObject:ownerFrameValue];
|
||||||
|
for (int i = 1; i < number; i++) {
|
||||||
|
CGPoint itemOrigin = CGPointZero;
|
||||||
|
if (i <= 4) {
|
||||||
|
itemOrigin = CGPointMake((itemSize.width + interiteSpace) * (i -1), ownerItemMaxY);
|
||||||
|
} else {
|
||||||
|
itemOrigin = CGPointMake((itemSize.width + interiteSpace) * (i-4 -1), ownerItemMaxY + itemSize.height + lineSpace);
|
||||||
|
}
|
||||||
|
CGRect itemRect = CGRectMake(itemOrigin.x, itemOrigin.y, itemSize.width, itemSize.height);
|
||||||
|
NSValue * itemRectValue = [NSValue valueWithCGRect:itemRect];
|
||||||
|
[itemArray addObject:itemRectValue];
|
||||||
|
}
|
||||||
|
return itemArray;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pragma mark - Public Method
|
||||||
|
- (CGFloat)getPositionViewHeight {
|
||||||
|
CGFloat height = 0;
|
||||||
|
CGSize itemSize = [self getNormalItemSize];
|
||||||
|
CGSize ownerSize = [self getOwnerItemSize];
|
||||||
|
CGFloat lineSpace = [self getItemsLineSpace];
|
||||||
|
int numberLine =([self numberOfItems] -1)/ [self numberOfItemInLine];
|
||||||
|
height = ownerSize.height +(itemSize.height + lineSpace) * numberLine + [self getOwnerItemToNormalItemHeight];
|
||||||
|
return height;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pragma mark - Private Method
|
||||||
|
///获取房主坑位的大小
|
||||||
|
- (CGSize)getOwnerItemSize {
|
||||||
|
return CGSizeMake(58 + 5, 58 + 12 + 6 + 5);
|
||||||
|
}
|
||||||
|
///获取普通坑位的大小
|
||||||
|
- (CGSize)getNormalItemSize {
|
||||||
|
CGFloat itemWidth = 55 + 5;
|
||||||
|
return CGSizeMake(itemWidth, itemWidth + 12 + 6);
|
||||||
|
}
|
||||||
|
///获取行之间的间隙
|
||||||
|
- (CGFloat)getItemsLineSpace {
|
||||||
|
return 15;
|
||||||
|
}
|
||||||
|
|
||||||
|
///获取列之间的间隙
|
||||||
|
- (CGFloat)getItemsInteritemSpace {
|
||||||
|
int number= [self numberOfItemInLine];
|
||||||
|
CGFloat itemWidth = (KScreenWidth - 40 - [self getNormalItemSize].width * number) / (number - 1);
|
||||||
|
return itemWidth;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
///获取容器外部的间隙
|
||||||
|
- (UIEdgeInsets)getContainerEsgeInsets {
|
||||||
|
return UIEdgeInsetsMake(0, 20, 0, 20);
|
||||||
|
}
|
||||||
|
|
||||||
|
///房主item和普通item之间的距离
|
||||||
|
- (CGFloat)getOwnerItemToNormalItemHeight {
|
||||||
|
return 33;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
///一列有几个item 房主不算
|
||||||
|
- (int)numberOfItemInLine {
|
||||||
|
return 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
@@ -0,0 +1,27 @@
|
|||||||
|
//
|
||||||
|
// XPRoomPositionLayoutProtocol.h
|
||||||
|
// xplan-ios
|
||||||
|
//
|
||||||
|
// Created by 冯硕 on 2021/10/15.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
|
NS_ASSUME_NONNULL_BEGIN
|
||||||
|
|
||||||
|
@protocol XPRoomPositionLayoutProtocol <NSObject>
|
||||||
|
///多少个item
|
||||||
|
- (int)numberOfItems;
|
||||||
|
///一列有几个item
|
||||||
|
- (int)numberOfItemInLine;
|
||||||
|
///item的class 所有的坑位的样式是相同的 如果不同的话 在做
|
||||||
|
- (Class)classOfPositionItme;
|
||||||
|
///获取所有item的布局
|
||||||
|
- (NSArray<NSValue *> *)getPositionItemsCenter;
|
||||||
|
///获取所有item的布局
|
||||||
|
- (NSArray<NSValue *> *)getPositionItemsRect;
|
||||||
|
///获取容器外部的间隙
|
||||||
|
- (UIEdgeInsets)getContainerEsgeInsets;
|
||||||
|
@end
|
||||||
|
|
||||||
|
NS_ASSUME_NONNULL_END
|
@@ -0,0 +1,16 @@
|
|||||||
|
//
|
||||||
|
// XCRoomPostionNickView.h
|
||||||
|
// xplan-ios
|
||||||
|
//
|
||||||
|
// Created by 冯硕 on 2021/10/15.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "XPRoomPostionBaseItemView.h"
|
||||||
|
|
||||||
|
NS_ASSUME_NONNULL_BEGIN
|
||||||
|
|
||||||
|
@interface XCRoomPostionNickView : XPRoomPostionBaseItemView
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
NS_ASSUME_NONNULL_END
|
@@ -0,0 +1,46 @@
|
|||||||
|
//
|
||||||
|
// XCRoomPostionNickView.m
|
||||||
|
// xplan-ios
|
||||||
|
//
|
||||||
|
// Created by 冯硕 on 2021/10/15.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "XCRoomPostionNickView.h"
|
||||||
|
///Third
|
||||||
|
#import <Masonry/Masonry.h>
|
||||||
|
///Tool
|
||||||
|
#import "ThemeColor.h"
|
||||||
|
|
||||||
|
@interface XCRoomPostionNickView ()
|
||||||
|
///
|
||||||
|
@property (nonatomic,strong) UILabel *nickLabel;
|
||||||
|
@end
|
||||||
|
|
||||||
|
@implementation XCRoomPostionNickView
|
||||||
|
|
||||||
|
- (void)initSubViews {
|
||||||
|
[super initSubViews];
|
||||||
|
[self addSubview:self.nickLabel];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)initSubViewConstraints {
|
||||||
|
[super initSubViewConstraints];
|
||||||
|
[self.nickLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.left.right.mas_equalTo(self);
|
||||||
|
make.top.mas_equalTo(self.avatarImageView.mas_bottom).offset(7);
|
||||||
|
}];
|
||||||
|
}
|
||||||
|
|
||||||
|
#pragma mark - Getters And Setters
|
||||||
|
- (UILabel *)nickLabel {
|
||||||
|
if (!_nickLabel) {
|
||||||
|
_nickLabel = [[UILabel alloc] init];
|
||||||
|
_nickLabel.font = [UIFont systemFontOfSize:11];
|
||||||
|
_nickLabel.textColor = [ThemeColor mainTextColor];
|
||||||
|
_nickLabel.text = @"迷你号";
|
||||||
|
_nickLabel.textAlignment = NSTextAlignmentCenter;
|
||||||
|
}
|
||||||
|
return _nickLabel;
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
@@ -0,0 +1,19 @@
|
|||||||
|
//
|
||||||
|
// XPRoomPostionBaseItemView.h
|
||||||
|
// xplan-ios
|
||||||
|
//
|
||||||
|
// Created by 冯硕 on 2021/10/15.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
|
||||||
|
NS_ASSUME_NONNULL_BEGIN
|
||||||
|
|
||||||
|
@interface XPRoomPostionBaseItemView : UIView
|
||||||
|
///头像
|
||||||
|
@property (nonatomic,strong, readonly) UIImageView *avatarImageView;
|
||||||
|
- (void)initSubViews;
|
||||||
|
- (void)initSubViewConstraints;
|
||||||
|
@end
|
||||||
|
|
||||||
|
NS_ASSUME_NONNULL_END
|
@@ -0,0 +1,51 @@
|
|||||||
|
//
|
||||||
|
// XPRoomPostionBaseItemView.m
|
||||||
|
// xplan-ios
|
||||||
|
//
|
||||||
|
// Created by 冯硕 on 2021/10/15.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "XPRoomPostionBaseItemView.h"
|
||||||
|
///Third
|
||||||
|
#import <Masonry/Masonry.h>
|
||||||
|
|
||||||
|
@interface XPRoomPostionBaseItemView ()
|
||||||
|
///头像
|
||||||
|
@property (nonatomic,strong) UIImageView *avatarImageView;
|
||||||
|
@end
|
||||||
|
|
||||||
|
@implementation XPRoomPostionBaseItemView
|
||||||
|
|
||||||
|
- (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.avatarImageView];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)initSubViewConstraints {
|
||||||
|
[self.avatarImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.left.right.top.mas_equalTo(self);
|
||||||
|
make.height.mas_equalTo(self.mas_width);
|
||||||
|
}];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#pragma mark - Getters And Setters
|
||||||
|
- (UIImageView *)avatarImageView {
|
||||||
|
if (!_avatarImageView) {
|
||||||
|
_avatarImageView = [[UIImageView alloc] init];
|
||||||
|
_avatarImageView.userInteractionEnabled = YES;
|
||||||
|
_avatarImageView.image = [UIImage imageNamed:@"room_position_normal"];
|
||||||
|
}
|
||||||
|
return _avatarImageView;
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
@@ -0,0 +1,17 @@
|
|||||||
|
//
|
||||||
|
// XPRoomPositionView.h
|
||||||
|
// xplan-ios
|
||||||
|
//
|
||||||
|
// Created by 冯硕 on 2021/10/15.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
#import "XPRoomPositionLayoutProtocol.h"
|
||||||
|
NS_ASSUME_NONNULL_BEGIN
|
||||||
|
|
||||||
|
@interface XPRoomPositionView : UIView
|
||||||
|
|
||||||
|
- (instancetype)initWithFrame:(CGRect)frame layout:(id<XPRoomPositionLayoutProtocol>)layout;
|
||||||
|
@end
|
||||||
|
|
||||||
|
NS_ASSUME_NONNULL_END
|
@@ -0,0 +1,43 @@
|
|||||||
|
//
|
||||||
|
// XPRoomPositionView.m
|
||||||
|
// xplan-ios
|
||||||
|
//
|
||||||
|
// Created by 冯硕 on 2021/10/15.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "XPRoomPositionView.h"
|
||||||
|
|
||||||
|
@interface XPRoomPositionView ()
|
||||||
|
///UI相关的
|
||||||
|
@property (nonatomic,strong) id<XPRoomPositionLayoutProtocol> layout;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
@implementation XPRoomPositionView
|
||||||
|
|
||||||
|
- (instancetype)initWithFrame:(CGRect)frame layout:(id<XPRoomPositionLayoutProtocol>)layout {
|
||||||
|
self = [super initWithFrame:frame];
|
||||||
|
if (self) {
|
||||||
|
self.layout = layout;
|
||||||
|
[self initSubViews];
|
||||||
|
}
|
||||||
|
return self;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pragma mark - Private Method
|
||||||
|
- (void)initSubViews {
|
||||||
|
int number = [self.layout numberOfItems];
|
||||||
|
NSArray * array = [self.layout getPositionItemsRect];
|
||||||
|
for (int i = 0; i < number; i++) {
|
||||||
|
UIView * view = [self getItemView];
|
||||||
|
NSValue * rect = [array objectAtIndex:i];
|
||||||
|
view.frame = rect.CGRectValue;
|
||||||
|
[self addSubview:view];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#pragma mark - XPRoomPositionLayoutProtocol
|
||||||
|
- (UIView *)getItemView {
|
||||||
|
Class class = [self.layout classOfPositionItme];
|
||||||
|
return [[class alloc] init];;
|
||||||
|
}
|
||||||
|
@end
|
@@ -9,8 +9,8 @@
|
|||||||
|
|
||||||
NS_ASSUME_NONNULL_BEGIN
|
NS_ASSUME_NONNULL_BEGIN
|
||||||
|
|
||||||
@interface XPRoomPositionView : UIView
|
@interface XPRoomPositionContainView : UIView
|
||||||
|
- (CGFloat)positionContainerViewHeight;
|
||||||
@end
|
@end
|
||||||
|
|
||||||
NS_ASSUME_NONNULL_END
|
NS_ASSUME_NONNULL_END
|
@@ -0,0 +1,64 @@
|
|||||||
|
//
|
||||||
|
// XPRoomPositionView.m
|
||||||
|
// xplan-ios
|
||||||
|
//
|
||||||
|
// Created by 冯硕 on 2021/10/11.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "XPRoomPositionContainView.h"
|
||||||
|
///Third
|
||||||
|
#import <Masonry/Masonry.h>
|
||||||
|
///Tool
|
||||||
|
#import "XPRoomPositionLayoutImpl.h"
|
||||||
|
///View
|
||||||
|
#import "XPRoomPositionView.h"
|
||||||
|
|
||||||
|
@interface XPRoomPositionContainView ()
|
||||||
|
///
|
||||||
|
@property (nonatomic,strong) XPRoomPositionView *postionView;
|
||||||
|
///
|
||||||
|
@property (nonatomic,strong) XPRoomPositionLayoutImpl *layoutImpl;
|
||||||
|
@end
|
||||||
|
|
||||||
|
@implementation XPRoomPositionContainView
|
||||||
|
- (instancetype)initWithFrame:(CGRect)frame {
|
||||||
|
self = [super initWithFrame:frame];
|
||||||
|
if (self) {
|
||||||
|
[self initSubViews];
|
||||||
|
[self initSubViewConstraints];
|
||||||
|
}
|
||||||
|
return self;
|
||||||
|
}
|
||||||
|
#pragma mark - Public Method
|
||||||
|
- (CGFloat)positionContainerViewHeight {
|
||||||
|
return [self.layoutImpl getPositionViewHeight];
|
||||||
|
}
|
||||||
|
|
||||||
|
#pragma mark - Private Method
|
||||||
|
- (void)initSubViews {
|
||||||
|
[self addSubview:self.postionView];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)initSubViewConstraints {
|
||||||
|
[self.postionView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.left.right.mas_equalTo(self).inset(20);
|
||||||
|
make.top.bottom.mas_equalTo(self);
|
||||||
|
}];
|
||||||
|
}
|
||||||
|
|
||||||
|
#pragma mark - Getters And Setters
|
||||||
|
- (XPRoomPositionView *)postionView {
|
||||||
|
if (!_postionView) {
|
||||||
|
_postionView = [[XPRoomPositionView alloc] initWithFrame:CGRectZero layout:self.layoutImpl];
|
||||||
|
}
|
||||||
|
return _postionView;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (XPRoomPositionLayoutImpl *)layoutImpl {
|
||||||
|
if (!_layoutImpl) {
|
||||||
|
_layoutImpl = [[XPRoomPositionLayoutImpl alloc] init];
|
||||||
|
}
|
||||||
|
return _layoutImpl;
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
@@ -1,31 +0,0 @@
|
|||||||
//
|
|
||||||
// XPRoomPositionView.m
|
|
||||||
// xplan-ios
|
|
||||||
//
|
|
||||||
// Created by 冯硕 on 2021/10/11.
|
|
||||||
//
|
|
||||||
|
|
||||||
#import "XPRoomPositionView.h"
|
|
||||||
|
|
||||||
@implementation XPRoomPositionView
|
|
||||||
- (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 greenColor];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)initSubViewConstraints {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@end
|
|
@@ -68,7 +68,7 @@
|
|||||||
[self.positionManager.containerView mas_makeConstraints:^(MASConstraintMaker *make) {
|
[self.positionManager.containerView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
make.left.right.mas_equalTo(self.view);
|
make.left.right.mas_equalTo(self.view);
|
||||||
make.top.mas_equalTo(self.infoManager.containerView.mas_bottom);
|
make.top.mas_equalTo(self.infoManager.containerView.mas_bottom);
|
||||||
make.height.mas_equalTo(@280);
|
make.height.mas_equalTo([self.positionManager getContainerViewHeight]);
|
||||||
}];
|
}];
|
||||||
|
|
||||||
[self.messageManager.containerView mas_makeConstraints:^(MASConstraintMaker *make) {
|
[self.messageManager.containerView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
Reference in New Issue
Block a user