diff --git a/Podfile b/Podfile index 94be46c7..1cc42f17 100644 --- a/Podfile +++ b/Podfile @@ -31,6 +31,9 @@ target 'xplan-ios' do pod 'Base64' #统计 pod 'BaiduMobStatCodeless', '~> 5.3.5' + #文字自动滚动 + pod 'MarqueeLabel-ObjC' + #登录的 pod 'mob_sharesdk' pod 'mob_sharesdk/ShareSDKPlatforms/QQ' diff --git a/Podfile.lock b/Podfile.lock index fa14dc4b..96fd12e1 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -19,6 +19,7 @@ PODS: - FFPopup (1.1.5) - HappyDNS (0.3.17) - IAPHelper (1.1) + - MarqueeLabel-ObjC (3.3.0) - Masonry (1.1.0) - MBProgressHUD (1.2.0) - MJExtension (3.3.0) @@ -56,6 +57,7 @@ DEPENDENCIES: - Base64 - FFPopup - IAPHelper + - MarqueeLabel-ObjC - Masonry - MBProgressHUD - MJExtension @@ -80,6 +82,7 @@ SPEC REPOS: - FFPopup - HappyDNS - IAPHelper + - MarqueeLabel-ObjC - Masonry - MBProgressHUD - MJExtension @@ -101,6 +104,7 @@ SPEC CHECKSUMS: FFPopup: a208dcee8db3e54ec4a88fcd6481f6f5d85b7a83 HappyDNS: 848ef73e24f2b0e2752064223ce2dc0dd88900ea IAPHelper: fd74f53b0ac142eed085777b88b86a11746a2dd4 + MarqueeLabel-ObjC: 696eaa82e4fcc7fb53e4fdf37ac138f03bf022d6 Masonry: 678fab65091a9290e40e2832a55e7ab731aad201 MBProgressHUD: 3ee5efcc380f6a79a7cc9b363dd669c5e1ae7406 MJExtension: 01704cca2b60a214c10761b6491eab74069d68a9 @@ -115,6 +119,6 @@ SPEC CHECKSUMS: SZTextView: 094dc6acc9beec537685c545d6e3e0d4975174e1 YYText: 5c461d709e24d55a182d1441c41dc639a18a4849 -PODFILE CHECKSUM: 48063c5a85dfa0437fffd3a123ff709292daa45e +PODFILE CHECKSUM: 111c1baf4d2041d86b97a47854c455685b233ed1 COCOAPODS: 1.10.1 diff --git a/xplan-ios.xcodeproj/project.pbxproj b/xplan-ios.xcodeproj/project.pbxproj index d23102d0..c2c497b6 100644 --- a/xplan-ios.xcodeproj/project.pbxproj +++ b/xplan-ios.xcodeproj/project.pbxproj @@ -83,6 +83,7 @@ 18E7B33226F317A20064BC9B /* XPWebViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 18E7B33126F317A20064BC9B /* XPWebViewController.m */; }; 73FFADDC93E195344047A2EC /* Pods_xplan_ios.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CACF623970097D653132D69A /* Pods_xplan_ios.framework */; }; 9B0E1C5926E77022005D4442 /* BaseNavigationController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B0E1C5826E77022005D4442 /* BaseNavigationController.m */; }; + E80487652717DDD9008595F2 /* XPRoomMenuItem.m in Sources */ = {isa = PBXBuildFile; fileRef = E80487642717DDD9008595F2 /* XPRoomMenuItem.m */; }; E81366E326F0A1FC0076364C /* LoginBindPhoneViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E81366E226F0A1FC0076364C /* LoginBindPhoneViewController.m */; }; E81366E726F0A49E0076364C /* NSString+Regex.m in Sources */ = {isa = PBXBuildFile; fileRef = E81366E626F0A49E0076364C /* NSString+Regex.m */; }; E81366F326F0B7C80076364C /* LoginFullInfoViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E81366F226F0B7C80076364C /* LoginFullInfoViewController.m */; }; @@ -163,6 +164,20 @@ E8AC723726F49982007D6E91 /* XPMineNotificaProtocol.h in Sources */ = {isa = PBXBuildFile; fileRef = E8AC723626F49957007D6E91 /* XPMineNotificaProtocol.h */; }; E8AC723A26F49AAE007D6E91 /* XPMineNotifyStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AC723926F49AAE007D6E91 /* XPMineNotifyStatus.m */; }; E8AC723D26F4B6AA007D6E91 /* XPLoginBindPhoneResultViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AC723C26F4B6AA007D6E91 /* XPLoginBindPhoneResultViewController.m */; }; + E8AE42642715392E00BEEBB2 /* XPRoomInfoManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AE42632715392E00BEEBB2 /* XPRoomInfoManager.m */; }; + E8AE426A2715395F00BEEBB2 /* XPRoomMessageManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AE42692715395F00BEEBB2 /* XPRoomMessageManager.m */; }; + E8AE426D2715397100BEEBB2 /* XPRoomMenuManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AE426C2715397100BEEBB2 /* XPRoomMenuManager.m */; }; + E8AE42702715398400BEEBB2 /* XPRoomActivityManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AE426F2715398400BEEBB2 /* XPRoomActivityManager.m */; }; + E8AE427327153A3500BEEBB2 /* XPRoomActivityView.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AE427227153A3500BEEBB2 /* XPRoomActivityView.m */; }; + E8AE427627153B7E00BEEBB2 /* XPRoomPositionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AE427527153B7E00BEEBB2 /* XPRoomPositionManager.m */; }; + E8AEAED6271412EC0017FCE0 /* XPRoomViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AEAED5271412EC0017FCE0 /* XPRoomViewController.m */; }; + E8AEAEE1271418AA0017FCE0 /* XPRoomBackUIManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AEAEE0271418AA0017FCE0 /* XPRoomBackUIManager.m */; }; + E8AEAEE4271418DA0017FCE0 /* XPRoomBaseManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AEAEE3271418DA0017FCE0 /* XPRoomBaseManager.m */; }; + E8AEAEED27141AE20017FCE0 /* XPRoomBackUIView.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AEAEEC27141AE20017FCE0 /* XPRoomBackUIView.m */; }; + E8AEAEF027141C430017FCE0 /* XPRoomBottomMenuView.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AEAEEF27141C430017FCE0 /* XPRoomBottomMenuView.m */; }; + E8AEAEF327141C7C0017FCE0 /* XPRoomMessageView.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AEAEF227141C7C0017FCE0 /* XPRoomMessageView.m */; }; + E8AEAEF627141C910017FCE0 /* XPRoomPositionView.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AEAEF527141C910017FCE0 /* XPRoomPositionView.m */; }; + E8AEAEF927141CA30017FCE0 /* XPRoomInfoView.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AEAEF827141CA30017FCE0 /* XPRoomInfoView.m */; }; E8B825B726E9A7D8009E8E9F /* BaseObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E8B825B626E9A7D8009E8E9F /* BaseObject.m */; }; E8B825BF26E9E57D009E8E9F /* LoginTicketInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = E8B825BE26E9E57D009E8E9F /* LoginTicketInfo.m */; }; E8B825C226EA00DF009E8E9F /* LoginVerifCodePresent.m in Sources */ = {isa = PBXBuildFile; fileRef = E8B825C126EA00DF009E8E9F /* LoginVerifCodePresent.m */; }; @@ -357,6 +372,8 @@ 9B0E1C5826E77022005D4442 /* BaseNavigationController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BaseNavigationController.m; sourceTree = ""; }; 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 = ""; }; CACF623970097D653132D69A /* Pods_xplan_ios.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_xplan_ios.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + E80487632717DDD9008595F2 /* XPRoomMenuItem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomMenuItem.h; sourceTree = ""; }; + E80487642717DDD9008595F2 /* XPRoomMenuItem.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomMenuItem.m; sourceTree = ""; }; E81366E126F0A1FC0076364C /* LoginBindPhoneViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LoginBindPhoneViewController.h; sourceTree = ""; }; E81366E226F0A1FC0076364C /* LoginBindPhoneViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LoginBindPhoneViewController.m; sourceTree = ""; }; E81366E526F0A49E0076364C /* NSString+Regex.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSString+Regex.h"; sourceTree = ""; }; @@ -505,6 +522,34 @@ E8AC723926F49AAE007D6E91 /* XPMineNotifyStatus.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineNotifyStatus.m; sourceTree = ""; }; E8AC723B26F4B6AA007D6E91 /* XPLoginBindPhoneResultViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPLoginBindPhoneResultViewController.h; sourceTree = ""; }; E8AC723C26F4B6AA007D6E91 /* XPLoginBindPhoneResultViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPLoginBindPhoneResultViewController.m; sourceTree = ""; }; + E8AE42622715392E00BEEBB2 /* XPRoomInfoManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomInfoManager.h; sourceTree = ""; }; + E8AE42632715392E00BEEBB2 /* XPRoomInfoManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomInfoManager.m; sourceTree = ""; }; + E8AE42682715395F00BEEBB2 /* XPRoomMessageManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomMessageManager.h; sourceTree = ""; }; + E8AE42692715395F00BEEBB2 /* XPRoomMessageManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomMessageManager.m; sourceTree = ""; }; + E8AE426B2715397100BEEBB2 /* XPRoomMenuManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomMenuManager.h; sourceTree = ""; }; + E8AE426C2715397100BEEBB2 /* XPRoomMenuManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomMenuManager.m; sourceTree = ""; }; + E8AE426E2715398400BEEBB2 /* XPRoomActivityManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomActivityManager.h; sourceTree = ""; }; + E8AE426F2715398400BEEBB2 /* XPRoomActivityManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomActivityManager.m; sourceTree = ""; }; + E8AE427127153A3500BEEBB2 /* XPRoomActivityView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomActivityView.h; sourceTree = ""; }; + E8AE427227153A3500BEEBB2 /* XPRoomActivityView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomActivityView.m; sourceTree = ""; }; + E8AE427427153B7E00BEEBB2 /* XPRoomPositionManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomPositionManager.h; sourceTree = ""; }; + E8AE427527153B7E00BEEBB2 /* XPRoomPositionManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomPositionManager.m; sourceTree = ""; }; + E8AEAED4271412EC0017FCE0 /* XPRoomViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomViewController.h; sourceTree = ""; }; + E8AEAED5271412EC0017FCE0 /* XPRoomViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomViewController.m; sourceTree = ""; }; + E8AEAEDF271418AA0017FCE0 /* XPRoomBackUIManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomBackUIManager.h; sourceTree = ""; }; + E8AEAEE0271418AA0017FCE0 /* XPRoomBackUIManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomBackUIManager.m; sourceTree = ""; }; + E8AEAEE2271418DA0017FCE0 /* XPRoomBaseManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomBaseManager.h; sourceTree = ""; }; + E8AEAEE3271418DA0017FCE0 /* XPRoomBaseManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomBaseManager.m; sourceTree = ""; }; + E8AEAEEB27141AE20017FCE0 /* XPRoomBackUIView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomBackUIView.h; sourceTree = ""; }; + E8AEAEEC27141AE20017FCE0 /* XPRoomBackUIView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomBackUIView.m; sourceTree = ""; }; + E8AEAEEE27141C430017FCE0 /* XPRoomBottomMenuView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomBottomMenuView.h; sourceTree = ""; }; + E8AEAEEF27141C430017FCE0 /* XPRoomBottomMenuView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomBottomMenuView.m; sourceTree = ""; }; + E8AEAEF127141C7C0017FCE0 /* XPRoomMessageView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomMessageView.h; sourceTree = ""; }; + E8AEAEF227141C7C0017FCE0 /* XPRoomMessageView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomMessageView.m; sourceTree = ""; }; + E8AEAEF427141C910017FCE0 /* XPRoomPositionView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomPositionView.h; sourceTree = ""; }; + E8AEAEF527141C910017FCE0 /* XPRoomPositionView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomPositionView.m; sourceTree = ""; }; + E8AEAEF727141CA30017FCE0 /* XPRoomInfoView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomInfoView.h; sourceTree = ""; }; + E8AEAEF827141CA30017FCE0 /* XPRoomInfoView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomInfoView.m; sourceTree = ""; }; E8B825B526E9A7D8009E8E9F /* BaseObject.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BaseObject.h; sourceTree = ""; }; E8B825B626E9A7D8009E8E9F /* BaseObject.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BaseObject.m; sourceTree = ""; }; E8B825BD26E9E57D009E8E9F /* LoginTicketInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LoginTicketInfo.h; sourceTree = ""; }; @@ -852,6 +897,7 @@ 189DD56126DE45F800AB55B1 /* Main */ = { isa = PBXGroup; children = ( + E8AEAED3271412D00017FCE0 /* Room */, E8E70D6E26F2EB1200F03460 /* Mine */, 18E7B1B426E8B2960064BC9B /* Tabbar */, 18E7B1FD26E8CC510064BC9B /* Match */, @@ -1110,6 +1156,36 @@ path = Pods; sourceTree = ""; }; + E804875F2717DD70008595F2 /* Model */ = { + isa = PBXGroup; + children = ( + E80487632717DDD9008595F2 /* XPRoomMenuItem.h */, + E80487642717DDD9008595F2 /* XPRoomMenuItem.m */, + ); + path = Model; + sourceTree = ""; + }; + E80487602717DD89008595F2 /* Api */ = { + isa = PBXGroup; + children = ( + ); + path = Api; + sourceTree = ""; + }; + E80487612717DD92008595F2 /* Presenter */ = { + isa = PBXGroup; + children = ( + ); + path = Presenter; + sourceTree = ""; + }; + E80487622717DDAE008595F2 /* Protocol */ = { + isa = PBXGroup; + children = ( + ); + path = Protocol; + sourceTree = ""; + }; E81366E426F0A4820076364C /* NSString */ = { isa = PBXGroup; children = ( @@ -1305,6 +1381,157 @@ path = UIImageView; sourceTree = ""; }; + E8AEAED3271412D00017FCE0 /* Room */ = { + isa = PBXGroup; + children = ( + E80487622717DDAE008595F2 /* Protocol */, + E80487612717DD92008595F2 /* Presenter */, + E80487602717DD89008595F2 /* Api */, + E804875F2717DD70008595F2 /* Model */, + E8AEAED8271413530017FCE0 /* View */, + E8AEAED7271413210017FCE0 /* UIManager */, + E8AEAED4271412EC0017FCE0 /* XPRoomViewController.h */, + E8AEAED5271412EC0017FCE0 /* XPRoomViewController.m */, + ); + path = Room; + sourceTree = ""; + }; + E8AEAED7271413210017FCE0 /* UIManager */ = { + isa = PBXGroup; + children = ( + E8AEAEDE271414FB0017FCE0 /* ActivityManager */, + E8AEAEDD271414DB0017FCE0 /* MenuManager */, + E8AEAEDC271414CA0017FCE0 /* MessageManager */, + E8AEAEDB271414B60017FCE0 /* PositionManager */, + E8AEAEDA2714148C0017FCE0 /* RoomInfoManager */, + E8AEAED92714146B0017FCE0 /* BaseUIManager */, + ); + path = UIManager; + sourceTree = ""; + }; + E8AEAED8271413530017FCE0 /* View */ = { + isa = PBXGroup; + children = ( + E8AEAEE527141ACC0017FCE0 /* ActivityView */, + E8AEAEE727141ACC0017FCE0 /* BaseUIView */, + E8AEAEE927141ACC0017FCE0 /* MenuView */, + E8AEAEE627141ACC0017FCE0 /* MessageView */, + E8AEAEEA27141ACC0017FCE0 /* PositionView */, + E8AEAEE827141ACC0017FCE0 /* RoomInfoView */, + ); + path = View; + sourceTree = ""; + }; + E8AEAED92714146B0017FCE0 /* BaseUIManager */ = { + isa = PBXGroup; + children = ( + E8AEAEDF271418AA0017FCE0 /* XPRoomBackUIManager.h */, + E8AEAEE0271418AA0017FCE0 /* XPRoomBackUIManager.m */, + E8AEAEE2271418DA0017FCE0 /* XPRoomBaseManager.h */, + E8AEAEE3271418DA0017FCE0 /* XPRoomBaseManager.m */, + ); + path = BaseUIManager; + sourceTree = ""; + }; + E8AEAEDA2714148C0017FCE0 /* RoomInfoManager */ = { + isa = PBXGroup; + children = ( + E8AE42622715392E00BEEBB2 /* XPRoomInfoManager.h */, + E8AE42632715392E00BEEBB2 /* XPRoomInfoManager.m */, + ); + path = RoomInfoManager; + sourceTree = ""; + }; + E8AEAEDB271414B60017FCE0 /* PositionManager */ = { + isa = PBXGroup; + children = ( + E8AE427427153B7E00BEEBB2 /* XPRoomPositionManager.h */, + E8AE427527153B7E00BEEBB2 /* XPRoomPositionManager.m */, + ); + path = PositionManager; + sourceTree = ""; + }; + E8AEAEDC271414CA0017FCE0 /* MessageManager */ = { + isa = PBXGroup; + children = ( + E8AE42682715395F00BEEBB2 /* XPRoomMessageManager.h */, + E8AE42692715395F00BEEBB2 /* XPRoomMessageManager.m */, + ); + path = MessageManager; + sourceTree = ""; + }; + E8AEAEDD271414DB0017FCE0 /* MenuManager */ = { + isa = PBXGroup; + children = ( + E8AE426B2715397100BEEBB2 /* XPRoomMenuManager.h */, + E8AE426C2715397100BEEBB2 /* XPRoomMenuManager.m */, + ); + path = MenuManager; + sourceTree = ""; + }; + E8AEAEDE271414FB0017FCE0 /* ActivityManager */ = { + isa = PBXGroup; + children = ( + E8AE426E2715398400BEEBB2 /* XPRoomActivityManager.h */, + E8AE426F2715398400BEEBB2 /* XPRoomActivityManager.m */, + ); + path = ActivityManager; + sourceTree = ""; + }; + E8AEAEE527141ACC0017FCE0 /* ActivityView */ = { + isa = PBXGroup; + children = ( + E8AE427127153A3500BEEBB2 /* XPRoomActivityView.h */, + E8AE427227153A3500BEEBB2 /* XPRoomActivityView.m */, + ); + path = ActivityView; + sourceTree = ""; + }; + E8AEAEE627141ACC0017FCE0 /* MessageView */ = { + isa = PBXGroup; + children = ( + E8AEAEF127141C7C0017FCE0 /* XPRoomMessageView.h */, + E8AEAEF227141C7C0017FCE0 /* XPRoomMessageView.m */, + ); + path = MessageView; + sourceTree = ""; + }; + E8AEAEE727141ACC0017FCE0 /* BaseUIView */ = { + isa = PBXGroup; + children = ( + E8AEAEEB27141AE20017FCE0 /* XPRoomBackUIView.h */, + E8AEAEEC27141AE20017FCE0 /* XPRoomBackUIView.m */, + ); + path = BaseUIView; + sourceTree = ""; + }; + E8AEAEE827141ACC0017FCE0 /* RoomInfoView */ = { + isa = PBXGroup; + children = ( + E8AEAEF727141CA30017FCE0 /* XPRoomInfoView.h */, + E8AEAEF827141CA30017FCE0 /* XPRoomInfoView.m */, + ); + path = RoomInfoView; + sourceTree = ""; + }; + E8AEAEE927141ACC0017FCE0 /* MenuView */ = { + isa = PBXGroup; + children = ( + E8AEAEEE27141C430017FCE0 /* XPRoomBottomMenuView.h */, + E8AEAEEF27141C430017FCE0 /* XPRoomBottomMenuView.m */, + ); + path = MenuView; + sourceTree = ""; + }; + E8AEAEEA27141ACC0017FCE0 /* PositionView */ = { + isa = PBXGroup; + children = ( + E8AEAEF427141C910017FCE0 /* XPRoomPositionView.h */, + E8AEAEF527141C910017FCE0 /* XPRoomPositionView.m */, + ); + path = PositionView; + sourceTree = ""; + }; E8B825BC26E9E520009E8E9F /* Model */ = { isa = PBXGroup; children = ( @@ -1743,6 +1970,7 @@ E8AC721926F46E0B007D6E91 /* XPMineSettingItemModel.m in Sources */, 189DD55A26DE39D200AB55B1 /* BaseMvpPresenter.m in Sources */, 189DD6FF26E20E5900AB55B1 /* HttpRequestHelper.m in Sources */, + E8AEAED6271412EC0017FCE0 /* XPRoomViewController.m in Sources */, E8E70D9226F2F60C00F03460 /* XPMineItemModel.m in Sources */, 189DD74A26E21D8400AB55B1 /* SSKeychain.m in Sources */, E8B846CF26FDD96100A777FE /* XPMineRechageHeadView.m in Sources */, @@ -1750,10 +1978,12 @@ E81C27AE26EF39AB0031E639 /* AppDelegate+ThirdConfig.m in Sources */, E8E70D8326F2F51A00F03460 /* XPMineHeadView.m in Sources */, E8B825D026EA3825009E8E9F /* LoginPasswordViewController.m in Sources */, + E8AE42642715392E00BEEBB2 /* XPRoomInfoManager.m in Sources */, E8EEB90C26FC5EBC007C6EBA /* XPMineUserInfoEditModel.m in Sources */, 18E7B31826F097E00064BC9B /* UserInfoModel.m in Sources */, E8AC721326F46ADD007D6E91 /* XPMineSettingViewController.m in Sources */, 18E7B32126F098650064BC9B /* UserInfoSkillVo.m in Sources */, + E8AE42702715398400BEEBB2 /* XPRoomActivityManager.m in Sources */, E8AC722726F482A4007D6E91 /* XPMineFeedbackPresenter.m in Sources */, 186A534E26FC6ED900D67B2C /* TTPopupService.m in Sources */, E8AC722426F47E5E007D6E91 /* XPMineFeedbackViewController.m in Sources */, @@ -1791,9 +2021,12 @@ E8EEB91426FC7786007C6EBA /* XPMineUserInfoNickViewController.m in Sources */, 18E7B31B26F0982E0064BC9B /* UserExpand.m in Sources */, E824543526F57D6E00BE8163 /* XPLoginVerifBindPhoneViewController.m in Sources */, + E8AEAEE4271418DA0017FCE0 /* XPRoomBaseManager.m in Sources */, E8B825CD26EA18C8009E8E9F /* ThemeColor.m in Sources */, E8AC720D26F435F5007D6E91 /* UIImageView+LoadImage.m in Sources */, E88B5CBD26FB3BDF00DA9178 /* XPTeenagerAlertView.m in Sources */, + E8AEAEF327141C7C0017FCE0 /* XPRoomMessageView.m in Sources */, + E8AE427327153A3500BEEBB2 /* XPRoomActivityView.m in Sources */, E86596432701611A00846EBD /* UIImage+ImageEffects.m in Sources */, E8CEA03D26EA3DE500644B44 /* LoginPasswordPresent.m in Sources */, E8E70D7726F2F15100F03460 /* XPMineViewController.m in Sources */, @@ -1805,6 +2038,7 @@ E81C279326EB394D0031E639 /* LoginForgetPasswordViewController.m in Sources */, E81C278D26EAFAF60031E639 /* DESEncrypt.m in Sources */, E81366E726F0A49E0076364C /* NSString+Regex.m in Sources */, + E8AE426A2715395F00BEEBB2 /* XPRoomMessageManager.m in Sources */, E8EEB90126FC31B6007C6EBA /* XPMineUserInfoPresenter.m in Sources */, 189DD56526DE465A00AB55B1 /* LoginViewController.m in Sources */, E824544B26F5BBB800BE8163 /* XPMineModifPayPwdViewController.m in Sources */, @@ -1812,10 +2046,13 @@ E88B5CAD26FB16A800DA9178 /* XPMineTeenagerDesView.m in Sources */, E824545126F5CE6E00BE8163 /* XPMineModifPayPwdPresenter.m in Sources */, E8EEB90F26FC6AB8007C6EBA /* XPMineUserInfoEditPresenter.m in Sources */, + E8AEAEE1271418AA0017FCE0 /* XPRoomBackUIManager.m in Sources */, E8AC723A26F49AAE007D6E91 /* XPMineNotifyStatus.m in Sources */, 18E7B33226F317A20064BC9B /* XPWebViewController.m in Sources */, + E8AEAEF927141CA30017FCE0 /* XPRoomInfoView.m in Sources */, E8AC721C26F4720B007D6E91 /* XPMineSettingPresent.m in Sources */, E88B5CA526FB088600DA9178 /* XPMineTeenagerViewController.m in Sources */, + E8AEAEF027141C430017FCE0 /* XPRoomBottomMenuView.m in Sources */, E8EEB90926FC579A007C6EBA /* XPMineUserInfoEditTableViewCell.m in Sources */, 18C17A5D26F338F300C48E11 /* XplanFBFlutterViewContainer.m in Sources */, E89DA67527009ACD008483C1 /* XPMineRechargeNavView.m in Sources */, @@ -1834,6 +2071,7 @@ E824546426F5FF1C00BE8163 /* XPMineResetPayPasswordPresenter.m in Sources */, E8B846BC26FD7C1200A777FE /* UploadImage.m in Sources */, 186A534D26FC6ED900D67B2C /* TTActionSheetView.m in Sources */, + E8AEAEED27141AE20017FCE0 /* XPRoomBackUIView.m in Sources */, E88B5CC126FB407B00DA9178 /* XPMineUserInfoViewController.m in Sources */, E824545926F5E65900BE8163 /* XPMineVerifIdentityView.m in Sources */, 189DD74026E21C3F00AB55B1 /* YYUtility+App.m in Sources */, @@ -1845,8 +2083,10 @@ E88B5CC526FB42B000DA9178 /* XPMineUserInfoHeaderView.m in Sources */, E8EEB8FB26FC2874007C6EBA /* XPMineUserInfoTableViewCell.m in Sources */, E8AC721626F46B06007D6E91 /* XPMineSettingTableViewCell.m in Sources */, + E80487652717DDD9008595F2 /* XPRoomMenuItem.m in Sources */, 189DD75026E21D9000AB55B1 /* GCDHelper.m in Sources */, 186A534826FC6ED900D67B2C /* TTAlertButtonConfig.m in Sources */, + E8AEAEF627141C910017FCE0 /* XPRoomPositionView.m in Sources */, E872308926E89BE000B90D4F /* LoginPhoneViewController.m in Sources */, 18E7B29026EA0E6B0064BC9B /* FlutterBoost+Xplan.m in Sources */, E8B846DC26FDE24300A777FE /* RechargeListModel.m in Sources */, @@ -1854,7 +2094,9 @@ E88B5CB826FB325200DA9178 /* XPMineTeenagerPwdPresenter.m in Sources */, E89DA66727006443008483C1 /* RechargeStorage.m in Sources */, 189DD53F26DE255600AB55B1 /* main.m in Sources */, + E8AE427627153B7E00BEEBB2 /* XPRoomPositionManager.m in Sources */, E872308D26E89DAA00B90D4F /* LoginInputView.m in Sources */, + E8AE426D2715397100BEEBB2 /* XPRoomMenuManager.m in Sources */, 189DD58F26DF97E700AB55B1 /* LoginPresenter.m in Sources */, E89DA67227008D59008483C1 /* WalletInfoModel.m in Sources */, 189DD55026DE37F900AB55B1 /* MvpViewController.m in Sources */, diff --git a/xplan-ios.xcodeproj/xcshareddata/xcschemes/xplan-ios.xcscheme b/xplan-ios.xcodeproj/xcshareddata/xcschemes/xplan-ios.xcscheme new file mode 100644 index 00000000..670f098f --- /dev/null +++ b/xplan-ios.xcodeproj/xcshareddata/xcschemes/xplan-ios.xcscheme @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/xplan-ios/Assets.xcassets/Room/Activity/Contents.json b/xplan-ios/Assets.xcassets/Room/Activity/Contents.json new file mode 100644 index 00000000..73c00596 --- /dev/null +++ b/xplan-ios/Assets.xcassets/Room/Activity/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Room/Activity/room_activity_banner_normal.imageset/Contents.json b/xplan-ios/Assets.xcassets/Room/Activity/room_activity_banner_normal.imageset/Contents.json new file mode 100644 index 00000000..cdf5372b --- /dev/null +++ b/xplan-ios/Assets.xcassets/Room/Activity/room_activity_banner_normal.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "room_activity_banner_normal@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "room_activity_banner_normal@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Room/Activity/room_activity_banner_normal.imageset/room_activity_banner_normal@2x.png b/xplan-ios/Assets.xcassets/Room/Activity/room_activity_banner_normal.imageset/room_activity_banner_normal@2x.png new file mode 100644 index 00000000..f1b74069 Binary files /dev/null and b/xplan-ios/Assets.xcassets/Room/Activity/room_activity_banner_normal.imageset/room_activity_banner_normal@2x.png differ diff --git a/xplan-ios/Assets.xcassets/Room/Activity/room_activity_banner_normal.imageset/room_activity_banner_normal@3x.png b/xplan-ios/Assets.xcassets/Room/Activity/room_activity_banner_normal.imageset/room_activity_banner_normal@3x.png new file mode 100644 index 00000000..d9bb5a22 Binary files /dev/null and b/xplan-ios/Assets.xcassets/Room/Activity/room_activity_banner_normal.imageset/room_activity_banner_normal@3x.png differ diff --git a/xplan-ios/Assets.xcassets/Room/Activity/room_activity_banner_select.imageset/Contents.json b/xplan-ios/Assets.xcassets/Room/Activity/room_activity_banner_select.imageset/Contents.json new file mode 100644 index 00000000..0cb4e7b2 --- /dev/null +++ b/xplan-ios/Assets.xcassets/Room/Activity/room_activity_banner_select.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "room_activity_banner_select@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "room_activity_banner_select@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Room/Activity/room_activity_banner_select.imageset/room_activity_banner_select@2x.png b/xplan-ios/Assets.xcassets/Room/Activity/room_activity_banner_select.imageset/room_activity_banner_select@2x.png new file mode 100644 index 00000000..422b0bea Binary files /dev/null and b/xplan-ios/Assets.xcassets/Room/Activity/room_activity_banner_select.imageset/room_activity_banner_select@2x.png differ diff --git a/xplan-ios/Assets.xcassets/Room/Activity/room_activity_banner_select.imageset/room_activity_banner_select@3x.png b/xplan-ios/Assets.xcassets/Room/Activity/room_activity_banner_select.imageset/room_activity_banner_select@3x.png new file mode 100644 index 00000000..38dcd309 Binary files /dev/null and b/xplan-ios/Assets.xcassets/Room/Activity/room_activity_banner_select.imageset/room_activity_banner_select@3x.png differ diff --git a/xplan-ios/Assets.xcassets/Room/Contents.json b/xplan-ios/Assets.xcassets/Room/Contents.json new file mode 100644 index 00000000..73c00596 --- /dev/null +++ b/xplan-ios/Assets.xcassets/Room/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Room/Menu/Contents.json b/xplan-ios/Assets.xcassets/Room/Menu/Contents.json new file mode 100644 index 00000000..73c00596 --- /dev/null +++ b/xplan-ios/Assets.xcassets/Room/Menu/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Room/Menu/room_menu_face.imageset/Contents.json b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_face.imageset/Contents.json new file mode 100644 index 00000000..fc873dd5 --- /dev/null +++ b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_face.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "room_menu_face@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "room_menu_face@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Room/Menu/room_menu_face.imageset/room_menu_face@2x.png b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_face.imageset/room_menu_face@2x.png new file mode 100644 index 00000000..1ddb355f Binary files /dev/null and b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_face.imageset/room_menu_face@2x.png differ diff --git a/xplan-ios/Assets.xcassets/Room/Menu/room_menu_face.imageset/room_menu_face@3x.png b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_face.imageset/room_menu_face@3x.png new file mode 100644 index 00000000..3589b560 Binary files /dev/null and b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_face.imageset/room_menu_face@3x.png differ diff --git a/xplan-ios/Assets.xcassets/Room/Menu/room_menu_gift.imageset/Contents.json b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_gift.imageset/Contents.json new file mode 100644 index 00000000..8402423e --- /dev/null +++ b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_gift.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "room_menu_gift@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "room_menu_gift@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Room/Menu/room_menu_gift.imageset/room_menu_gift@2x.png b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_gift.imageset/room_menu_gift@2x.png new file mode 100644 index 00000000..1c79f278 Binary files /dev/null and b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_gift.imageset/room_menu_gift@2x.png differ diff --git a/xplan-ios/Assets.xcassets/Room/Menu/room_menu_gift.imageset/room_menu_gift@3x.png b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_gift.imageset/room_menu_gift@3x.png new file mode 100644 index 00000000..46bfc83e Binary files /dev/null and b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_gift.imageset/room_menu_gift@3x.png differ diff --git a/xplan-ios/Assets.xcassets/Room/Menu/room_menu_input_bg.imageset/Contents.json b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_input_bg.imageset/Contents.json new file mode 100644 index 00000000..e4b610aa --- /dev/null +++ b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_input_bg.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "room_menu_input_bg@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "room_menu_input_bg@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Room/Menu/room_menu_input_bg.imageset/room_menu_input_bg@2x.png b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_input_bg.imageset/room_menu_input_bg@2x.png new file mode 100644 index 00000000..0f5ba967 Binary files /dev/null and b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_input_bg.imageset/room_menu_input_bg@2x.png differ diff --git a/xplan-ios/Assets.xcassets/Room/Menu/room_menu_input_bg.imageset/room_menu_input_bg@3x.png b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_input_bg.imageset/room_menu_input_bg@3x.png new file mode 100644 index 00000000..47cdf4e7 Binary files /dev/null and b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_input_bg.imageset/room_menu_input_bg@3x.png differ diff --git a/xplan-ios/Assets.xcassets/Room/Menu/room_menu_message.imageset/Contents.json b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_message.imageset/Contents.json new file mode 100644 index 00000000..96bdbe73 --- /dev/null +++ b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_message.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "room_menu_message@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "room_menu_message@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Room/Menu/room_menu_message.imageset/room_menu_message@2x.png b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_message.imageset/room_menu_message@2x.png new file mode 100644 index 00000000..264b5f50 Binary files /dev/null and b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_message.imageset/room_menu_message@2x.png differ diff --git a/xplan-ios/Assets.xcassets/Room/Menu/room_menu_message.imageset/room_menu_message@3x.png b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_message.imageset/room_menu_message@3x.png new file mode 100644 index 00000000..5e84554b Binary files /dev/null and b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_message.imageset/room_menu_message@3x.png differ diff --git a/xplan-ios/Assets.xcassets/Room/Menu/room_menu_mic_close.imageset/Contents.json b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_mic_close.imageset/Contents.json new file mode 100644 index 00000000..158d108a --- /dev/null +++ b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_mic_close.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "room_menu_mic_close@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "room_menu_mic_close@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Room/Menu/room_menu_mic_close.imageset/room_menu_mic_close@2x.png b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_mic_close.imageset/room_menu_mic_close@2x.png new file mode 100644 index 00000000..64712f4f Binary files /dev/null and b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_mic_close.imageset/room_menu_mic_close@2x.png differ diff --git a/xplan-ios/Assets.xcassets/Room/Menu/room_menu_mic_close.imageset/room_menu_mic_close@3x.png b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_mic_close.imageset/room_menu_mic_close@3x.png new file mode 100644 index 00000000..2fb09467 Binary files /dev/null and b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_mic_close.imageset/room_menu_mic_close@3x.png differ diff --git a/xplan-ios/Assets.xcassets/Room/Menu/room_menu_mic_open.imageset/Contents.json b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_mic_open.imageset/Contents.json new file mode 100644 index 00000000..d1371509 --- /dev/null +++ b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_mic_open.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "room_menu_mic_open@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "room_menu_mic_open@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Room/Menu/room_menu_mic_open.imageset/room_menu_mic_open@2x.png b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_mic_open.imageset/room_menu_mic_open@2x.png new file mode 100644 index 00000000..4d0d4e4c Binary files /dev/null and b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_mic_open.imageset/room_menu_mic_open@2x.png differ diff --git a/xplan-ios/Assets.xcassets/Room/Menu/room_menu_mic_open.imageset/room_menu_mic_open@3x.png b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_mic_open.imageset/room_menu_mic_open@3x.png new file mode 100644 index 00000000..44237afe Binary files /dev/null and b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_mic_open.imageset/room_menu_mic_open@3x.png differ diff --git a/xplan-ios/Assets.xcassets/Room/Menu/room_menu_more.imageset/Contents.json b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_more.imageset/Contents.json new file mode 100644 index 00000000..df7e3b9b --- /dev/null +++ b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_more.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "room_menu_more@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Room/Menu/room_menu_more.imageset/room_menu_more@2x.png b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_more.imageset/room_menu_more@2x.png new file mode 100644 index 00000000..3d083e13 Binary files /dev/null and b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_more.imageset/room_menu_more@2x.png differ diff --git a/xplan-ios/Assets.xcassets/Room/Menu/room_menu_more3x.imageset/Contents.json b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_more3x.imageset/Contents.json new file mode 100644 index 00000000..a6034d7f --- /dev/null +++ b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_more3x.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "room_menu_more3x.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Room/Menu/room_menu_more3x.imageset/room_menu_more3x.png b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_more3x.imageset/room_menu_more3x.png new file mode 100644 index 00000000..5ae618bd Binary files /dev/null and b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_more3x.imageset/room_menu_more3x.png differ diff --git a/xplan-ios/Assets.xcassets/Room/Menu/room_menu_new_message.imageset/Contents.json b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_new_message.imageset/Contents.json new file mode 100644 index 00000000..58c42b9f --- /dev/null +++ b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_new_message.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "room_menu_new_message@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "room_menu_new_message@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Room/Menu/room_menu_new_message.imageset/room_menu_new_message@2x.png b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_new_message.imageset/room_menu_new_message@2x.png new file mode 100644 index 00000000..28ad324e Binary files /dev/null and b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_new_message.imageset/room_menu_new_message@2x.png differ diff --git a/xplan-ios/Assets.xcassets/Room/Menu/room_menu_new_message.imageset/room_menu_new_message@3x.png b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_new_message.imageset/room_menu_new_message@3x.png new file mode 100644 index 00000000..568ffee2 Binary files /dev/null and b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_new_message.imageset/room_menu_new_message@3x.png differ diff --git a/xplan-ios/Assets.xcassets/Room/Menu/room_menu_voice_close.imageset/Contents.json b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_voice_close.imageset/Contents.json new file mode 100644 index 00000000..8f479be0 --- /dev/null +++ b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_voice_close.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "room_menu_voice_close@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "room_menu_voice_close@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Room/Menu/room_menu_voice_close.imageset/room_menu_voice_close@2x.png b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_voice_close.imageset/room_menu_voice_close@2x.png new file mode 100644 index 00000000..0eb76285 Binary files /dev/null and b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_voice_close.imageset/room_menu_voice_close@2x.png differ diff --git a/xplan-ios/Assets.xcassets/Room/Menu/room_menu_voice_close.imageset/room_menu_voice_close@3x.png b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_voice_close.imageset/room_menu_voice_close@3x.png new file mode 100644 index 00000000..da82f91d Binary files /dev/null and b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_voice_close.imageset/room_menu_voice_close@3x.png differ diff --git a/xplan-ios/Assets.xcassets/Room/Menu/room_menu_voice_open.imageset/Contents.json b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_voice_open.imageset/Contents.json new file mode 100644 index 00000000..9559b29c --- /dev/null +++ b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_voice_open.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "room_menu_voice_open@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "room_menu_voice_open@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Room/Menu/room_menu_voice_open.imageset/room_menu_voice_open@2x.png b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_voice_open.imageset/room_menu_voice_open@2x.png new file mode 100644 index 00000000..2212b37c Binary files /dev/null and b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_voice_open.imageset/room_menu_voice_open@2x.png differ diff --git a/xplan-ios/Assets.xcassets/Room/Menu/room_menu_voice_open.imageset/room_menu_voice_open@3x.png b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_voice_open.imageset/room_menu_voice_open@3x.png new file mode 100644 index 00000000..f0eaebaf Binary files /dev/null and b/xplan-ios/Assets.xcassets/Room/Menu/room_menu_voice_open.imageset/room_menu_voice_open@3x.png differ diff --git a/xplan-ios/Assets.xcassets/Room/room_background.imageset/Contents.json b/xplan-ios/Assets.xcassets/Room/room_background.imageset/Contents.json new file mode 100644 index 00000000..d728a25f --- /dev/null +++ b/xplan-ios/Assets.xcassets/Room/room_background.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "room_background@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "room_background@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Room/room_background.imageset/room_background@2x.png b/xplan-ios/Assets.xcassets/Room/room_background.imageset/room_background@2x.png new file mode 100644 index 00000000..927b1ce2 Binary files /dev/null and b/xplan-ios/Assets.xcassets/Room/room_background.imageset/room_background@2x.png differ diff --git a/xplan-ios/Assets.xcassets/Room/room_background.imageset/room_background@3x.png b/xplan-ios/Assets.xcassets/Room/room_background.imageset/room_background@3x.png new file mode 100644 index 00000000..be0ea807 Binary files /dev/null and b/xplan-ios/Assets.xcassets/Room/room_background.imageset/room_background@3x.png differ diff --git a/xplan-ios/Assets.xcassets/Room/room_info_back.imageset/Contents.json b/xplan-ios/Assets.xcassets/Room/room_info_back.imageset/Contents.json new file mode 100644 index 00000000..28a5b7ad --- /dev/null +++ b/xplan-ios/Assets.xcassets/Room/room_info_back.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "room_info_back@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "room_info_back@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Room/room_info_back.imageset/room_info_back@2x.png b/xplan-ios/Assets.xcassets/Room/room_info_back.imageset/room_info_back@2x.png new file mode 100644 index 00000000..9ab1aaf0 Binary files /dev/null and b/xplan-ios/Assets.xcassets/Room/room_info_back.imageset/room_info_back@2x.png differ diff --git a/xplan-ios/Assets.xcassets/Room/room_info_back.imageset/room_info_back@3x.png b/xplan-ios/Assets.xcassets/Room/room_info_back.imageset/room_info_back@3x.png new file mode 100644 index 00000000..9e10372b Binary files /dev/null and b/xplan-ios/Assets.xcassets/Room/room_info_back.imageset/room_info_back@3x.png differ diff --git a/xplan-ios/Assets.xcassets/Room/room_info_gift_effect.imageset/Contents.json b/xplan-ios/Assets.xcassets/Room/room_info_gift_effect.imageset/Contents.json new file mode 100644 index 00000000..460e8486 --- /dev/null +++ b/xplan-ios/Assets.xcassets/Room/room_info_gift_effect.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "room_info_gift_effect@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "room_info_gift_effect@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Room/room_info_gift_effect.imageset/room_info_gift_effect@2x.png b/xplan-ios/Assets.xcassets/Room/room_info_gift_effect.imageset/room_info_gift_effect@2x.png new file mode 100644 index 00000000..efa4b7e0 Binary files /dev/null and b/xplan-ios/Assets.xcassets/Room/room_info_gift_effect.imageset/room_info_gift_effect@2x.png differ diff --git a/xplan-ios/Assets.xcassets/Room/room_info_gift_effect.imageset/room_info_gift_effect@3x.png b/xplan-ios/Assets.xcassets/Room/room_info_gift_effect.imageset/room_info_gift_effect@3x.png new file mode 100644 index 00000000..69b4dfbb Binary files /dev/null and b/xplan-ios/Assets.xcassets/Room/room_info_gift_effect.imageset/room_info_gift_effect@3x.png differ diff --git a/xplan-ios/Assets.xcassets/Room/room_info_setting.imageset/Contents.json b/xplan-ios/Assets.xcassets/Room/room_info_setting.imageset/Contents.json new file mode 100644 index 00000000..1b93b4af --- /dev/null +++ b/xplan-ios/Assets.xcassets/Room/room_info_setting.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "room_info_setting@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "room_info_setting@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Room/room_info_setting.imageset/room_info_setting@2x.png b/xplan-ios/Assets.xcassets/Room/room_info_setting.imageset/room_info_setting@2x.png new file mode 100644 index 00000000..db2f485c Binary files /dev/null and b/xplan-ios/Assets.xcassets/Room/room_info_setting.imageset/room_info_setting@2x.png differ diff --git a/xplan-ios/Assets.xcassets/Room/room_info_setting.imageset/room_info_setting@3x.png b/xplan-ios/Assets.xcassets/Room/room_info_setting.imageset/room_info_setting@3x.png new file mode 100644 index 00000000..c198f987 Binary files /dev/null and b/xplan-ios/Assets.xcassets/Room/room_info_setting.imageset/room_info_setting@3x.png differ diff --git a/xplan-ios/Assets.xcassets/Room/room_info_share.imageset/Contents.json b/xplan-ios/Assets.xcassets/Room/room_info_share.imageset/Contents.json new file mode 100644 index 00000000..37f71705 --- /dev/null +++ b/xplan-ios/Assets.xcassets/Room/room_info_share.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "room_info_share@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "room_info_share@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Room/room_info_share.imageset/room_info_share@2x.png b/xplan-ios/Assets.xcassets/Room/room_info_share.imageset/room_info_share@2x.png new file mode 100644 index 00000000..dbd37f5d Binary files /dev/null and b/xplan-ios/Assets.xcassets/Room/room_info_share.imageset/room_info_share@2x.png differ diff --git a/xplan-ios/Assets.xcassets/Room/room_info_share.imageset/room_info_share@3x.png b/xplan-ios/Assets.xcassets/Room/room_info_share.imageset/room_info_share@3x.png new file mode 100644 index 00000000..a3519188 Binary files /dev/null and b/xplan-ios/Assets.xcassets/Room/room_info_share.imageset/room_info_share@3x.png differ diff --git a/xplan-ios/Base/UI/ThemeColor.h b/xplan-ios/Base/UI/ThemeColor.h index d3387bc4..2a7c045a 100644 --- a/xplan-ios/Base/UI/ThemeColor.h +++ b/xplan-ios/Base/UI/ThemeColor.h @@ -61,6 +61,9 @@ NS_ASSUME_NONNULL_BEGIN + (UIColor *)switchOffColor; /// 音游开关按钮的 开启的颜色 0x248cfe + (UIColor *)switchOnColor; + +#pragma mark -房间内相关的颜色 ++ (UIColor *)roomOnLineIdenColor; @end NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Base/UI/ThemeColor.m b/xplan-ios/Base/UI/ThemeColor.m index 4af52ab1..f940e4ff 100644 --- a/xplan-ios/Base/UI/ThemeColor.m +++ b/xplan-ios/Base/UI/ThemeColor.m @@ -106,4 +106,9 @@ return UIColorFromRGB(0x248cfe); } +#pragma mark -房间内相关的颜色 ++ (UIColor *)roomOnLineIdenColor { + return UIColorFromRGB(0x3EFED7); +} + @end diff --git a/xplan-ios/Main/Mine/View/SubViews/MineInfo/XPMineUserInfoHeaderView.m b/xplan-ios/Main/Mine/View/SubViews/MineInfo/XPMineUserInfoHeaderView.m index a49010ae..ae3947ce 100644 --- a/xplan-ios/Main/Mine/View/SubViews/MineInfo/XPMineUserInfoHeaderView.m +++ b/xplan-ios/Main/Mine/View/SubViews/MineInfo/XPMineUserInfoHeaderView.m @@ -54,6 +54,7 @@ _logoImageView.userInteractionEnabled = YES; _logoImageView.layer.masksToBounds = YES; _logoImageView.contentMode = UIViewContentModeScaleAspectFill; + _logoImageView.tag = 100000; } return _logoImageView; } @@ -82,6 +83,12 @@ } return self; } + +- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event { + UIView * view = [self.cycleScrollView hitTest:point withEvent:event]; + return view; +} + #pragma mark - Private Method - (void)initSubViews { [self addSubview:self.cycleScrollView]; diff --git a/xplan-ios/Main/Mine/View/SubViews/MineInfo/XPMineUserTableView.m b/xplan-ios/Main/Mine/View/SubViews/MineInfo/XPMineUserTableView.m index 6ae4b871..c1f7a34a 100644 --- a/xplan-ios/Main/Mine/View/SubViews/MineInfo/XPMineUserTableView.m +++ b/xplan-ios/Main/Mine/View/SubViews/MineInfo/XPMineUserTableView.m @@ -15,7 +15,9 @@ if (point.y > (250 + kSafeAreaTopHeight)) { return self; } else { - return [[(XPMineUserInfoViewController *)self.userInfoVC getHeadHitView] hitTest:point withEvent:event]; + UIView* topView= [(XPMineUserInfoViewController *)self.userInfoVC getHeadHitView]; + UIView * View = [topView hitTest:point withEvent:event]; + return View; } } diff --git a/xplan-ios/Main/Mine/View/XPMineViewController.m b/xplan-ios/Main/Mine/View/XPMineViewController.m index 44bdac7f..171751b5 100644 --- a/xplan-ios/Main/Mine/View/XPMineViewController.m +++ b/xplan-ios/Main/Mine/View/XPMineViewController.m @@ -30,6 +30,10 @@ #import "XPMineRechargeViewController.h" #import "XPWebViewController.h" +#warning todo 测试 +#import "BaseNavigationController.h" +#import "XPRoomViewController.h" + @interface XPMineViewController () /// @@ -126,6 +130,13 @@ break; case XPMineItemType_Account: { + XPRoomViewController * roomVC = [[XPRoomViewController alloc] init]; + BaseNavigationController * nav = [[BaseNavigationController alloc] initWithRootViewController:roomVC]; + nav.modalPresentationStyle = UIModalPresentationFullScreen; + [self.navigationController presentViewController:nav animated:YES completion:nil]; + return; + +#warning to do 测试 XPMineRechargeViewController * rechargeVC = [[XPMineRechargeViewController alloc] init]; [self.navigationController pushViewController:rechargeVC animated:YES]; } diff --git a/xplan-ios/Main/Room/Model/XPRoomMenuItem.h b/xplan-ios/Main/Room/Model/XPRoomMenuItem.h new file mode 100644 index 00000000..09be2576 --- /dev/null +++ b/xplan-ios/Main/Room/Model/XPRoomMenuItem.h @@ -0,0 +1,27 @@ +// +// XPRoomMenuItem.h +// xplan-ios +// +// Created by 冯硕 on 2021/10/14. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSInteger, XPRoomMenuItemType) { + XPRoomMenuItemType_Input = 1, + XPRoomMenuItemType_Mic,///话筒 + XPRoomMenuItemType_Voice, ///声音 + XPRoomMenuItemType_Face,///表情 + XPRoomMenuItemType_Message,///房间私聊 + XPRoomMenuItemType_More,///更多 + XPRoomMenuItemType_Gift,///礼物 +}; + +@interface XPRoomMenuItem : NSObject + + +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Room/Model/XPRoomMenuItem.m b/xplan-ios/Main/Room/Model/XPRoomMenuItem.m new file mode 100644 index 00000000..74510d96 --- /dev/null +++ b/xplan-ios/Main/Room/Model/XPRoomMenuItem.m @@ -0,0 +1,12 @@ +// +// XPRoomMenuItem.m +// xplan-ios +// +// Created by 冯硕 on 2021/10/14. +// + +#import "XPRoomMenuItem.h" + +@implementation XPRoomMenuItem + +@end diff --git a/xplan-ios/Main/Room/UIManager/ActivityManager/XPRoomActivityManager.h b/xplan-ios/Main/Room/UIManager/ActivityManager/XPRoomActivityManager.h new file mode 100644 index 00000000..7cb606f8 --- /dev/null +++ b/xplan-ios/Main/Room/UIManager/ActivityManager/XPRoomActivityManager.h @@ -0,0 +1,16 @@ +// +// XPRoomActivityManager.h +// xplan-ios +// +// Created by 冯硕 on 2021/10/12. +// + +#import "XPRoomBaseManager.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface XPRoomActivityManager : XPRoomBaseManager + +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Room/UIManager/ActivityManager/XPRoomActivityManager.m b/xplan-ios/Main/Room/UIManager/ActivityManager/XPRoomActivityManager.m new file mode 100644 index 00000000..07558759 --- /dev/null +++ b/xplan-ios/Main/Room/UIManager/ActivityManager/XPRoomActivityManager.m @@ -0,0 +1,31 @@ +// +// XPRoomActivityManager.m +// xplan-ios +// +// Created by 冯硕 on 2021/10/12. +// + +#import "XPRoomActivityManager.h" +///View +#import "XPRoomActivityView.h" + +@interface XPRoomActivityManager () +///活动的View +@property (nonatomic,strong) XPRoomActivityView *activityView; +@end + +@implementation XPRoomActivityManager + +- (UIView *)containerView { + return self.activityView; +} + + +- (XPRoomActivityView *)activityView { + if (!_activityView) { + _activityView = [[XPRoomActivityView alloc] init]; + } + return _activityView; +} + +@end diff --git a/xplan-ios/Main/Room/UIManager/BaseUIManager/XPRoomBackUIManager.h b/xplan-ios/Main/Room/UIManager/BaseUIManager/XPRoomBackUIManager.h new file mode 100644 index 00000000..8031eb0c --- /dev/null +++ b/xplan-ios/Main/Room/UIManager/BaseUIManager/XPRoomBackUIManager.h @@ -0,0 +1,16 @@ +// +// BaseUIManager.h +// xplan-ios +// +// Created by 冯硕 on 2021/10/11. +// + +#import "XPRoomBaseManager.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface XPRoomBackUIManager : XPRoomBaseManager + +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Room/UIManager/BaseUIManager/XPRoomBackUIManager.m b/xplan-ios/Main/Room/UIManager/BaseUIManager/XPRoomBackUIManager.m new file mode 100644 index 00000000..54e0f0af --- /dev/null +++ b/xplan-ios/Main/Room/UIManager/BaseUIManager/XPRoomBackUIManager.m @@ -0,0 +1,30 @@ +// +// BaseUIManager.m +// xplan-ios +// +// Created by 冯硕 on 2021/10/11. +// + +#import "XPRoomBackUIManager.h" +#import "XPRoomBackUIView.h" +@interface XPRoomBackUIManager () +/// +@property (nonatomic,strong) XPRoomBackUIView *roomBackView; +@end + +@implementation XPRoomBackUIManager + +- (UIView *)containerView { + return self.roomBackView; +} + + + +- (XPRoomBackUIView *)roomBackView { + if (!_roomBackView) { + _roomBackView = [[XPRoomBackUIView alloc] init]; + } + return _roomBackView; +} + +@end diff --git a/xplan-ios/Main/Room/UIManager/BaseUIManager/XPRoomBaseManager.h b/xplan-ios/Main/Room/UIManager/BaseUIManager/XPRoomBaseManager.h new file mode 100644 index 00000000..7dec779a --- /dev/null +++ b/xplan-ios/Main/Room/UIManager/BaseUIManager/XPRoomBaseManager.h @@ -0,0 +1,17 @@ +// +// XPRoomBaseManager.h +// xplan-ios +// +// Created by 冯硕 on 2021/10/11. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface XPRoomBaseManager : NSObject +/// +@property (nonatomic,strong, readonly) UIView * containerView; +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Room/UIManager/BaseUIManager/XPRoomBaseManager.m b/xplan-ios/Main/Room/UIManager/BaseUIManager/XPRoomBaseManager.m new file mode 100644 index 00000000..72963162 --- /dev/null +++ b/xplan-ios/Main/Room/UIManager/BaseUIManager/XPRoomBaseManager.m @@ -0,0 +1,26 @@ +// +// XPRoomBaseManager.m +// xplan-ios +// +// Created by 冯硕 on 2021/10/11. +// + +#import "XPRoomBaseManager.h" + +@interface XPRoomBaseManager () +/// +@property (nonatomic,strong) UIView * containerView; +@end + +@implementation XPRoomBaseManager + + +- (UIView *)containerView { + if (!_containerView) { + _containerView = [[UIView alloc] init]; + _containerView.backgroundColor = [UIColor clearColor]; + } + return _containerView; +} + +@end diff --git a/xplan-ios/Main/Room/UIManager/MenuManager/XPRoomMenuManager.h b/xplan-ios/Main/Room/UIManager/MenuManager/XPRoomMenuManager.h new file mode 100644 index 00000000..2c78f236 --- /dev/null +++ b/xplan-ios/Main/Room/UIManager/MenuManager/XPRoomMenuManager.h @@ -0,0 +1,16 @@ +// +// XPRoomMenuManager.h +// xplan-ios +// +// Created by 冯硕 on 2021/10/12. +// + +#import "XPRoomBaseManager.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface XPRoomMenuManager : XPRoomBaseManager + +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Room/UIManager/MenuManager/XPRoomMenuManager.m b/xplan-ios/Main/Room/UIManager/MenuManager/XPRoomMenuManager.m new file mode 100644 index 00000000..21203274 --- /dev/null +++ b/xplan-ios/Main/Room/UIManager/MenuManager/XPRoomMenuManager.m @@ -0,0 +1,29 @@ +// +// XPRoomMenuManager.m +// xplan-ios +// +// Created by 冯硕 on 2021/10/12. +// + +#import "XPRoomMenuManager.h" +#import "XPRoomBottomMenuView.h" + +@interface XPRoomMenuManager () +/// +@property (nonatomic,strong) XPRoomBottomMenuView *menuView; +@end + +@implementation XPRoomMenuManager + +- (UIView *)containerView { + return self.menuView; +} + +#pragma mark - Getters And Setters +- (XPRoomBottomMenuView *)menuView { + if (!_menuView) { + _menuView = [[XPRoomBottomMenuView alloc] init]; + } + return _menuView; +} +@end diff --git a/xplan-ios/Main/Room/UIManager/MessageManager/XPRoomMessageManager.h b/xplan-ios/Main/Room/UIManager/MessageManager/XPRoomMessageManager.h new file mode 100644 index 00000000..0b7a837a --- /dev/null +++ b/xplan-ios/Main/Room/UIManager/MessageManager/XPRoomMessageManager.h @@ -0,0 +1,16 @@ +// +// XPRoomPositionManager.h +// xplan-ios +// +// Created by 冯硕 on 2021/10/12. +// + +#import "XPRoomBaseManager.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface XPRoomMessageManager : XPRoomBaseManager + +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Room/UIManager/MessageManager/XPRoomMessageManager.m b/xplan-ios/Main/Room/UIManager/MessageManager/XPRoomMessageManager.m new file mode 100644 index 00000000..cae73d01 --- /dev/null +++ b/xplan-ios/Main/Room/UIManager/MessageManager/XPRoomMessageManager.m @@ -0,0 +1,30 @@ +// +// XPRoomPositionManager.m +// xplan-ios +// +// Created by 冯硕 on 2021/10/12. +// + +#import "XPRoomMessageManager.h" +#import "XPRoomMessageView.h" +@interface XPRoomMessageManager () +/// +@property (nonatomic,strong) XPRoomMessageView *messageView; +@end + + +@implementation XPRoomMessageManager + +- (UIView *)containerView { + return self.messageView; +} + +- (XPRoomMessageView *)messageView { + if (!_messageView) { + _messageView = [[XPRoomMessageView alloc] init]; + } + return _messageView; +} + + +@end diff --git a/xplan-ios/Main/Room/UIManager/PositionManager/XPRoomPositionManager.h b/xplan-ios/Main/Room/UIManager/PositionManager/XPRoomPositionManager.h new file mode 100644 index 00000000..50000768 --- /dev/null +++ b/xplan-ios/Main/Room/UIManager/PositionManager/XPRoomPositionManager.h @@ -0,0 +1,16 @@ +// +// XPRoomPositionManager.h +// xplan-ios +// +// Created by 冯硕 on 2021/10/12. +// + +#import "XPRoomBaseManager.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface XPRoomPositionManager : XPRoomBaseManager + +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Room/UIManager/PositionManager/XPRoomPositionManager.m b/xplan-ios/Main/Room/UIManager/PositionManager/XPRoomPositionManager.m new file mode 100644 index 00000000..140d230c --- /dev/null +++ b/xplan-ios/Main/Room/UIManager/PositionManager/XPRoomPositionManager.m @@ -0,0 +1,28 @@ +// +// XPRoomPositionManager.m +// xplan-ios +// +// Created by 冯硕 on 2021/10/12. +// + +#import "XPRoomPositionManager.h" +#import "XPRoomPositionView.h" + +@interface XPRoomPositionManager () +///坑位 +@property (nonatomic,strong) XPRoomPositionView *positionView; +@end + +@implementation XPRoomPositionManager + +- (UIView *)containerView { + return self.positionView; +} + +- (XPRoomPositionView *)positionView { + if (!_positionView) { + _positionView = [[XPRoomPositionView alloc] init]; + } + return _positionView; +} +@end diff --git a/xplan-ios/Main/Room/UIManager/RoomInfoManager/XPRoomInfoManager.h b/xplan-ios/Main/Room/UIManager/RoomInfoManager/XPRoomInfoManager.h new file mode 100644 index 00000000..00228838 --- /dev/null +++ b/xplan-ios/Main/Room/UIManager/RoomInfoManager/XPRoomInfoManager.h @@ -0,0 +1,16 @@ +// +// XPRoomInfoManager.h +// xplan-ios +// +// Created by 冯硕 on 2021/10/12. +// + +#import "XPRoomBaseManager.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface XPRoomInfoManager : XPRoomBaseManager + +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Room/UIManager/RoomInfoManager/XPRoomInfoManager.m b/xplan-ios/Main/Room/UIManager/RoomInfoManager/XPRoomInfoManager.m new file mode 100644 index 00000000..ff21f522 --- /dev/null +++ b/xplan-ios/Main/Room/UIManager/RoomInfoManager/XPRoomInfoManager.m @@ -0,0 +1,29 @@ +// +// XPRoomInfoManager.m +// xplan-ios +// +// Created by 冯硕 on 2021/10/12. +// + +#import "XPRoomInfoManager.h" +#import "XPRoomInfoView.h" +@interface XPRoomInfoManager () +/// +@property (nonatomic,strong) XPRoomInfoView *infoView; +@end + +@implementation XPRoomInfoManager +#pragma mark - OVer load +- (UIView *)containerView { + return self.infoView; +} + +#pragma mark - Getters And Setters +- (XPRoomInfoView *)infoView { + if (!_infoView) { + _infoView = [[XPRoomInfoView alloc] init]; + } + return _infoView; +} + +@end diff --git a/xplan-ios/Main/Room/View/ActivityView/XPRoomActivityView.h b/xplan-ios/Main/Room/View/ActivityView/XPRoomActivityView.h new file mode 100644 index 00000000..b2ab25e9 --- /dev/null +++ b/xplan-ios/Main/Room/View/ActivityView/XPRoomActivityView.h @@ -0,0 +1,16 @@ +// +// XPRoomActivityView.h +// xplan-ios +// +// Created by 冯硕 on 2021/10/12. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface XPRoomActivityView : UIView + +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Room/View/ActivityView/XPRoomActivityView.m b/xplan-ios/Main/Room/View/ActivityView/XPRoomActivityView.m new file mode 100644 index 00000000..94a54f03 --- /dev/null +++ b/xplan-ios/Main/Room/View/ActivityView/XPRoomActivityView.m @@ -0,0 +1,99 @@ +// +// XPRoomActivityView.m +// xplan-ios +// +// Created by 冯硕 on 2021/10/12. +// + +#import "XPRoomActivityView.h" +///Third +#import +#import + +@interface XPRoomActivityView () +///容器 +@property (nonatomic,strong) UIStackView *stackView; +///轮播图 +@property (nonatomic,strong) SDCycleScrollView *cycleScrollView; +/// +@property (nonatomic,strong) UIView * placeHolderView; +@end + +@implementation XPRoomActivityView + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initSubViewConstraints]; +#warning to do Malloc 数据 + [self initMallocData]; + } + return self; +} + +#pragma mark - Private Method +- (void)initMallocData { + NSArray * array = @[@"https://image.doudouyue.com//FpRJcAcPiamtkcdyDEh96c1RZGfb?imageslim", @"https://image.doudouyue.com//FpRJcAcPiamtkcdyDEh96c1RZGfb?imageslim", @"https://image.doudouyue.com//FpRJcAcPiamtkcdyDEh96c1RZGfb?imageslim"]; + self.cycleScrollView.imageURLStringsGroup = array; + [self.cycleScrollView autoScroll]; +} + +- (void)initSubViews { + [self addSubview:self.stackView]; + + [self.stackView addArrangedSubview:self.cycleScrollView]; + [self.stackView addArrangedSubview:self.placeHolderView]; +} + +- (void)initSubViewConstraints { + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self); + }]; + + [self.cycleScrollView mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(65, 65)); + }]; +} + +#pragma mark - Getters And Setters +- (SDCycleScrollView *)cycleScrollView { + if (!_cycleScrollView) { + _cycleScrollView = [SDCycleScrollView cycleScrollViewWithFrame:CGRectZero delegate:self placeholderImage:nil]; + _cycleScrollView.pageControlAliment = SDCycleScrollViewPageContolAlimentCenter; + _cycleScrollView.currentPageDotColor = [UIColor whiteColor]; + _cycleScrollView.pageDotColor = [UIColor colorWithWhite:1 alpha:0.15]; + _cycleScrollView.currentPageDotImage = [UIImage imageNamed:@"room_activity_banner_select"]; + _cycleScrollView.pageDotImage = [UIImage imageNamed:@"room_activity_banner_normal"]; + _cycleScrollView.backgroundColor = [UIColor colorWithWhite:1 alpha:0.00]; + _cycleScrollView.bannerImageViewContentMode = UIViewContentModeScaleAspectFit; + _cycleScrollView.pageControlBottomOffset = -20; + } + return _cycleScrollView; +} + +- (UIView *)placeHolderView { + if (!_placeHolderView) { + _placeHolderView = [[UIView alloc] init]; + _placeHolderView.backgroundColor = [UIColor clearColor]; + [_placeHolderView setContentHuggingPriority:UILayoutPriorityDragThatCanResizeScene forAxis:UILayoutConstraintAxisHorizontal]; + [_placeHolderView setContentCompressionResistancePriority:UILayoutPriorityFittingSizeLevel forAxis:UILayoutConstraintAxisHorizontal]; + } + return _placeHolderView; +} + + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisVertical; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentCenter; + _stackView.spacing = 10; + } + return _stackView; +} + + +@end diff --git a/xplan-ios/Main/Room/View/BaseUIView/XPRoomBackUIView.h b/xplan-ios/Main/Room/View/BaseUIView/XPRoomBackUIView.h new file mode 100644 index 00000000..a0f4a20d --- /dev/null +++ b/xplan-ios/Main/Room/View/BaseUIView/XPRoomBackUIView.h @@ -0,0 +1,16 @@ +// +// XPRoomBaseUIView.h +// xplan-ios +// +// Created by 冯硕 on 2021/10/11. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface XPRoomBackUIView : UIView + +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Room/View/BaseUIView/XPRoomBackUIView.m b/xplan-ios/Main/Room/View/BaseUIView/XPRoomBackUIView.m new file mode 100644 index 00000000..ff522073 --- /dev/null +++ b/xplan-ios/Main/Room/View/BaseUIView/XPRoomBackUIView.m @@ -0,0 +1,51 @@ +// +// XPRoomBaseUIView.m +// xplan-ios +// +// Created by 冯硕 on 2021/10/11. +// 最下面的View + +#import "XPRoomBackUIView.h" +///Third +#import + +@interface XPRoomBackUIView () +/// +@property (nonatomic,strong) UIImageView *backImageView; +@end + +@implementation XPRoomBackUIView + +- (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]; +} + +- (void)initSubViewConstraints { + [self.backImageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self); + }]; +} + +#pragma mark - Getters And Setters +- (UIImageView *)backImageView { + if (!_backImageView) { + _backImageView = [[UIImageView alloc] init]; + _backImageView.userInteractionEnabled = YES; + _backImageView.image = [UIImage imageNamed:@"room_background"]; + _backImageView.layer.masksToBounds = YES; + _backImageView.contentMode = UIViewContentModeScaleAspectFill; + } + return _backImageView; +} + +@end diff --git a/xplan-ios/Main/Room/View/MenuView/XPRoomBottomMenuView.h b/xplan-ios/Main/Room/View/MenuView/XPRoomBottomMenuView.h new file mode 100644 index 00000000..9a7e772b --- /dev/null +++ b/xplan-ios/Main/Room/View/MenuView/XPRoomBottomMenuView.h @@ -0,0 +1,16 @@ +// +// XPRoomBottomMenuView.h +// xplan-ios +// +// Created by 冯硕 on 2021/10/11. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface XPRoomBottomMenuView : UIView + +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Room/View/MenuView/XPRoomBottomMenuView.m b/xplan-ios/Main/Room/View/MenuView/XPRoomBottomMenuView.m new file mode 100644 index 00000000..a3a6004b --- /dev/null +++ b/xplan-ios/Main/Room/View/MenuView/XPRoomBottomMenuView.m @@ -0,0 +1,181 @@ +// +// XPRoomBottomMenuView.m +// xplan-ios +// +// Created by 冯硕 on 2021/10/11. +// + +#import "XPRoomBottomMenuView.h" +///Third +#import +///Model +#import "XPRoomMenuItem.h" + +@interface XPRoomBottomMenuView () +/// +@property (nonatomic,strong) UIStackView *stackView; +///输入框 +@property (nonatomic,strong) UIButton *inputButton; +///麦 +@property (nonatomic,strong) UIButton *micButton; +///声音 +@property (nonatomic,strong) UIButton *voiceButton; +///表情 +@property (nonatomic,strong) UIButton *faceButton; +///私聊 +@property (nonatomic,strong) UIButton *messageButton; +///更多 +@property (nonatomic,strong) UIButton *moreButton; +///礼物 +@property (nonatomic,strong) UIButton *giftButton; +///占位的 +@property (nonatomic,strong) UIView * placeHolderView; +@end + + +@implementation XPRoomBottomMenuView + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initSubViewConstraints]; + } + return self; +} +#pragma mark - Response +- (void)menuButtonAction:(UIButton *)sender { + +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.stackView]; + [self.stackView addArrangedSubview:self.inputButton]; + [self.stackView addArrangedSubview:self.micButton]; + [self.stackView addArrangedSubview:self.voiceButton]; + [self.stackView addArrangedSubview:self.faceButton]; + [self.stackView addArrangedSubview:self.messageButton]; + [self.stackView addArrangedSubview:self.moreButton]; + [self.stackView addArrangedSubview:self.placeHolderView]; + [self.stackView addArrangedSubview:self.giftButton]; +} + +- (void)initSubViewConstraints { + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self).inset(15); + make.top.bottom.mas_equalTo(self); + }]; + + [self.inputButton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(100, 30)); + }]; + + [self.giftButton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(38, 38)); + }]; +} +#pragma mark - Getters And Setters +- (UIButton *)inputButton { + if (!_inputButton) { + _inputButton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_inputButton setTitle:@"说点什么..." forState:UIControlStateNormal]; + [_inputButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _inputButton.titleLabel.font = [UIFont systemFontOfSize:15]; + _inputButton.layer.masksToBounds = YES; + _inputButton.layer.cornerRadius = 15; + [_inputButton setBackgroundImage:[UIImage imageNamed:@"room_menu_input_bg"] forState:UIControlStateNormal]; + _inputButton.tag = XPRoomMenuItemType_Input; + [_inputButton addTarget:self action:@selector(menuButtonAction:) forControlEvents:UIControlEventTouchUpInside]; + } + return _inputButton; +} + +- (UIButton *)micButton { + if (!_micButton) { + _micButton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_micButton setImage:[UIImage imageNamed:@"room_menu_mic_open"] forState:UIControlStateNormal]; + [_micButton setImage:[UIImage imageNamed:@"room_menu_mic_close"] forState:UIControlStateSelected]; + _micButton.tag = XPRoomMenuItemType_Mic; + [_micButton addTarget:self action:@selector(menuButtonAction:) forControlEvents:UIControlEventTouchUpInside]; + } + return _micButton; +} + +- (UIButton *)voiceButton { + if (!_voiceButton) { + _voiceButton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_voiceButton setImage:[UIImage imageNamed:@"room_menu_voice_open"] forState:UIControlStateNormal]; + [_voiceButton setImage:[UIImage imageNamed:@"room_menu_voice_close"] forState:UIControlStateSelected]; + _voiceButton.tag = XPRoomMenuItemType_Voice; + [_voiceButton addTarget:self action:@selector(menuButtonAction:) forControlEvents:UIControlEventTouchUpInside]; + } + return _voiceButton; +} + +- (UIButton *)faceButton { + if (!_faceButton) { + _faceButton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_faceButton setImage:[UIImage imageNamed:@"room_menu_face"] forState:UIControlStateNormal]; + [_faceButton setImage:[UIImage imageNamed:@"room_menu_face"] forState:UIControlStateSelected]; + _faceButton.tag = XPRoomMenuItemType_Face; + [_faceButton addTarget:self action:@selector(menuButtonAction:) forControlEvents:UIControlEventTouchUpInside]; + } + return _faceButton; +} + +- (UIButton *)messageButton { + if (!_messageButton) { + _messageButton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_messageButton setImage:[UIImage imageNamed:@"room_menu_message"] forState:UIControlStateNormal]; + [_messageButton setImage:[UIImage imageNamed:@"room_menu_new_message"] forState:UIControlStateSelected]; + _messageButton.tag = XPRoomMenuItemType_Message; + [_messageButton addTarget:self action:@selector(menuButtonAction:) forControlEvents:UIControlEventTouchUpInside]; + } + return _messageButton; +} + +- (UIButton *)moreButton { + if (!_moreButton) { + _moreButton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_moreButton setImage:[UIImage imageNamed:@"room_menu_more"] forState:UIControlStateNormal]; + [_moreButton setImage:[UIImage imageNamed:@"room_menu_more"] forState:UIControlStateSelected]; + _moreButton.tag = XPRoomMenuItemType_Voice; + [_moreButton addTarget:self action:@selector(menuButtonAction:) forControlEvents:UIControlEventTouchUpInside]; + } + return _moreButton; +} + +- (UIButton *)giftButton { + if (!_giftButton) { + _giftButton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_giftButton setImage:[UIImage imageNamed:@"room_menu_gift"] forState:UIControlStateNormal]; + [_giftButton setImage:[UIImage imageNamed:@"room_menu_gift"] forState:UIControlStateSelected]; + _giftButton.tag = XPRoomMenuItemType_Voice; + [_giftButton addTarget:self action:@selector(menuButtonAction:) forControlEvents:UIControlEventTouchUpInside]; + } + return _giftButton; +} + +- (UIView *)placeHolderView { + if (!_placeHolderView) { + _placeHolderView = [[UIView alloc] init]; + _placeHolderView.backgroundColor = [UIColor clearColor]; + [_placeHolderView setContentHuggingPriority:UILayoutPriorityDragThatCanResizeScene forAxis:UILayoutConstraintAxisHorizontal]; + } + return _placeHolderView; +} + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisHorizontal; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentCenter; + _stackView.spacing = 8; + } + return _stackView; +} + +@end diff --git a/xplan-ios/Main/Room/View/MessageView/XPRoomMessageView.h b/xplan-ios/Main/Room/View/MessageView/XPRoomMessageView.h new file mode 100644 index 00000000..8755d6d0 --- /dev/null +++ b/xplan-ios/Main/Room/View/MessageView/XPRoomMessageView.h @@ -0,0 +1,16 @@ +// +// XPRoomMessageView.h +// xplan-ios +// +// Created by 冯硕 on 2021/10/11. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface XPRoomMessageView : UIView + +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Room/View/MessageView/XPRoomMessageView.m b/xplan-ios/Main/Room/View/MessageView/XPRoomMessageView.m new file mode 100644 index 00000000..b3811b19 --- /dev/null +++ b/xplan-ios/Main/Room/View/MessageView/XPRoomMessageView.m @@ -0,0 +1,31 @@ +// +// XPRoomMessageView.m +// xplan-ios +// +// Created by 冯硕 on 2021/10/11. +// + +#import "XPRoomMessageView.h" + +@implementation XPRoomMessageView + +- (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 orangeColor]; +} + +- (void)initSubViewConstraints { + +} + +@end diff --git a/xplan-ios/Main/Room/View/PositionView/XPRoomPositionView.h b/xplan-ios/Main/Room/View/PositionView/XPRoomPositionView.h new file mode 100644 index 00000000..8c5632d0 --- /dev/null +++ b/xplan-ios/Main/Room/View/PositionView/XPRoomPositionView.h @@ -0,0 +1,16 @@ +// +// XPRoomPositionView.h +// xplan-ios +// +// Created by 冯硕 on 2021/10/11. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface XPRoomPositionView : UIView + +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Room/View/PositionView/XPRoomPositionView.m b/xplan-ios/Main/Room/View/PositionView/XPRoomPositionView.m new file mode 100644 index 00000000..4d12a663 --- /dev/null +++ b/xplan-ios/Main/Room/View/PositionView/XPRoomPositionView.m @@ -0,0 +1,31 @@ +// +// 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 diff --git a/xplan-ios/Main/Room/View/RoomInfoView/XPRoomInfoView.h b/xplan-ios/Main/Room/View/RoomInfoView/XPRoomInfoView.h new file mode 100644 index 00000000..7c55742e --- /dev/null +++ b/xplan-ios/Main/Room/View/RoomInfoView/XPRoomInfoView.h @@ -0,0 +1,16 @@ +// +// XPRoomInfoView.h +// xplan-ios +// +// Created by 冯硕 on 2021/10/11. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface XPRoomInfoView : UIView + +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Room/View/RoomInfoView/XPRoomInfoView.m b/xplan-ios/Main/Room/View/RoomInfoView/XPRoomInfoView.m new file mode 100644 index 00000000..7357455b --- /dev/null +++ b/xplan-ios/Main/Room/View/RoomInfoView/XPRoomInfoView.m @@ -0,0 +1,257 @@ +// +// XPRoomInfoView.m +// xplan-ios +// +// Created by 冯硕 on 2021/10/11. +// + +#import "XPRoomInfoView.h" +///Third +#import +#import +#import +///Tool +#import "UIImage+Utils.h" +#import "UIButton+EnlargeTouchArea.h" +#import "XPMacro.h" +#import "ThemeColor.h" + +@interface XPRoomInfoView () +///返回按钮 +@property (nonatomic,strong) UIButton *backButton; +///容器 +@property (nonatomic,strong) UIStackView *nickStackView; +/// +@property (nonatomic,strong) UIStackView *titleStackView; +///房间名字 +@property (nonatomic,strong) MarqueeLabel *titleLabel; +///礼物特效 +@property (nonatomic,strong) UIImageView *giftEffectImageView; +/// +@property (nonatomic,strong) UIStackView *onlineStackView; +///绿色的小圆点 +@property (nonatomic,strong) UIView * greenDotView; +///音游id和在线人数 +@property (nonatomic,strong) YYLabel *idLabel; +///收藏 +@property (nonatomic,strong) UIButton *collectButton; +///分享 +@property (nonatomic,strong) UIButton *shareButton; +///设置 +@property (nonatomic,strong) UIButton *settingButton; +@end + +@implementation XPRoomInfoView + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initSubViewConstraints]; +#warning to do 测试数据 + [self initMallocData]; + } + return self; +} + +#pragma mark - Response +- (void)backButtonAction:(UIButton *)sender { + +} + +- (void)shareButtonAction:(UIButton *)sender{ + +} + +- (void)settingButtonAction:(UIButton *)sender { + +} + + +#pragma mark - Private Method +- (void)initMallocData { + self.titleLabel.text = @"这是房间标题"; + self.idLabel.text = @"这是在线人数1000 ID:100000"; +} + + +- (void)initSubViews { + [self addSubview:self.backButton]; + [self addSubview:self.nickStackView]; + [self addSubview:self.collectButton]; + [self addSubview:self.shareButton]; + [self addSubview:self.settingButton]; + + [self.nickStackView addArrangedSubview:self.titleStackView]; + [self.nickStackView addArrangedSubview:self.onlineStackView]; + + [self.onlineStackView addArrangedSubview:self.greenDotView]; + [self.onlineStackView addArrangedSubview:self.idLabel]; + + [self.titleStackView addArrangedSubview:self.titleLabel]; + [self.titleStackView addArrangedSubview:self.giftEffectImageView]; +} + +- (void)initSubViewConstraints { + [self.backButton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.equalTo(self).offset(14); + make.bottom.equalTo(self).offset(-14); + make.height.width.equalTo(@22); + }]; + + // 设置 + [self.settingButton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-14); + make.centerY.mas_equalTo(self.backButton); + make.width.height.mas_equalTo(20); + }]; + + [self.shareButton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.equalTo(self.settingButton.mas_left).offset(-17); + make.centerY.mas_equalTo(self.backButton); + make.width.height.mas_equalTo(20); + }]; + + [self.collectButton mas_remakeConstraints:^(MASConstraintMaker *make) { + make.centerY.equalTo(self.backButton); + make.left.equalTo(self.nickStackView.mas_right).offset(5); + make.width.mas_equalTo(@53); + make.height.mas_equalTo(@22); + }]; + + [self.nickStackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.backButton); + make.left.mas_equalTo(self.backButton.mas_right).offset(10); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_lessThanOrEqualTo(100); + }]; + + [self.greenDotView mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(3,3)); + }]; +} + +#pragma mark - Getters And Setters +- (UIButton *)backButton{ + if (!_backButton) { + _backButton = [[UIButton alloc] init]; + [_backButton setImage:[UIImage imageNamed:@"room_info_back"] forState:UIControlStateNormal]; + [_backButton addTarget:self action:@selector(backButtonAction:) forControlEvents:UIControlEventTouchUpInside]; + [_backButton setEnlargeEdgeWithTop:15 right:15 bottom:15 left:15]; + } + return _backButton; +} + +- (UIButton *)shareButton { + if(!_shareButton){ + _shareButton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_shareButton setImage:[UIImage imageNamed:@"room_info_share"] forState:UIControlStateNormal]; + [_shareButton addTarget:self action:@selector(shareButtonAction:) forControlEvents:UIControlEventTouchUpInside]; + [_shareButton setEnlargeEdgeWithTop:8 right:8 bottom:8 left:8]; + } + return _shareButton; +} + +- (UIButton *)settingButton { + if (!_settingButton) { + _settingButton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_settingButton setImage:[UIImage imageNamed:@"room_info_setting"] forState:UIControlStateNormal]; + [_settingButton addTarget:self action:@selector(settingButtonAction:) forControlEvents:UIControlEventTouchUpInside]; + [_settingButton setEnlargeEdgeWithTop:8 right:8 bottom:8 left:8]; + } + return _settingButton; +} + + +- (UIButton *)collectButton { + if (!_collectButton) { + _collectButton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_collectButton setTitle:@"收藏" forState:UIControlStateNormal]; + [_collectButton setTitle:@"已收藏" forState:UIControlStateSelected]; + [_collectButton setTitleColor:[ThemeColor mainTextColor] forState:UIControlStateNormal]; + [_collectButton setTitleColor:[ThemeColor mainTextColor] forState:UIControlStateSelected]; + [_collectButton setBackgroundImage:[UIImage gradientColorImageFromColors:@[[ThemeColor confirmButtonGradientStartColor], [ThemeColor confirmButtonGradientEndColor]] gradientType:GradientTypeLeftToRight imgSize:CGSizeMake(53, 22)] forState:UIControlStateNormal]; + _collectButton.titleLabel.font = [UIFont systemFontOfSize:12]; + _collectButton.layer.cornerRadius = 11; + _collectButton.layer.masksToBounds = YES; + } + return _collectButton; +} + +- (UIStackView *)nickStackView { + if (!_nickStackView) { + _nickStackView = [[UIStackView alloc] init]; + _nickStackView.axis = UILayoutConstraintAxisVertical; + _nickStackView.distribution = UIStackViewDistributionFill; + _nickStackView.alignment = UIStackViewAlignmentLeading; + _nickStackView.spacing = 3; + } + return _nickStackView; +} + +- (UIStackView *)titleStackView { + if (!_titleStackView) { + _titleStackView = [[UIStackView alloc] init]; + _titleStackView.axis = UILayoutConstraintAxisHorizontal; + _titleStackView.distribution = UIStackViewDistributionFill; + _titleStackView.alignment = UIStackViewAlignmentCenter; + _titleStackView.spacing = 5; + } + return _titleStackView; +} + + +- (MarqueeLabel *)titleLabel{ + if (!_titleLabel) { + _titleLabel = [[MarqueeLabel alloc] init]; + _titleLabel.scrollDuration = 8.0; + _titleLabel.fadeLength = 6.0f; + _titleLabel.font = [UIFont fontWithName:@"PingFang-SC-Bold" size:14]; + _titleLabel.textColor = [ThemeColor mainTextColor]; + } + return _titleLabel; +} + +- (UIImageView *)giftEffectImageView { + if (!_giftEffectImageView) { + _giftEffectImageView = [[UIImageView alloc] init]; + _giftEffectImageView.userInteractionEnabled = YES; + _giftEffectImageView.image = [UIImage imageNamed:@"room_info_gift_effect"]; + } + return _giftEffectImageView; +} + +- (UIStackView *)onlineStackView { + if (!_onlineStackView) { + _onlineStackView = [[UIStackView alloc] init]; + _onlineStackView.axis = UILayoutConstraintAxisHorizontal; + _onlineStackView.distribution = UIStackViewDistributionFill; + _onlineStackView.alignment = UIStackViewAlignmentCenter; + _onlineStackView.spacing = 2; + } + return _onlineStackView; +} + +- (UIView *)greenDotView { + if (!_greenDotView) { + _greenDotView = [[UIView alloc] init]; + _greenDotView.backgroundColor = [ThemeColor roomOnLineIdenColor]; + _greenDotView.layer.masksToBounds = YES; + _greenDotView.layer.cornerRadius = 1.5; + } + return _greenDotView; +} + +- (YYLabel *)idLabel { + if (!_idLabel) { + _idLabel = [[YYLabel alloc] init]; + _idLabel.textColor = [ThemeColor secondTextColor]; + _idLabel.font = [UIFont systemFontOfSize:9]; + } + return _idLabel; +} + + +@end diff --git a/xplan-ios/Main/Room/XPRoomViewController.h b/xplan-ios/Main/Room/XPRoomViewController.h new file mode 100644 index 00000000..783f5dc4 --- /dev/null +++ b/xplan-ios/Main/Room/XPRoomViewController.h @@ -0,0 +1,16 @@ +// +// XPRoomViewController.h +// xplan-ios +// +// Created by 冯硕 on 2021/10/11. +// + +#import "MvpViewController.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface XPRoomViewController : MvpViewController + +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Room/XPRoomViewController.m b/xplan-ios/Main/Room/XPRoomViewController.m new file mode 100644 index 00000000..7dadba84 --- /dev/null +++ b/xplan-ios/Main/Room/XPRoomViewController.m @@ -0,0 +1,140 @@ +// +// XPRoomViewController.m +// xplan-ios +// +// Created by 冯硕 on 2021/10/11. +// + +#import "XPRoomViewController.h" +///Third +#import +///Tool +#import "XPMacro.h" +///Manager +#import "XPRoomBackUIManager.h" +#import "XPRoomInfoManager.h" +#import "XPRoomPositionManager.h" +#import "XPRoomMessageManager.h" +#import "XPRoomMenuManager.h" +#import "XPRoomActivityManager.h" + +@interface XPRoomViewController () +///背景 +@property (nonatomic,strong) XPRoomBackUIManager *backManager; +///房间信息 +@property (nonatomic,strong) XPRoomInfoManager *infoManager; +///坑位信息 +@property (nonatomic,strong) XPRoomPositionManager *positionManager; +///公屏 +@property (nonatomic,strong) XPRoomMessageManager *messageManager; +///底部操作栏 +@property (nonatomic,strong) XPRoomMenuManager *menuManager; +///活动 +@property (nonatomic,strong) XPRoomActivityManager *activityManager; +@end + +@implementation XPRoomViewController + +- (BOOL)isHiddenNavBar { + return YES; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initSubViewConstraints]; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.view addSubview:self.backManager.containerView]; + [self.view addSubview:self.infoManager.containerView]; + [self.view addSubview:self.positionManager.containerView]; + [self.view addSubview:self.messageManager.containerView]; + [self.view addSubview:self.menuManager.containerView]; + [self.view addSubview:self.activityManager.containerView]; +} + +- (void)initSubViewConstraints { + [self.backManager.containerView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.view); + }]; + + [self.infoManager.containerView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.view); + make.height.mas_equalTo(kNavigationHeight); + }]; + + [self.positionManager.containerView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.view); + make.top.mas_equalTo(self.infoManager.containerView.mas_bottom); + make.height.mas_equalTo(@280); + }]; + + [self.messageManager.containerView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.equalTo(self.positionManager.containerView.mas_bottom); + make.bottom.equalTo(self.menuManager.containerView.mas_top).offset(-5); + make.left.equalTo(self.view); + make.right.equalTo(self.activityManager.containerView.mas_left).offset(-10); + }]; + + [self.menuManager.containerView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.view); + make.bottom.mas_equalTo(-kSafeAreaBottomHeight- 8); + make.height.mas_equalTo(40); + }]; + + [self.activityManager.containerView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.messageManager.containerView); + make.right.mas_equalTo(self.view); + make.bottom.mas_equalTo(self.menuManager.containerView.mas_top).offset(-5); + make.width.mas_equalTo(80); + }]; + +} + + +#pragma mark - Getters And Setters +- (XPRoomBackUIManager *)backManager { + if (!_backManager) { + _backManager = [[XPRoomBackUIManager alloc] init]; + } + return _backManager; +} + +- (XPRoomInfoManager *)infoManager { + if (!_infoManager) { + _infoManager = [[XPRoomInfoManager alloc] init]; + } + return _infoManager; +} + +- (XPRoomPositionManager *)positionManager { + if (!_positionManager) { + _positionManager = [[XPRoomPositionManager alloc] init]; + } + return _positionManager; +} + +- (XPRoomMessageManager *)messageManager { + if (!_messageManager) { + _messageManager = [[XPRoomMessageManager alloc] init]; + } + return _messageManager; +} + +- (XPRoomMenuManager *)menuManager { + if (!_menuManager) { + _menuManager = [[XPRoomMenuManager alloc] init]; + } + return _menuManager; +} + +- (XPRoomActivityManager *)activityManager { + if (!_activityManager) { + _activityManager = [[XPRoomActivityManager alloc] init]; + } + return _activityManager; +} + +@end