From ace001e14dcd4b5a230d6a3f677a6cd43fa7bc9a Mon Sep 17 00:00:00 2001 From: 杨锴 <841720330@qq.com> Date: 星期二, 20 八月 2024 17:51:23 +0800 Subject: [PATCH] fix UI --- XQMuse/Assets.xcassets/Icons/icon_more.imageset/icon_more@2x.png | 0 XQMuse/Root/Me/VC/NoticeCenterVC.swift | 67 + XQMuse/Root/Me/VC/NoticeCenterUserRepeaceDetailVC.swift | 17 XQMuse/Root/Me/TCell/MessageTCell.xib | 101 ++ XQMuse/Assets.xcassets/Icons/icon_msg_user.imageset/icon_msg_user@3x.png | 0 XQMuse/Assets.xcassets/Icons/icon_msg_sys.imageset/Contents.json | 22 XQMuse/Assets.xcassets/Icons/icon_msg_sys.imageset/icon_msg_sys@2x.png | 0 XQMuse/Assets.xcassets/Placeholder/bg_empty.imageset/Contents.json | 22 XQMuse/Assets.xcassets/Icons/icon_msg_user.imageset/icon_msg_user@2x.png | 0 XQMuse/Root/Me/VC/SettingVC.swift | 22 XQMuse/Assets.xcassets/Placeholder/bg_empty.imageset/bg_empty@3x.png | 0 XQMuse/Assets.xcassets/Icons/icon_msg_sys.imageset/icon_msg_sys@3x.png | 0 XQMuse/Assets.xcassets/Icons/icon_imgPlaceHolder.imageset/icon_imgPlaceHolder@2x.png | 0 XQMuse/Root/Me/VC/NoticeCenterSysDetailVC.swift | 22 XQMuse.xcodeproj/project.pbxproj | 108 ++ XQMuse/Root/Me/VC/UserProfileVC.xib | 592 ++++++++++++ XQMuse/Root/Me/VC/SettingVC.xib | 243 +++++ XQMuse/Assets.xcassets/Icons/icon_question.imageset/icon_question@2x.png | 0 XQMuse/Root/Me/VC/UserProfileVC.swift | 70 + XQMuse/Root/Other/View/CommonAlertSheetView.xib | 73 + XQMuse/Root/Me/VC/StudyListVC.swift | 129 ++ XQMuse/Root/Me/VC/StudyListVC.xib | 91 + XQMuse/Root/Me/MeVC.xib | 145 ++ XQMuse/Assets.xcassets/Icons/icon_more.imageset/Contents.json | 22 XQMuse/Root/Other/View/CommonDatePickerView.xib | 107 ++ XQMuse/Root/Me/CCell/EmptyCCell.swift | 17 XQMuse/Assets.xcassets/Btns/btn_good_1.imageset/Contents.json | 22 XQMuse/Assets.xcassets/Icons/icon_imgPlaceHolder.imageset/Contents.json | 22 XQMuse/Assets.xcassets/Btns/btn_good_1.imageset/btn_good@2x.png | 0 XQMuse/Assets.xcassets/Icons/icon_imgPlaceHolder.imageset/icon_imgPlaceHolder@3x.png | 0 XQMuse/Assets.xcassets/Icons/icon_question.imageset/icon_question@3x.png | 0 XQMuse/Root/Me/MeVC.swift | 86 + XQMuse/Config/Enums/Enums.swift | 15 XQMuse/Root/Me/CCell/EmptyCCell.xib | 67 + XQMuse/Root/Me/TCell/MessageTCell.swift | 16 XQMuse/Assets.xcassets/Icons/icon_msg_user.imageset/Contents.json | 22 XQMuse/Assets.xcassets/Icons/icon_question.imageset/Contents.json | 22 XQMuse/Assets.xcassets/Btns/btn_good_1.imageset/btn_good@3x.png | 0 XQMuse/Root/Me/VC/NoticeCenterSysDetailVC.xib | 105 ++ XQMuse/Assets.xcassets/Icons/icon_more.imageset/icon_more@3x.png | 0 XQMuse/Root/Other/View/CommonAlertSheetView.swift | 125 ++ XQMuse/Assets.xcassets/Placeholder/bg_empty.imageset/bg_empty@2x.png | 0 XQMuse/Root/Me/VC/NoticeCenterUserRepeaceDetailVC.xib | 205 ++++ XQMuse/Root/Other/View/CommonDatePickerView.swift | 242 +++++ 44 files changed, 2,798 insertions(+), 21 deletions(-) diff --git a/XQMuse.xcodeproj/project.pbxproj b/XQMuse.xcodeproj/project.pbxproj index 52982fd..13cd9ae 100644 --- a/XQMuse.xcodeproj/project.pbxproj +++ b/XQMuse.xcodeproj/project.pbxproj @@ -23,10 +23,16 @@ 130ED7E82C6AEF5900D0736E /* Home_Style_4_TCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 130ED7E62C6AEF5900D0736E /* Home_Style_4_TCell.xib */; }; 130ED7ED2C6AF05C00D0736E /* Home_Style_4_Inner_CCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 130ED7EB2C6AF05C00D0736E /* Home_Style_4_Inner_CCell.xib */; }; 130ED7EE2C6AF05C00D0736E /* Home_Style_4_Inner_CCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 130ED7EC2C6AF05C00D0736E /* Home_Style_4_Inner_CCell.swift */; }; + 131111812C749085002877FC /* StudyListVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1311117F2C749084002877FC /* StudyListVC.swift */; }; + 131111822C749085002877FC /* StudyListVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 131111802C749084002877FC /* StudyListVC.xib */; }; 131E75C42C6B87C500E2C85D /* ForgotPasswordChangeVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 131E75C32C6B87C400E2C85D /* ForgotPasswordChangeVC.xib */; }; 131E75C52C6B87C500E2C85D /* ForgotPasswordChangeVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 131E75C22C6B87C400E2C85D /* ForgotPasswordChangeVC.swift */; }; + 132DB8FE2C74826D00EF33A7 /* SettingVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 132DB8FC2C74826D00EF33A7 /* SettingVC.swift */; }; + 132DB8FF2C74826D00EF33A7 /* SettingVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 132DB8FD2C74826D00EF33A7 /* SettingVC.xib */; }; 132EB01C2C6B32B200990429 /* RegisterVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 132EB01A2C6B32B200990429 /* RegisterVC.swift */; }; 132EB01D2C6B32B200990429 /* RegisterVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 132EB01B2C6B32B200990429 /* RegisterVC.xib */; }; + 1331391A2C742A0C009E179E /* UserProfileVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 133139192C742A0C009E179E /* UserProfileVC.xib */; }; + 1331391B2C742A0C009E179E /* UserProfileVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 133139182C742A0C009E179E /* UserProfileVC.swift */; }; 13334FD52C731C1B00914086 /* VideoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13334FD42C731C1B00914086 /* VideoView.swift */; }; 13334FD72C731E0B00914086 /* PavilionVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13334FD62C731E0B00914086 /* PavilionVC.xib */; }; 13334FDB2C7321BE00914086 /* PavilionItemCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13334FD92C7321BE00914086 /* PavilionItemCell.swift */; }; @@ -107,6 +113,14 @@ 139C16602C6A0FBB00A924D9 /* TestLeftRightCollectionViewFlowLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 139C165F2C6A0FBB00A924D9 /* TestLeftRightCollectionViewFlowLayout.swift */; }; 139C16632C6A108A00A924D9 /* HomeRelaxBannerCCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 139C16612C6A108A00A924D9 /* HomeRelaxBannerCCell.swift */; }; 139C16642C6A108A00A924D9 /* HomeRelaxBannerCCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 139C16622C6A108A00A924D9 /* HomeRelaxBannerCCell.xib */; }; + 13A0A89E2C746A8700DF08B6 /* CommonAlertSheetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13A0A89C2C746A8600DF08B6 /* CommonAlertSheetView.swift */; }; + 13A0A89F2C746A8700DF08B6 /* CommonAlertSheetView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13A0A89D2C746A8700DF08B6 /* CommonAlertSheetView.xib */; }; + 13A0A8A22C746AE600DF08B6 /* Enums.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13A0A8A12C746AE600DF08B6 /* Enums.swift */; }; + 13A0A8A52C746B5600DF08B6 /* CommonDatePickerView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13A0A8A32C746B5600DF08B6 /* CommonDatePickerView.xib */; }; + 13A0A8A62C746B5600DF08B6 /* CommonDatePickerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13A0A8A42C746B5600DF08B6 /* CommonDatePickerView.swift */; }; + 13A0A8AA2C74740800DF08B6 /* NoticeCenterVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13A0A8A72C74740800DF08B6 /* NoticeCenterVC.swift */; }; + 13A0A8AE2C74757200DF08B6 /* MessageTCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13A0A8AD2C74757200DF08B6 /* MessageTCell.xib */; }; + 13A0A8AF2C74757200DF08B6 /* MessageTCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13A0A8AC2C74757200DF08B6 /* MessageTCell.swift */; }; 13A659462C6F4B9E00F731FA /* CourseDetail_1_TCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13A659452C6F4B9E00F731FA /* CourseDetail_1_TCell.xib */; }; 13A659472C6F4B9E00F731FA /* CourseDetail_1_TCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13A659442C6F4B9E00F731FA /* CourseDetail_1_TCell.swift */; }; 13A6594A2C6F4F2D00F731FA /* CourseDetail_2_TCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13A659492C6F4F2D00F731FA /* CourseDetail_2_TCell.xib */; }; @@ -114,12 +128,18 @@ 13A6594E2C6F641100F731FA /* CourseDetail_2_Inner_TCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13A6594D2C6F641100F731FA /* CourseDetail_2_Inner_TCell.xib */; }; 13A6594F2C6F641100F731FA /* CourseDetail_2_Inner_TCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13A6594C2C6F641100F731FA /* CourseDetail_2_Inner_TCell.swift */; }; 13CBC5D92C73532B00BC66C7 /* MeVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13CBC5D82C73532B00BC66C7 /* MeVC.xib */; }; + 13CBCCDF2C74793D00C67701 /* NoticeCenterSysDetailVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13CBCCDD2C74793D00C67701 /* NoticeCenterSysDetailVC.swift */; }; + 13CBCCE02C74793D00C67701 /* NoticeCenterSysDetailVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13CBCCDE2C74793D00C67701 /* NoticeCenterSysDetailVC.xib */; }; + 13CBCCE32C747C3D00C67701 /* NoticeCenterUserRepeaceDetailVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13CBCCE12C747C3D00C67701 /* NoticeCenterUserRepeaceDetailVC.swift */; }; + 13CBCCE42C747C3D00C67701 /* NoticeCenterUserRepeaceDetailVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13CBCCE22C747C3D00C67701 /* NoticeCenterUserRepeaceDetailVC.xib */; }; 13D256B42C6C68E7006FC2D7 /* ShareView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13D256B32C6C68E7006FC2D7 /* ShareView.swift */; }; 13D256B72C6C68F8006FC2D7 /* ShareView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13D256B62C6C68F8006FC2D7 /* ShareView.xib */; }; 13E0FBF92C6C8BDE009997AE /* CountdownChooseListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13E0FBF82C6C8BDE009997AE /* CountdownChooseListView.swift */; }; 13E0FBFB2C6C8BE3009997AE /* CountdownChooseListView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13E0FBFA2C6C8BE3009997AE /* CountdownChooseListView.xib */; }; 13E160202C6CB8930027F781 /* CommentListVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13E1601F2C6CB8930027F781 /* CommentListVC.xib */; }; 13E160212C6CB8930027F781 /* CommentListVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13E1601E2C6CB8930027F781 /* CommentListVC.swift */; }; + 13EC08902C74990B00E00128 /* EmptyCCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13EC088F2C74990B00E00128 /* EmptyCCell.xib */; }; + 13EC08912C74990B00E00128 /* EmptyCCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13EC088E2C74990B00E00128 /* EmptyCCell.swift */; }; 13EFCDBE2C6DCF5800B51AE6 /* HomeTyroGuideVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13EFCDBD2C6DCF5800B51AE6 /* HomeTyroGuideVC.swift */; }; 13EFCDC12C6DD27A00B51AE6 /* PaymentOrderVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13EFCDBF2C6DD27A00B51AE6 /* PaymentOrderVC.swift */; }; 13EFCDC22C6DD27A00B51AE6 /* PaymentOrderVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13EFCDC02C6DD27A00B51AE6 /* PaymentOrderVC.xib */; }; @@ -151,10 +171,16 @@ 130ED7E62C6AEF5900D0736E /* Home_Style_4_TCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = Home_Style_4_TCell.xib; sourceTree = "<group>"; }; 130ED7EB2C6AF05C00D0736E /* Home_Style_4_Inner_CCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = Home_Style_4_Inner_CCell.xib; sourceTree = "<group>"; }; 130ED7EC2C6AF05C00D0736E /* Home_Style_4_Inner_CCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Home_Style_4_Inner_CCell.swift; sourceTree = "<group>"; }; + 1311117F2C749084002877FC /* StudyListVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StudyListVC.swift; sourceTree = "<group>"; }; + 131111802C749084002877FC /* StudyListVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = StudyListVC.xib; sourceTree = "<group>"; }; 131E75C22C6B87C400E2C85D /* ForgotPasswordChangeVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ForgotPasswordChangeVC.swift; sourceTree = "<group>"; }; 131E75C32C6B87C400E2C85D /* ForgotPasswordChangeVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ForgotPasswordChangeVC.xib; sourceTree = "<group>"; }; + 132DB8FC2C74826D00EF33A7 /* SettingVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingVC.swift; sourceTree = "<group>"; }; + 132DB8FD2C74826D00EF33A7 /* SettingVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SettingVC.xib; sourceTree = "<group>"; }; 132EB01A2C6B32B200990429 /* RegisterVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RegisterVC.swift; sourceTree = "<group>"; }; 132EB01B2C6B32B200990429 /* RegisterVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = RegisterVC.xib; sourceTree = "<group>"; }; + 133139182C742A0C009E179E /* UserProfileVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserProfileVC.swift; sourceTree = "<group>"; }; + 133139192C742A0C009E179E /* UserProfileVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = UserProfileVC.xib; sourceTree = "<group>"; }; 13334FD42C731C1B00914086 /* VideoView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VideoView.swift; sourceTree = "<group>"; }; 13334FD62C731E0B00914086 /* PavilionVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = PavilionVC.xib; sourceTree = "<group>"; }; 13334FD92C7321BE00914086 /* PavilionItemCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PavilionItemCell.swift; sourceTree = "<group>"; }; @@ -237,6 +263,14 @@ 139C165F2C6A0FBB00A924D9 /* TestLeftRightCollectionViewFlowLayout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestLeftRightCollectionViewFlowLayout.swift; sourceTree = "<group>"; }; 139C16612C6A108A00A924D9 /* HomeRelaxBannerCCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeRelaxBannerCCell.swift; sourceTree = "<group>"; }; 139C16622C6A108A00A924D9 /* HomeRelaxBannerCCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = HomeRelaxBannerCCell.xib; sourceTree = "<group>"; }; + 13A0A89C2C746A8600DF08B6 /* CommonAlertSheetView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CommonAlertSheetView.swift; sourceTree = "<group>"; }; + 13A0A89D2C746A8700DF08B6 /* CommonAlertSheetView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CommonAlertSheetView.xib; sourceTree = "<group>"; }; + 13A0A8A12C746AE600DF08B6 /* Enums.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Enums.swift; sourceTree = "<group>"; }; + 13A0A8A32C746B5600DF08B6 /* CommonDatePickerView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CommonDatePickerView.xib; sourceTree = "<group>"; }; + 13A0A8A42C746B5600DF08B6 /* CommonDatePickerView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CommonDatePickerView.swift; sourceTree = "<group>"; }; + 13A0A8A72C74740800DF08B6 /* NoticeCenterVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NoticeCenterVC.swift; sourceTree = "<group>"; }; + 13A0A8AC2C74757200DF08B6 /* MessageTCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageTCell.swift; sourceTree = "<group>"; }; + 13A0A8AD2C74757200DF08B6 /* MessageTCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MessageTCell.xib; sourceTree = "<group>"; }; 13A659442C6F4B9E00F731FA /* CourseDetail_1_TCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CourseDetail_1_TCell.swift; sourceTree = "<group>"; }; 13A659452C6F4B9E00F731FA /* CourseDetail_1_TCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = CourseDetail_1_TCell.xib; sourceTree = "<group>"; }; 13A659482C6F4F2D00F731FA /* CourseDetail_2_TCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CourseDetail_2_TCell.swift; sourceTree = "<group>"; }; @@ -244,12 +278,18 @@ 13A6594C2C6F641100F731FA /* CourseDetail_2_Inner_TCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CourseDetail_2_Inner_TCell.swift; sourceTree = "<group>"; }; 13A6594D2C6F641100F731FA /* CourseDetail_2_Inner_TCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = CourseDetail_2_Inner_TCell.xib; sourceTree = "<group>"; }; 13CBC5D82C73532B00BC66C7 /* MeVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MeVC.xib; sourceTree = "<group>"; }; + 13CBCCDD2C74793D00C67701 /* NoticeCenterSysDetailVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NoticeCenterSysDetailVC.swift; sourceTree = "<group>"; }; + 13CBCCDE2C74793D00C67701 /* NoticeCenterSysDetailVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = NoticeCenterSysDetailVC.xib; sourceTree = "<group>"; }; + 13CBCCE12C747C3D00C67701 /* NoticeCenterUserRepeaceDetailVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NoticeCenterUserRepeaceDetailVC.swift; sourceTree = "<group>"; }; + 13CBCCE22C747C3D00C67701 /* NoticeCenterUserRepeaceDetailVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = NoticeCenterUserRepeaceDetailVC.xib; sourceTree = "<group>"; }; 13D256B32C6C68E7006FC2D7 /* ShareView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShareView.swift; sourceTree = "<group>"; }; 13D256B62C6C68F8006FC2D7 /* ShareView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ShareView.xib; sourceTree = "<group>"; }; 13E0FBF82C6C8BDE009997AE /* CountdownChooseListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CountdownChooseListView.swift; sourceTree = "<group>"; }; 13E0FBFA2C6C8BE3009997AE /* CountdownChooseListView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = CountdownChooseListView.xib; sourceTree = "<group>"; }; 13E1601E2C6CB8930027F781 /* CommentListVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CommentListVC.swift; sourceTree = "<group>"; }; 13E1601F2C6CB8930027F781 /* CommentListVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = CommentListVC.xib; sourceTree = "<group>"; }; + 13EC088E2C74990B00E00128 /* EmptyCCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmptyCCell.swift; sourceTree = "<group>"; }; + 13EC088F2C74990B00E00128 /* EmptyCCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = EmptyCCell.xib; sourceTree = "<group>"; }; 13EFCDBD2C6DCF5800B51AE6 /* HomeTyroGuideVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeTyroGuideVC.swift; sourceTree = "<group>"; }; 13EFCDBF2C6DD27A00B51AE6 /* PaymentOrderVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PaymentOrderVC.swift; sourceTree = "<group>"; }; 13EFCDC02C6DD27A00B51AE6 /* PaymentOrderVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = PaymentOrderVC.xib; sourceTree = "<group>"; }; @@ -283,6 +323,17 @@ children = ( 1300BD392C6DFB1C000BCA5E /* VIPCenterVC.swift */, 1300BD3A2C6DFB1C000BCA5E /* VIPCenterVC.xib */, + 133139182C742A0C009E179E /* UserProfileVC.swift */, + 133139192C742A0C009E179E /* UserProfileVC.xib */, + 13A0A8A72C74740800DF08B6 /* NoticeCenterVC.swift */, + 13CBCCDD2C74793D00C67701 /* NoticeCenterSysDetailVC.swift */, + 13CBCCDE2C74793D00C67701 /* NoticeCenterSysDetailVC.xib */, + 13CBCCE12C747C3D00C67701 /* NoticeCenterUserRepeaceDetailVC.swift */, + 13CBCCE22C747C3D00C67701 /* NoticeCenterUserRepeaceDetailVC.xib */, + 132DB8FC2C74826D00EF33A7 /* SettingVC.swift */, + 132DB8FD2C74826D00EF33A7 /* SettingVC.xib */, + 1311117F2C749084002877FC /* StudyListVC.swift */, + 131111802C749084002877FC /* StudyListVC.xib */, ); path = VC; sourceTree = "<group>"; @@ -484,6 +535,7 @@ 13985DB32C69B7D40046B6DC /* Config */ = { isa = PBXGroup; children = ( + 13A0A8A02C746ADA00DF08B6 /* Enums */, 139C165F2C6A0FBB00A924D9 /* TestLeftRightCollectionViewFlowLayout.swift */, 1336EFA42C6DEB550075E070 /* HoverHeaderFlowLayout.swift */, 137175C42C6C3C2100B38EF1 /* Fonts */, @@ -568,6 +620,8 @@ 13985DCA2C69E9C10046B6DC /* Me */ = { isa = PBXGroup; children = ( + 13EC08922C74990F00E00128 /* CCell */, + 13A0A8AB2C74755C00DF08B6 /* TCell */, 1300BD382C6DFB0A000BCA5E /* VC */, 13985DCD2C69EA160046B6DC /* MeVC.swift */, 13CBC5D82C73532B00BC66C7 /* MeVC.xib */, @@ -592,9 +646,30 @@ path = TCell; sourceTree = "<group>"; }; + 13A0A8A02C746ADA00DF08B6 /* Enums */ = { + isa = PBXGroup; + children = ( + 13A0A8A12C746AE600DF08B6 /* Enums.swift */, + ); + path = Enums; + sourceTree = "<group>"; + }; + 13A0A8AB2C74755C00DF08B6 /* TCell */ = { + isa = PBXGroup; + children = ( + 13A0A8AC2C74757200DF08B6 /* MessageTCell.swift */, + 13A0A8AD2C74757200DF08B6 /* MessageTCell.xib */, + ); + path = TCell; + sourceTree = "<group>"; + }; 13D256B52C6C68EB006FC2D7 /* View */ = { isa = PBXGroup; children = ( + 13A0A8A42C746B5600DF08B6 /* CommonDatePickerView.swift */, + 13A0A8A32C746B5600DF08B6 /* CommonDatePickerView.xib */, + 13A0A89C2C746A8600DF08B6 /* CommonAlertSheetView.swift */, + 13A0A89D2C746A8700DF08B6 /* CommonAlertSheetView.xib */, 13D256B32C6C68E7006FC2D7 /* ShareView.swift */, 13D256B62C6C68F8006FC2D7 /* ShareView.xib */, 134783CE2C6C86EC0096C736 /* PlaySettingView.swift */, @@ -606,6 +681,15 @@ 13334FD42C731C1B00914086 /* VideoView.swift */, ); path = View; + sourceTree = "<group>"; + }; + 13EC08922C74990F00E00128 /* CCell */ = { + isa = PBXGroup; + children = ( + 13EC088E2C74990B00E00128 /* EmptyCCell.swift */, + 13EC088F2C74990B00E00128 /* EmptyCCell.xib */, + ); + path = CCell; sourceTree = "<group>"; }; 13FB6D812C6EEFD200A0685D /* TCell */ = { @@ -719,17 +803,22 @@ 130B765E2C6C4C33006371AF /* HomeItemListVC.xib in Resources */, 13CBC5D92C73532B00BC66C7 /* MeVC.xib in Resources */, 1385E0072C6C558200AADB1F /* HomeRelaxBanner_2_CCell.xib in Resources */, + 131111822C749085002877FC /* StudyListVC.xib in Resources */, 132EB01D2C6B32B200990429 /* RegisterVC.xib in Resources */, 1336EFA92C6DEC6B0075E070 /* PaymentOrderResultTopView.xib in Resources */, + 1331391A2C742A0C009E179E /* UserProfileVC.xib in Resources */, 13334FDC2C7321BE00914086 /* PavilionItemCell.xib in Resources */, 1333DC7E2C72E7A500D8ACAE /* CourseSendGiftView.xib in Resources */, 137ABE352C6B3F64003A91C5 /* ForgotPasswordVC.xib in Resources */, + 13A0A8A52C746B5600DF08B6 /* CommonDatePickerView.xib in Resources */, 13FB6D842C6EEFE900A0685D /* MenuListTCell.xib in Resources */, 1377768E2C6AFD25004FF994 /* LoginVC.xib in Resources */, 134CC7E02C73283700EAEFB7 /* PavilionSearchVC.xib in Resources */, 130913EE2C6DE67E00418201 /* HomeRelaxBanner_2_1_CCell.xib in Resources */, + 13CBCCE02C74793D00C67701 /* NoticeCenterSysDetailVC.xib in Resources */, 130ED7E82C6AEF5900D0736E /* Home_Style_4_TCell.xib in Resources */, 13391E022C73334000B9513F /* PavilionDetailVC.xib in Resources */, + 13EC08902C74990B00E00128 /* EmptyCCell.xib in Resources */, 1377B4172C6DCC4300CF7CA5 /* Home_Style_4_Inner_1_CCell.xib in Resources */, 13FB6D8C2C6EFB5400A0685D /* CourseDetailHeaderView.xib in Resources */, 13985D9F2C69B2440046B6DC /* Assets.xcassets in Resources */, @@ -741,6 +830,7 @@ 13A6594A2C6F4F2D00F731FA /* CourseDetail_2_TCell.xib in Resources */, 139C165E2C6A0AC600A924D9 /* Home_Style_3_TCell.xib in Resources */, 137175C82C6C3C6D00B38EF1 /* Agenda-Light.otf in Resources */, + 13CBCCE42C747C3D00C67701 /* NoticeCenterUserRepeaceDetailVC.xib in Resources */, 13985DA22C69B2440046B6DC /* Base in Resources */, 134783D12C6C86F40096C736 /* PlaySettingView.xib in Resources */, 139C165A2C6A053000A924D9 /* Home_Style_2_TCell.xib in Resources */, @@ -750,9 +840,11 @@ 1377B40D2C6D936A00CF7CA5 /* CommentUserInputContentTCell.xib in Resources */, 137175CC2C6C412A00B38EF1 /* BackgroundVoiceVC.xib in Resources */, 137776932C6AFE69004FF994 /* SearchVC.xib in Resources */, + 132DB8FF2C74826D00EF33A7 /* SettingVC.xib in Resources */, 13985DBF2C69DDF90046B6DC /* HomeTopMenuView.xib in Resources */, 1385E00B2C6C57A900AADB1F /* HomeItemDetailVC.xib in Resources */, 137ABE3C2C6B6BDD003A91C5 /* ForgotPasswordInputCodeVC.xib in Resources */, + 13A0A8AE2C74757200DF08B6 /* MessageTCell.xib in Resources */, 130913EA2C6DE33200418201 /* PaymentOrderResultVC.xib in Resources */, 130ED7ED2C6AF05C00D0736E /* Home_Style_4_Inner_CCell.xib in Resources */, 137175C62C6C3C4700B38EF1 /* SourceHanSansCN-Regular.otf in Resources */, @@ -762,6 +854,7 @@ 13334FD72C731E0B00914086 /* PavilionVC.xib in Resources */, 139C16642C6A108A00A924D9 /* HomeRelaxBannerCCell.xib in Resources */, 13E0FBFB2C6C8BE3009997AE /* CountdownChooseListView.xib in Resources */, + 13A0A89F2C746A8700DF08B6 /* CommonAlertSheetView.xib in Resources */, 130B765A2C6C4963006371AF /* HomeRelaxVoiceCCell.xib in Resources */, 13E160202C6CB8930027F781 /* CommentListVC.xib in Resources */, 139228B12C6B8374006F3CB6 /* Popup_1_View.xib in Resources */, @@ -818,12 +911,14 @@ buildActionMask = 2147483647; files = ( 13FB6D872C6EF9DE00A0685D /* CourseDetialVC.swift in Sources */, + 132DB8FE2C74826D00EF33A7 /* SettingVC.swift in Sources */, 13D256B42C6C68E7006FC2D7 /* ShareView.swift in Sources */, 139466472C6B8E0200F6FB15 /* UpdatePhoneVC.swift in Sources */, 137175CB2C6C412A00B38EF1 /* BackgroundVoiceVC.swift in Sources */, 137776922C6AFE69004FF994 /* SearchVC.swift in Sources */, 13985D962C69B2410046B6DC /* AppDelegate.swift in Sources */, 13985DB02C69B7B00046B6DC /* BaseTabBarVC.swift in Sources */, + 131111812C749085002877FC /* StudyListVC.swift in Sources */, 13985DB22C69B7B00046B6DC /* TapBtn.swift in Sources */, 13FB6D802C6EED6000A0685D /* CourseMenuVC.swift in Sources */, 13985DBA2C69B8ED0046B6DC /* HomeVC.swift in Sources */, @@ -833,8 +928,10 @@ 13985D982C69B2410046B6DC /* SceneDelegate.swift in Sources */, 13985DBD2C69DDF30046B6DC /* HomeTopMenuView.swift in Sources */, 1377B4112C6DAA1900CF7CA5 /* ChooseOptView.swift in Sources */, + 13CBCCDF2C74793D00C67701 /* NoticeCenterSysDetailVC.swift in Sources */, 1385E0062C6C558200AADB1F /* HomeRelaxBanner_2_CCell.swift in Sources */, 130913EB2C6DE33200418201 /* PaymentOrderResultVC.swift in Sources */, + 13A0A8AF2C74757200DF08B6 /* MessageTCell.swift in Sources */, 13FB6D7E2C6EE27100A0685D /* CourseOfficialItemCCell.swift in Sources */, 137ABE342C6B3F64003A91C5 /* ForgotPasswordVC.swift in Sources */, 13EFCDBE2C6DCF5800B51AE6 /* HomeTyroGuideVC.swift in Sources */, @@ -850,8 +947,11 @@ 13985DB52C69B7DF0046B6DC /* Def.swift in Sources */, 139228AF2C6B836B006F3CB6 /* Popup_1_View.swift in Sources */, 1336EFA72C6DEC640075E070 /* PaymentOrderResultTopView.swift in Sources */, + 13CBCCE32C747C3D00C67701 /* NoticeCenterUserRepeaceDetailVC.swift in Sources */, + 13A0A8A62C746B5600DF08B6 /* CommonDatePickerView.swift in Sources */, 13EFCDC12C6DD27A00B51AE6 /* PaymentOrderVC.swift in Sources */, 13985DCE2C69EA160046B6DC /* MeVC.swift in Sources */, + 13A0A8AA2C74740800DF08B6 /* NoticeCenterVC.swift in Sources */, 13985DCC2C69E9FA0046B6DC /* PavilionVC.swift in Sources */, 13985DC42C69E0BF0046B6DC /* HomeTopMenuCCell.swift in Sources */, 1385E00A2C6C57A900AADB1F /* HomeItemDetailVC.swift in Sources */, @@ -864,10 +964,12 @@ 13985DB12C69B7B00046B6DC /* BaseVC.swift in Sources */, 13985DD52C69FC1F0046B6DC /* Home_Style_1_TCell.swift in Sources */, 132EB01C2C6B32B200990429 /* RegisterVC.swift in Sources */, + 1331391B2C742A0C009E179E /* UserProfileVC.swift in Sources */, 13E0FBF92C6C8BDE009997AE /* CountdownChooseListView.swift in Sources */, 13A659472C6F4B9E00F731FA /* CourseDetail_1_TCell.swift in Sources */, 130ED7EE2C6AF05C00D0736E /* Home_Style_4_Inner_CCell.swift in Sources */, 139C165D2C6A0AC600A924D9 /* Home_Style_3_TCell.swift in Sources */, + 13A0A8A22C746AE600DF08B6 /* Enums.swift in Sources */, 1377B40F2C6D93FA00CF7CA5 /* CommentCommentHeaderView.swift in Sources */, 1377B40C2C6D936A00CF7CA5 /* CommentUserInputContentTCell.swift in Sources */, 1385DFFA2C6C4EBC00AADB1F /* RefreshModel.swift in Sources */, @@ -877,11 +979,13 @@ 13A6594F2C6F641100F731FA /* CourseDetail_2_Inner_TCell.swift in Sources */, 13334FD52C731C1B00914086 /* VideoView.swift in Sources */, 130ED7E72C6AEF5900D0736E /* Home_Style_4_TCell.swift in Sources */, + 13EC08912C74990B00E00128 /* EmptyCCell.swift in Sources */, 130913EF2C6DE67E00418201 /* HomeRelaxBanner_2_1_CCell.swift in Sources */, 1333DC7A2C72D8C400D8ACAE /* CourseDetail_3_TCell.swift in Sources */, 1300BD3C2C6DFB1C000BCA5E /* VIPCenterVC.swift in Sources */, 1377B4162C6DCC4300CF7CA5 /* Home_Style_4_Inner_1_CCell.swift in Sources */, 13E160212C6CB8930027F781 /* CommentListVC.swift in Sources */, + 13A0A89E2C746A8700DF08B6 /* CommonAlertSheetView.swift in Sources */, 137ABE3B2C6B6BDD003A91C5 /* ForgotPasswordInputCodeVC.swift in Sources */, 130B765D2C6C4C33006371AF /* HomeItemListVC.swift in Sources */, 1385E0002C6C4F1200AADB1F /* NetworkRequest.swift in Sources */, @@ -1038,6 +1142,8 @@ GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = XQMuse/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = "心泉冥想"; + INFOPLIST_KEY_NSCameraUsageDescription = "相机"; + INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "相册"; INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen; INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait; @@ -1074,6 +1180,8 @@ GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = XQMuse/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = "心泉冥想"; + INFOPLIST_KEY_NSCameraUsageDescription = "相机"; + INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "相册"; INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen; INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait; diff --git a/XQMuse/Assets.xcassets/Btns/btn_good_1.imageset/Contents.json b/XQMuse/Assets.xcassets/Btns/btn_good_1.imageset/Contents.json new file mode 100644 index 0000000..d099fa1 --- /dev/null +++ b/XQMuse/Assets.xcassets/Btns/btn_good_1.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "btn_good@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "btn_good@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/XQMuse/Assets.xcassets/Btns/btn_good_1.imageset/btn_good@2x.png b/XQMuse/Assets.xcassets/Btns/btn_good_1.imageset/btn_good@2x.png new file mode 100644 index 0000000..67d79de --- /dev/null +++ b/XQMuse/Assets.xcassets/Btns/btn_good_1.imageset/btn_good@2x.png Binary files differ diff --git a/XQMuse/Assets.xcassets/Btns/btn_good_1.imageset/btn_good@3x.png b/XQMuse/Assets.xcassets/Btns/btn_good_1.imageset/btn_good@3x.png new file mode 100644 index 0000000..ccb11c4 --- /dev/null +++ b/XQMuse/Assets.xcassets/Btns/btn_good_1.imageset/btn_good@3x.png Binary files differ diff --git a/XQMuse/Assets.xcassets/Icons/icon_imgPlaceHolder.imageset/Contents.json b/XQMuse/Assets.xcassets/Icons/icon_imgPlaceHolder.imageset/Contents.json new file mode 100644 index 0000000..4eda4ed --- /dev/null +++ b/XQMuse/Assets.xcassets/Icons/icon_imgPlaceHolder.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "icon_imgPlaceHolder@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "icon_imgPlaceHolder@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/XQMuse/Assets.xcassets/Icons/icon_imgPlaceHolder.imageset/icon_imgPlaceHolder@2x.png b/XQMuse/Assets.xcassets/Icons/icon_imgPlaceHolder.imageset/icon_imgPlaceHolder@2x.png new file mode 100644 index 0000000..d3f08a8 --- /dev/null +++ b/XQMuse/Assets.xcassets/Icons/icon_imgPlaceHolder.imageset/icon_imgPlaceHolder@2x.png Binary files differ diff --git a/XQMuse/Assets.xcassets/Icons/icon_imgPlaceHolder.imageset/icon_imgPlaceHolder@3x.png b/XQMuse/Assets.xcassets/Icons/icon_imgPlaceHolder.imageset/icon_imgPlaceHolder@3x.png new file mode 100644 index 0000000..5f3f193 --- /dev/null +++ b/XQMuse/Assets.xcassets/Icons/icon_imgPlaceHolder.imageset/icon_imgPlaceHolder@3x.png Binary files differ diff --git a/XQMuse/Assets.xcassets/Icons/icon_more.imageset/Contents.json b/XQMuse/Assets.xcassets/Icons/icon_more.imageset/Contents.json new file mode 100644 index 0000000..5c15023 --- /dev/null +++ b/XQMuse/Assets.xcassets/Icons/icon_more.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "icon_more@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "icon_more@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/XQMuse/Assets.xcassets/Icons/icon_more.imageset/icon_more@2x.png b/XQMuse/Assets.xcassets/Icons/icon_more.imageset/icon_more@2x.png new file mode 100644 index 0000000..b29d82d --- /dev/null +++ b/XQMuse/Assets.xcassets/Icons/icon_more.imageset/icon_more@2x.png Binary files differ diff --git a/XQMuse/Assets.xcassets/Icons/icon_more.imageset/icon_more@3x.png b/XQMuse/Assets.xcassets/Icons/icon_more.imageset/icon_more@3x.png new file mode 100644 index 0000000..7fc29b7 --- /dev/null +++ b/XQMuse/Assets.xcassets/Icons/icon_more.imageset/icon_more@3x.png Binary files differ diff --git a/XQMuse/Assets.xcassets/Icons/icon_msg_sys.imageset/Contents.json b/XQMuse/Assets.xcassets/Icons/icon_msg_sys.imageset/Contents.json new file mode 100644 index 0000000..e02dc17 --- /dev/null +++ b/XQMuse/Assets.xcassets/Icons/icon_msg_sys.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "icon_msg_sys@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "icon_msg_sys@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/XQMuse/Assets.xcassets/Icons/icon_msg_sys.imageset/icon_msg_sys@2x.png b/XQMuse/Assets.xcassets/Icons/icon_msg_sys.imageset/icon_msg_sys@2x.png new file mode 100644 index 0000000..52f10c8 --- /dev/null +++ b/XQMuse/Assets.xcassets/Icons/icon_msg_sys.imageset/icon_msg_sys@2x.png Binary files differ diff --git a/XQMuse/Assets.xcassets/Icons/icon_msg_sys.imageset/icon_msg_sys@3x.png b/XQMuse/Assets.xcassets/Icons/icon_msg_sys.imageset/icon_msg_sys@3x.png new file mode 100644 index 0000000..ca979ef --- /dev/null +++ b/XQMuse/Assets.xcassets/Icons/icon_msg_sys.imageset/icon_msg_sys@3x.png Binary files differ diff --git a/XQMuse/Assets.xcassets/Icons/icon_msg_user.imageset/Contents.json b/XQMuse/Assets.xcassets/Icons/icon_msg_user.imageset/Contents.json new file mode 100644 index 0000000..1124d11 --- /dev/null +++ b/XQMuse/Assets.xcassets/Icons/icon_msg_user.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "icon_msg_user@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "icon_msg_user@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/XQMuse/Assets.xcassets/Icons/icon_msg_user.imageset/icon_msg_user@2x.png b/XQMuse/Assets.xcassets/Icons/icon_msg_user.imageset/icon_msg_user@2x.png new file mode 100644 index 0000000..5154fe3 --- /dev/null +++ b/XQMuse/Assets.xcassets/Icons/icon_msg_user.imageset/icon_msg_user@2x.png Binary files differ diff --git a/XQMuse/Assets.xcassets/Icons/icon_msg_user.imageset/icon_msg_user@3x.png b/XQMuse/Assets.xcassets/Icons/icon_msg_user.imageset/icon_msg_user@3x.png new file mode 100644 index 0000000..ea8511b --- /dev/null +++ b/XQMuse/Assets.xcassets/Icons/icon_msg_user.imageset/icon_msg_user@3x.png Binary files differ diff --git a/XQMuse/Assets.xcassets/Icons/icon_question.imageset/Contents.json b/XQMuse/Assets.xcassets/Icons/icon_question.imageset/Contents.json new file mode 100644 index 0000000..d829187 --- /dev/null +++ b/XQMuse/Assets.xcassets/Icons/icon_question.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "icon_question@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "icon_question@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/XQMuse/Assets.xcassets/Icons/icon_question.imageset/icon_question@2x.png b/XQMuse/Assets.xcassets/Icons/icon_question.imageset/icon_question@2x.png new file mode 100644 index 0000000..818f928 --- /dev/null +++ b/XQMuse/Assets.xcassets/Icons/icon_question.imageset/icon_question@2x.png Binary files differ diff --git a/XQMuse/Assets.xcassets/Icons/icon_question.imageset/icon_question@3x.png b/XQMuse/Assets.xcassets/Icons/icon_question.imageset/icon_question@3x.png new file mode 100644 index 0000000..ecf9e81 --- /dev/null +++ b/XQMuse/Assets.xcassets/Icons/icon_question.imageset/icon_question@3x.png Binary files differ diff --git a/XQMuse/Assets.xcassets/Placeholder/bg_empty.imageset/Contents.json b/XQMuse/Assets.xcassets/Placeholder/bg_empty.imageset/Contents.json new file mode 100644 index 0000000..e9faed6 --- /dev/null +++ b/XQMuse/Assets.xcassets/Placeholder/bg_empty.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "bg_empty@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "bg_empty@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/XQMuse/Assets.xcassets/Placeholder/bg_empty.imageset/bg_empty@2x.png b/XQMuse/Assets.xcassets/Placeholder/bg_empty.imageset/bg_empty@2x.png new file mode 100644 index 0000000..aaf8306 --- /dev/null +++ b/XQMuse/Assets.xcassets/Placeholder/bg_empty.imageset/bg_empty@2x.png Binary files differ diff --git a/XQMuse/Assets.xcassets/Placeholder/bg_empty.imageset/bg_empty@3x.png b/XQMuse/Assets.xcassets/Placeholder/bg_empty.imageset/bg_empty@3x.png new file mode 100644 index 0000000..668b649 --- /dev/null +++ b/XQMuse/Assets.xcassets/Placeholder/bg_empty.imageset/bg_empty@3x.png Binary files differ diff --git a/XQMuse/Config/Enums/Enums.swift b/XQMuse/Config/Enums/Enums.swift new file mode 100644 index 0000000..38d6c27 --- /dev/null +++ b/XQMuse/Config/Enums/Enums.swift @@ -0,0 +1,15 @@ +// +// Enums.swift +// XQMuse +// +// Created by 无故事王国 on 2024/8/20. +// + +import Foundation +import HandyJSON + +enum GenderType:Int,HandyJSONEnum{ + case none = 0 + case man = 1 + case woman = 2 +} diff --git a/XQMuse/Root/Me/CCell/EmptyCCell.swift b/XQMuse/Root/Me/CCell/EmptyCCell.swift new file mode 100644 index 0000000..d4c50ca --- /dev/null +++ b/XQMuse/Root/Me/CCell/EmptyCCell.swift @@ -0,0 +1,17 @@ +// +// EmptyCCell.swift +// XQMuse +// +// Created by 无故事王国 on 2024/8/20. +// + +import UIKit + +class EmptyCCell: UICollectionViewCell { + + override func awakeFromNib() { + super.awakeFromNib() + // Initialization code + } + +} diff --git a/XQMuse/Root/Me/CCell/EmptyCCell.xib b/XQMuse/Root/Me/CCell/EmptyCCell.xib new file mode 100644 index 0000000..00fbf9c --- /dev/null +++ b/XQMuse/Root/Me/CCell/EmptyCCell.xib @@ -0,0 +1,67 @@ +<?xml version="1.0" encoding="UTF-8"?> +<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="32700.99.1234" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> + <device id="retina6_12" orientation="portrait" appearance="light"/> + <dependencies> + <deployment identifier="iOS"/> + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22685"/> + <capability name="Safe area layout guides" minToolsVersion="9.0"/> + <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> + </dependencies> + <objects> + <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/> + <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> + <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="_EmptyCCell" id="gTV-IL-0wX" customClass="EmptyCCell" customModule="XQMuse" customModuleProvider="target"> + <rect key="frame" x="0.0" y="0.0" width="354" height="335"/> + <autoresizingMask key="autoresizingMask"/> + <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> + <rect key="frame" x="0.0" y="0.0" width="354" height="335"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <subviews> + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="bg_empty" translatesAutoresizingMaskIntoConstraints="NO" id="KES-hR-eu2"> + <rect key="frame" x="121.66666666666669" y="34.666666666666657" width="111" height="120"/> + </imageView> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="你还没有购买课程" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="eBW-Bc-yAN"> + <rect key="frame" x="128" y="176" width="98.333333333333314" height="12.666666666666657"/> + <constraints> + <constraint firstAttribute="height" constant="12.5" id="cPC-co-C2P"/> + </constraints> + <fontDescription key="fontDescription" type="system" pointSize="12"/> + <nil key="textColor"/> + <nil key="highlightedColor"/> + </label> + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Xpd-vb-LhG"> + <rect key="frame" x="52" y="216" width="250" height="42.666666666666686"/> + <color key="backgroundColor" red="0.54117647058823526" green="0.68235294117647061" blue="0.396078431372549" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <constraints> + <constraint firstAttribute="height" constant="42.5" id="muJ-bd-PyZ"/> + </constraints> + <fontDescription key="fontDescription" type="boldSystem" pointSize="15"/> + <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> + <state key="normal" title="前往选购课程"/> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> + <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> + <real key="value" value="21.25"/> + </userDefinedRuntimeAttribute> + </userDefinedRuntimeAttributes> + </button> + </subviews> + </view> + <viewLayoutGuide key="safeArea" id="ZTg-uK-7eu"/> + <constraints> + <constraint firstItem="KES-hR-eu2" firstAttribute="top" secondItem="gTV-IL-0wX" secondAttribute="top" constant="34.5" id="6j3-85-zYX"/> + <constraint firstItem="Xpd-vb-LhG" firstAttribute="leading" secondItem="gTV-IL-0wX" secondAttribute="leading" constant="52" id="Gfw-di-uHa"/> + <constraint firstItem="eBW-Bc-yAN" firstAttribute="centerX" secondItem="KES-hR-eu2" secondAttribute="centerX" id="Oe6-yd-NRe"/> + <constraint firstItem="eBW-Bc-yAN" firstAttribute="top" secondItem="KES-hR-eu2" secondAttribute="bottom" constant="21.5" id="cjb-ex-F7K"/> + <constraint firstItem="KES-hR-eu2" firstAttribute="centerX" secondItem="ZTg-uK-7eu" secondAttribute="centerX" id="cwP-ja-sBl"/> + <constraint firstItem="Xpd-vb-LhG" firstAttribute="top" secondItem="eBW-Bc-yAN" secondAttribute="bottom" constant="27.5" id="mqw-8O-YZD"/> + <constraint firstAttribute="trailing" secondItem="Xpd-vb-LhG" secondAttribute="trailing" constant="52" id="xok-W2-twP"/> + </constraints> + <size key="customSize" width="354" height="335"/> + <point key="canvasLocation" x="265.64885496183206" y="33.450704225352112"/> + </collectionViewCell> + </objects> + <resources> + <image name="bg_empty" width="111" height="120"/> + </resources> +</document> diff --git a/XQMuse/Root/Me/MeVC.swift b/XQMuse/Root/Me/MeVC.swift index 5120832..cdf0925 100644 --- a/XQMuse/Root/Me/MeVC.swift +++ b/XQMuse/Root/Me/MeVC.swift @@ -7,9 +7,11 @@ import UIKit import QMUIKit +import JQTools class MeVC: BaseVC { + @IBOutlet weak var scrollView: UIScrollView! @IBOutlet weak var btn_collect: QMUIButton! @IBOutlet weak var btn_record: QMUIButton! @IBOutlet weak var btn_history: QMUIButton! @@ -26,6 +28,9 @@ override func setUI() { super.setUI() + view.backgroundColor = UIColor(hexString: "#fafafa") + scrollView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: 20, right: 0) + scrollView.showsVerticalScrollIndicator = false btn_collect.imagePosition = .top btn_record.imagePosition = .top btn_history.imagePosition = .top @@ -36,4 +41,85 @@ btn_setting.imagePosition = .top btn_share.imagePosition = .top } + + @IBAction func vipCenterAction(_ sender: Any) { + let vc = VIPCenterVC() + push(vc: vc) + } + + + @IBAction func userProfileAction(_ sender: UIButton) { + let profileVC = UserProfileVC() + jq_push(vc: profileVC) + } + + @IBAction func studyLevelAction(_ sender: TapBtn) { + + } + + @IBAction func systemMessageAction(_ sender: UIButton) { + let vc = NoticeCenterVC() + push(vc: vc) + } + + @IBAction func settingAction(_ sender: UIButton) { + let vc = SettingVC() + push(vc: vc) + } + + //学习记录 + @IBAction func studyAction(_ sender: UIButton) { + let vc = StudyListVC() + push(vc: vc) + } + + + //我的账户 + @IBAction func myAccountAction(_ sender: QMUIButton) { + + } + + //观看历史 + @IBAction func watchHistoryAction(_ sender: QMUIButton) { + + } + + //我的收藏 + @IBAction func myColletAction(_ sender: QMUIButton) { + + } + + /// 我的已购 + @IBAction func paymentCourseAction(_ sender: QMUIButton) { + + } + + /// 联系客服 + @IBAction func customerAction(_ sender: QMUIButton) { + + } + + ///分享 + @IBAction func shareAction(_ sender: QMUIButton) { + + } +} + +class GradientView:UIView{ + + override init(frame: CGRect) { + super.init(frame: frame) + + jq_gradientColor(colorArr: [UIColor(hexString: "#F3FFF8 100%")!.cgColor,UIColor.white.cgColor]) + } + + required init?(coder: NSCoder) { + super.init(coder: coder) + + } + + override func awakeFromNib() { + super.awakeFromNib() + jq_gradientColor(colorArr: [UIColor(hexString: "#F3FFF8")!.cgColor,UIColor.white.cgColor], cornerRadius: 10, startPoint: CGPoint(x: 0, y: 0), endPoint: CGPoint(x: 0, y: 1), bounds: nil, locations: nil) + } } diff --git a/XQMuse/Root/Me/MeVC.xib b/XQMuse/Root/Me/MeVC.xib index b450347..aaf2a84 100644 --- a/XQMuse/Root/Me/MeVC.xib +++ b/XQMuse/Root/Me/MeVC.xib @@ -18,6 +18,7 @@ <outlet property="btn_record" destination="ohz-jh-MYr" id="I71-ch-fvw"/> <outlet property="btn_setting" destination="gCl-Xh-n2C" id="QuC-zj-2x4"/> <outlet property="btn_share" destination="503-ii-Lw9" id="v1J-Bx-FQ7"/> + <outlet property="scrollView" destination="eKy-w2-ydR" id="uh0-OR-U8m"/> <outlet property="view" destination="iN0-l3-epB" id="xwB-6q-ebc"/> </connections> </placeholder> @@ -33,10 +34,10 @@ <rect key="frame" x="0.0" y="0.0" width="393" height="1283"/> <subviews> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="No9-Oz-bER"> - <rect key="frame" x="0.0" y="0.0" width="393" height="1300"/> + <rect key="frame" x="0.0" y="0.0" width="393" height="1219"/> <subviews> <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="dFl-Si-mEi"> - <rect key="frame" x="14.666666666666664" y="81" width="65" height="65"/> + <rect key="frame" x="14.666666666666664" y="0.0" width="65" height="65"/> <color key="backgroundColor" red="0.33725490200000002" green="0.33725490200000002" blue="0.33725490200000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <constraints> <constraint firstAttribute="height" constant="65" id="MMb-Jb-ZU0"/> @@ -50,25 +51,25 @@ </userDefinedRuntimeAttributes> </imageView> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Xiq-PE-zPH"> - <rect key="frame" x="86" y="98.666666666666671" width="15.333333333333329" height="20.333333333333329"/> + <rect key="frame" x="86" y="17.666666666666671" width="15.333333333333329" height="20.333333333333329"/> <fontDescription key="fontDescription" type="system" pointSize="17"/> <color key="textColor" red="0.082352941176470587" green="0.15294117647058825" blue="0.082352941176470587" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <nil key="highlightedColor"/> </label> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="xL7-Qf-iI2"> - <rect key="frame" x="86" y="129.33333333333334" width="13" height="17"/> + <rect key="frame" x="86" y="48.333333333333336" width="13" height="17.000000000000007"/> <fontDescription key="fontDescription" type="system" pointSize="14"/> <color key="textColor" red="0.46666666666666667" green="0.46666666666666667" blue="0.46666666666666667" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <nil key="highlightedColor"/> </label> - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="DAJ-cd-ErA"> - <rect key="frame" x="12.666666666666657" y="171" width="368" height="114.33333333333331"/> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="DAJ-cd-ErA" customClass="TapBtn" customModule="XQMuse" customModuleProvider="target"> + <rect key="frame" x="12.666666666666657" y="90" width="368" height="114.33333333333331"/> <subviews> <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="bg_vip_u" translatesAutoresizingMaskIntoConstraints="NO" id="lQe-up-4F0"> <rect key="frame" x="0.0" y="0.0" width="368" height="114.33333333333333"/> </imageView> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Cy9-se-bLv"> - <rect key="frame" x="19.333333333333336" y="23.666666666666657" width="19.666666666666664" height="26.333333333333329"/> + <rect key="frame" x="19.333333333333336" y="23.666666666666671" width="19.666666666666664" height="26.333333333333329"/> <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="22"/> <color key="textColor" red="0.039215686274509803" green="0.25882352941176467" blue="0.074509803921568626" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <nil key="highlightedColor"/> @@ -80,7 +81,7 @@ <nil key="highlightedColor"/> </label> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="到期" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="IcP-op-38A"> - <rect key="frame" x="335" y="86.666666666666686" width="14.333333333333314" height="8.6666666666666714"/> + <rect key="frame" x="335" y="86.666666666666657" width="14.333333333333314" height="8.6666666666666714"/> <fontDescription key="fontDescription" type="system" pointSize="7"/> <color key="textColor" red="0.039215686270000001" green="0.25882352939999997" blue="0.074509803920000006" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <nil key="highlightedColor"/> @@ -99,29 +100,43 @@ <constraint firstItem="Cy9-se-bLv" firstAttribute="top" secondItem="DAJ-cd-ErA" secondAttribute="top" constant="23.5" id="kwK-sD-Jdk"/> <constraint firstAttribute="bottom" secondItem="lQe-up-4F0" secondAttribute="bottom" id="rmA-5I-Ynz"/> </constraints> + <connections> + <action selector="vipCenterAction:" destination="-1" eventType="touchUpInside" id="Q7t-YN-DNB"/> + </connections> </view> <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="17.5" translatesAutoresizingMaskIntoConstraints="NO" id="Z1J-zC-UdE"> - <rect key="frame" x="12.666666666666657" y="300.33333333333331" width="368" height="999.66666666666674"/> + <rect key="frame" x="12.666666666666657" y="219.33333333333331" width="368" height="999.66666666666674"/> <subviews> - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="4fN-Be-XLG"> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="4fN-Be-XLG" customClass="GradientView" customModule="XQMuse" customModuleProvider="target"> <rect key="frame" x="0.0" y="0.0" width="368" height="65"/> <subviews> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="爱心榜单" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="tsY-eX-VkA"> - <rect key="frame" x="24.333333333333336" y="21.666666666666686" width="73.666666666666657" height="21.666666666666671"/> + <rect key="frame" x="24.333333333333336" y="21.666666666666657" width="73.666666666666657" height="21.666666666666671"/> <fontDescription key="fontDescription" type="system" pointSize="18"/> <nil key="textColor"/> <nil key="highlightedColor"/> </label> + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_love" translatesAutoresizingMaskIntoConstraints="NO" id="YPi-pA-dEy"> + <rect key="frame" x="319" y="20" width="28" height="25"/> + </imageView> </subviews> <color key="backgroundColor" systemColor="systemBackgroundColor"/> <constraints> <constraint firstItem="tsY-eX-VkA" firstAttribute="centerY" secondItem="4fN-Be-XLG" secondAttribute="centerY" id="5sT-6k-4at"/> <constraint firstItem="tsY-eX-VkA" firstAttribute="leading" secondItem="4fN-Be-XLG" secondAttribute="leading" constant="24.5" id="Rz6-H9-pQF"/> <constraint firstAttribute="height" constant="65" id="Tkb-YO-yg8"/> + <constraint firstItem="YPi-pA-dEy" firstAttribute="centerY" secondItem="4fN-Be-XLG" secondAttribute="centerY" id="VoG-kM-Pk3"/> + <constraint firstAttribute="trailing" secondItem="YPi-pA-dEy" secondAttribute="trailing" constant="21" id="dNR-o9-Vo1"/> </constraints> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> + <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> + <real key="value" value="10"/> + </userDefinedRuntimeAttribute> + </userDefinedRuntimeAttributes> </view> - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="51c-hZ-2BU"> - <rect key="frame" x="0.0" y="82.666666666666714" width="368" height="495.33333333333326"/> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="51c-hZ-2BU" customClass="GradientView" customModule="XQMuse" customModuleProvider="target"> + <rect key="frame" x="0.0" y="82.666666666666657" width="368" height="495.33333333333337"/> <subviews> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="疗愈学习记录" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="gF4-HU-eSo"> <rect key="frame" x="23.999999999999993" y="23" width="110.33333333333331" height="21.666666666666671"/> @@ -133,12 +148,15 @@ <rect key="frame" x="322" y="23" width="22" height="22"/> <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> <state key="normal" image="btn_more_1"/> + <connections> + <action selector="studyAction:" destination="-1" eventType="touchUpInside" id="3iZ-bI-thi"/> + </connections> </button> <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="bg_lianh" translatesAutoresizingMaskIntoConstraints="NO" id="LBn-ed-ngx"> <rect key="frame" x="70" y="92.666666666666686" width="228" height="171"/> </imageView> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="累积练习天数" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="1zm-h2-b9F"> - <rect key="frame" x="135" y="157.33333333333337" width="98" height="19.333333333333343"/> + <rect key="frame" x="135" y="157.33333333333331" width="98" height="19.333333333333343"/> <fontDescription key="fontDescription" type="system" pointSize="16"/> <color key="textColor" red="0.082352941176470587" green="0.15294117647058825" blue="0.082352941176470587" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <nil key="highlightedColor"/> @@ -234,7 +252,7 @@ <constraint firstAttribute="bottom" secondItem="XmC-Kd-dmq" secondAttribute="bottom" constant="20.5" id="yAU-d6-Pi6"/> </constraints> </view> - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="n62-aO-gnS"> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="n62-aO-gnS" customClass="TapBtn" customModule="XQMuse" customModuleProvider="target"> <rect key="frame" x="21.333333333333343" y="413.33333333333337" width="325" height="50.333333333333314"/> <subviews> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="疗愈等级" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="z63-U0-xCY"> @@ -272,9 +290,12 @@ <constraint firstItem="IKY-cB-8Vd" firstAttribute="leading" secondItem="flg-Hv-HHC" secondAttribute="trailing" constant="6" id="ve2-NZ-tDu"/> <constraint firstAttribute="height" constant="50.5" id="xbT-9l-3ue"/> </constraints> + <connections> + <action selector="studyLevelAction:" destination="-1" eventType="touchUpInside" id="ERF-OW-Ccw"/> + </connections> </view> </subviews> - <color key="backgroundColor" systemColor="systemBackgroundColor"/> + <color key="backgroundColor" red="0.95294117647058818" green="1" blue="0.97254901960784312" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <constraints> <constraint firstItem="n62-aO-gnS" firstAttribute="top" secondItem="4ho-wk-mFw" secondAttribute="bottom" constant="15.5" id="3Gh-CT-tIh"/> <constraint firstAttribute="trailing" secondItem="n62-aO-gnS" secondAttribute="trailing" constant="21.5" id="8Pf-YL-bE1"/> @@ -294,9 +315,15 @@ <constraint firstItem="YPb-vk-RCa" firstAttribute="top" secondItem="1zm-h2-b9F" secondAttribute="bottom" constant="15.5" id="qrw-b2-7k5"/> <constraint firstItem="gF4-HU-eSo" firstAttribute="top" secondItem="51c-hZ-2BU" secondAttribute="top" constant="23" id="xIw-fD-K2K"/> </constraints> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> + <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> + <real key="value" value="10"/> + </userDefinedRuntimeAttribute> + </userDefinedRuntimeAttributes> </view> - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="CyP-Ht-bW0"> - <rect key="frame" x="0.0" y="595.66666666666674" width="368" height="193.33333333333337"/> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="CyP-Ht-bW0" customClass="GradientView" customModule="XQMuse" customModuleProvider="target"> + <rect key="frame" x="0.0" y="595.66666666666663" width="368" height="193.33333333333337"/> <subviews> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="常用功能" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="vz2-Ss-p4F"> <rect key="frame" x="25" y="27.666666666666629" width="73.666666666666671" height="21.666666666666671"/> @@ -319,6 +346,9 @@ <real key="value" value="23.5"/> </userDefinedRuntimeAttribute> </userDefinedRuntimeAttributes> + <connections> + <action selector="studyAction:" destination="-1" eventType="touchUpInside" id="t3Z-es-h4a"/> + </connections> </button> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="fgQ-MH-nHz" customClass="QMUIButton"> <rect key="frame" x="92" y="0.0" width="92" height="23"/> @@ -332,6 +362,9 @@ <real key="value" value="23.5"/> </userDefinedRuntimeAttribute> </userDefinedRuntimeAttributes> + <connections> + <action selector="myAccountAction:" destination="-1" eventType="touchUpInside" id="7Tx-G2-44I"/> + </connections> </button> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="css-Hl-o5F" customClass="QMUIButton"> <rect key="frame" x="184" y="0.0" width="92" height="23"/> @@ -345,6 +378,9 @@ <real key="value" value="23.5"/> </userDefinedRuntimeAttribute> </userDefinedRuntimeAttributes> + <connections> + <action selector="watchHistoryAction:" destination="-1" eventType="touchUpInside" id="id3-cn-A63"/> + </connections> </button> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ISF-ez-mrg" customClass="QMUIButton"> <rect key="frame" x="276" y="0.0" width="92" height="23"/> @@ -358,6 +394,9 @@ <real key="value" value="23.5"/> </userDefinedRuntimeAttribute> </userDefinedRuntimeAttributes> + <connections> + <action selector="myColletAction:" destination="-1" eventType="touchUpInside" id="vYn-1g-tgD"/> + </connections> </button> </subviews> </stackView> @@ -371,9 +410,15 @@ <constraint firstItem="vz2-Ss-p4F" firstAttribute="top" secondItem="CyP-Ht-bW0" secondAttribute="top" constant="27.5" id="fqO-A3-g7D"/> <constraint firstAttribute="width" secondItem="CyP-Ht-bW0" secondAttribute="height" multiplier="1:0.5247" id="svH-6H-xLC"/> </constraints> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> + <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> + <real key="value" value="10"/> + </userDefinedRuntimeAttribute> + </userDefinedRuntimeAttributes> </view> - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Tou-KF-MBL"> - <rect key="frame" x="0.0" y="806.66666666666674" width="368" height="193"/> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Tou-KF-MBL" customClass="GradientView" customModule="XQMuse" customModuleProvider="target"> + <rect key="frame" x="0.0" y="806.66666666666663" width="368" height="193"/> <subviews> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="其他功能" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3A8-V9-qVy"> <rect key="frame" x="25" y="27.333333333333258" width="73.666666666666671" height="21.666666666666671"/> @@ -396,6 +441,9 @@ <real key="value" value="23.5"/> </userDefinedRuntimeAttribute> </userDefinedRuntimeAttributes> + <connections> + <action selector="paymentCourseAction:" destination="-1" eventType="touchUpInside" id="Tnq-iq-nI0"/> + </connections> </button> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="9fM-W9-vHq" customClass="QMUIButton"> <rect key="frame" x="92" y="0.0" width="92" height="23"/> @@ -409,6 +457,9 @@ <real key="value" value="23.5"/> </userDefinedRuntimeAttribute> </userDefinedRuntimeAttributes> + <connections> + <action selector="customerAction:" destination="-1" eventType="touchUpInside" id="Qh6-1S-wWO"/> + </connections> </button> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="gCl-Xh-n2C" customClass="QMUIButton"> <rect key="frame" x="184" y="0.0" width="92" height="23"/> @@ -422,6 +473,9 @@ <real key="value" value="23.5"/> </userDefinedRuntimeAttribute> </userDefinedRuntimeAttributes> + <connections> + <action selector="settingAction:" destination="-1" eventType="touchUpInside" id="I2H-D6-zdo"/> + </connections> </button> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="503-ii-Lw9" customClass="QMUIButton"> <rect key="frame" x="276" y="0.0" width="92" height="23"/> @@ -435,6 +489,9 @@ <real key="value" value="23.5"/> </userDefinedRuntimeAttribute> </userDefinedRuntimeAttributes> + <connections> + <action selector="shareAction:" destination="-1" eventType="touchUpInside" id="GjN-ls-QGE"/> + </connections> </button> </subviews> </stackView> @@ -448,24 +505,69 @@ <constraint firstItem="3A8-V9-qVy" firstAttribute="top" secondItem="Tou-KF-MBL" secondAttribute="top" constant="27.5" id="LVa-qI-Vd6"/> <constraint firstItem="Omi-TP-JuV" firstAttribute="leading" secondItem="Tou-KF-MBL" secondAttribute="leading" id="sNi-T5-ouL"/> </constraints> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> + <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> + <real key="value" value="10"/> + </userDefinedRuntimeAttribute> + </userDefinedRuntimeAttributes> </view> </subviews> </stackView> + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="uES-HP-Bfe"> + <rect key="frame" x="351" y="17.333333333333329" width="20.666666666666686" height="20.666666666666671"/> + <color key="backgroundColor" red="0.4039215686" green="0.4039215686" blue="0.4039215686" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <constraints> + <constraint firstAttribute="width" constant="20.5" id="5hb-QM-5ZE"/> + <constraint firstAttribute="height" constant="20.5" id="ejS-LE-TGS"/> + </constraints> + <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> + <connections> + <action selector="settingAction:" destination="-1" eventType="touchUpInside" id="UIe-XJ-qJa"/> + </connections> + </button> + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="cNy-lc-dn6"> + <rect key="frame" x="306" y="17.333333333333329" width="20.666666666666686" height="20.666666666666671"/> + <color key="backgroundColor" red="0.4039215686" green="0.4039215686" blue="0.4039215686" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <constraints> + <constraint firstAttribute="width" constant="20.5" id="X9n-5K-WLK"/> + <constraint firstAttribute="height" constant="20.5" id="b2e-ju-jJJ"/> + </constraints> + <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> + <connections> + <action selector="systemMessageAction:" destination="-1" eventType="touchUpInside" id="FcH-jm-Qng"/> + </connections> + </button> + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Reh-kR-vEK"> + <rect key="frame" x="14.666666666666657" y="0.0" width="261.33333333333337" height="65"/> + <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> + <connections> + <action selector="userProfileAction:" destination="-1" eventType="touchUpInside" id="ypd-hN-1lm"/> + </connections> + </button> </subviews> <constraints> - <constraint firstItem="dFl-Si-mEi" firstAttribute="top" secondItem="No9-Oz-bER" secondAttribute="top" constant="81" id="0U1-dX-1pq"/> + <constraint firstItem="dFl-Si-mEi" firstAttribute="top" secondItem="No9-Oz-bER" secondAttribute="top" id="0U1-dX-1pq"/> <constraint firstItem="Z1J-zC-UdE" firstAttribute="top" secondItem="DAJ-cd-ErA" secondAttribute="bottom" constant="15" id="4h2-Kk-q2j"/> <constraint firstItem="DAJ-cd-ErA" firstAttribute="top" secondItem="dFl-Si-mEi" secondAttribute="bottom" constant="25" id="8S1-pb-lVs"/> <constraint firstItem="xL7-Qf-iI2" firstAttribute="top" secondItem="Xiq-PE-zPH" secondAttribute="bottom" constant="10.5" id="AOB-Ma-vTL"/> + <constraint firstItem="Reh-kR-vEK" firstAttribute="leading" secondItem="dFl-Si-mEi" secondAttribute="leading" id="BAW-3i-Our"/> <constraint firstItem="xL7-Qf-iI2" firstAttribute="leading" secondItem="Xiq-PE-zPH" secondAttribute="leading" id="DGP-cm-h5b"/> + <constraint firstItem="uES-HP-Bfe" firstAttribute="centerY" secondItem="cNy-lc-dn6" secondAttribute="centerY" id="Gqg-8P-MWj"/> + <constraint firstItem="cNy-lc-dn6" firstAttribute="leading" secondItem="Reh-kR-vEK" secondAttribute="trailing" constant="30" id="MB6-7G-HSn"/> + <constraint firstItem="Reh-kR-vEK" firstAttribute="bottom" secondItem="dFl-Si-mEi" secondAttribute="bottom" id="MZs-fS-7WM"/> <constraint firstAttribute="bottom" secondItem="Z1J-zC-UdE" secondAttribute="bottom" priority="750" id="OSM-T9-e7F"/> <constraint firstAttribute="trailing" secondItem="DAJ-cd-ErA" secondAttribute="trailing" constant="12.5" id="PSH-O3-kvO"/> <constraint firstItem="DAJ-cd-ErA" firstAttribute="leading" secondItem="No9-Oz-bER" secondAttribute="leading" constant="12.5" id="RaV-zW-P8C"/> <constraint firstItem="Xiq-PE-zPH" firstAttribute="top" secondItem="dFl-Si-mEi" secondAttribute="top" constant="17.5" id="Yrw-m1-4ZM"/> <constraint firstItem="Z1J-zC-UdE" firstAttribute="leading" secondItem="No9-Oz-bER" secondAttribute="leading" constant="12.5" id="eh8-Z7-ETj"/> + <constraint firstAttribute="trailing" secondItem="uES-HP-Bfe" secondAttribute="trailing" constant="21.5" id="gPj-cP-mH9"/> <constraint firstItem="dFl-Si-mEi" firstAttribute="leading" secondItem="No9-Oz-bER" secondAttribute="leading" constant="14.5" id="hZd-x5-wiC"/> <constraint firstAttribute="trailing" secondItem="Z1J-zC-UdE" secondAttribute="trailing" constant="12.5" id="j06-P7-YsO"/> <constraint firstItem="Xiq-PE-zPH" firstAttribute="leading" secondItem="dFl-Si-mEi" secondAttribute="trailing" constant="6.5" id="k6Q-5X-UXd"/> + <constraint firstItem="uES-HP-Bfe" firstAttribute="centerY" secondItem="Xiq-PE-zPH" secondAttribute="centerY" id="l8f-di-yWr"/> + <constraint firstItem="uES-HP-Bfe" firstAttribute="leading" secondItem="cNy-lc-dn6" secondAttribute="trailing" constant="24.5" id="lxo-L4-nFQ"/> + <constraint firstItem="Reh-kR-vEK" firstAttribute="top" secondItem="dFl-Si-mEi" secondAttribute="top" id="zRk-Xn-Wr9"/> </constraints> </view> </subviews> @@ -502,6 +604,7 @@ <image name="icon_buy" width="22" height="23"/> <image name="icon_collect" width="24.666666030883789" height="21"/> <image name="icon_customer" width="23" height="23"/> + <image name="icon_love" width="28" height="25"/> <image name="icon_setting" width="24" height="22"/> <image name="icon_share" width="21.666666030883789" height="20.666666030883789"/> <image name="icon_time_2" width="23" height="23"/> diff --git a/XQMuse/Root/Me/TCell/MessageTCell.swift b/XQMuse/Root/Me/TCell/MessageTCell.swift new file mode 100644 index 0000000..30c21f9 --- /dev/null +++ b/XQMuse/Root/Me/TCell/MessageTCell.swift @@ -0,0 +1,16 @@ +// +// MessageTCell.swift +// XQMuse +// +// Created by 无故事王国 on 2024/8/20. +// + +import UIKit + +class MessageTCell: UITableViewCell { + + override func awakeFromNib() { + super.awakeFromNib() + selectionStyle = .none + } +} diff --git a/XQMuse/Root/Me/TCell/MessageTCell.xib b/XQMuse/Root/Me/TCell/MessageTCell.xib new file mode 100644 index 0000000..1c6688d --- /dev/null +++ b/XQMuse/Root/Me/TCell/MessageTCell.xib @@ -0,0 +1,101 @@ +<?xml version="1.0" encoding="UTF-8"?> +<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="32700.99.1234" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> + <device id="retina6_12" orientation="portrait" appearance="light"/> + <dependencies> + <deployment identifier="iOS"/> + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22685"/> + <capability name="System colors in document resources" minToolsVersion="11.0"/> + <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> + </dependencies> + <objects> + <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/> + <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> + <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" rowHeight="101" id="KGk-i7-Jjw" customClass="MessageTCell" customModule="XQMuse" customModuleProvider="target"> + <rect key="frame" x="0.0" y="0.0" width="426" height="101"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="KGk-i7-Jjw" id="H2p-sc-9uM"> + <rect key="frame" x="0.0" y="0.0" width="426" height="101"/> + <autoresizingMask key="autoresizingMask"/> + <subviews> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Ong-0k-h5l"> + <rect key="frame" x="7" y="5.6666666666666643" width="415" height="90"/> + <subviews> + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_msg_sys" translatesAutoresizingMaskIntoConstraints="NO" id="RM7-YK-5IB"> + <rect key="frame" x="13.666666666666671" y="21.333333333333329" width="47" height="47"/> + <constraints> + <constraint firstAttribute="height" constant="47" id="0pd-Fb-YrI"/> + <constraint firstAttribute="width" constant="47" id="aWb-4v-Kei"/> + </constraints> + </imageView> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="cob-eJ-7In"> + <rect key="frame" x="74.666666666666671" y="27.333333333333329" width="38.333333333333329" height="18"/> + <fontDescription key="fontDescription" type="system" weight="medium" pointSize="15"/> + <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <nil key="highlightedColor"/> + </label> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="TdQ-J6-aEO"> + <rect key="frame" x="120" y="32.666666666666671" width="7.3333333333333286" height="7.3333333333333357"/> + <color key="backgroundColor" red="1" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <constraints> + <constraint firstAttribute="width" constant="7.5" id="WzQ-9I-rrI"/> + <constraint firstAttribute="height" constant="7.5" id="wqG-oC-Nog"/> + </constraints> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> + <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> + <real key="value" value="3.75"/> + </userDefinedRuntimeAttribute> + </userDefinedRuntimeAttributes> + </view> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Mbc-nK-0T7"> + <rect key="frame" x="74.666666666666686" y="56" width="323" height="14.333333333333329"/> + <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/> + <color key="textColor" red="0.41960784313725491" green="0.41960784313725491" blue="0.41960784313725491" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <nil key="highlightedColor"/> + </label> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="00:00" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Tsl-3O-mZM"> + <rect key="frame" x="371" y="29.333333333333332" width="35" height="14.333333333333332"/> + <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/> + <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <nil key="highlightedColor"/> + </label> + </subviews> + <color key="backgroundColor" systemColor="systemBackgroundColor"/> + <constraints> + <constraint firstItem="cob-eJ-7In" firstAttribute="leading" secondItem="RM7-YK-5IB" secondAttribute="trailing" constant="14" id="5pF-H0-Gn8"/> + <constraint firstItem="TdQ-J6-aEO" firstAttribute="centerY" secondItem="cob-eJ-7In" secondAttribute="centerY" id="P6m-ju-aI3"/> + <constraint firstAttribute="trailing" secondItem="Mbc-nK-0T7" secondAttribute="trailing" constant="17.5" id="VSV-se-Nxb"/> + <constraint firstItem="Mbc-nK-0T7" firstAttribute="leading" secondItem="RM7-YK-5IB" secondAttribute="trailing" constant="14" id="Xpr-Kr-fiw"/> + <constraint firstItem="RM7-YK-5IB" firstAttribute="centerY" secondItem="Ong-0k-h5l" secondAttribute="centerY" id="ZGl-Cy-y5J"/> + <constraint firstItem="TdQ-J6-aEO" firstAttribute="leading" secondItem="cob-eJ-7In" secondAttribute="trailing" constant="7" id="lWe-Se-uJZ"/> + <constraint firstItem="Mbc-nK-0T7" firstAttribute="top" secondItem="cob-eJ-7In" secondAttribute="bottom" constant="10.5" id="ml9-eZ-nav"/> + <constraint firstItem="cob-eJ-7In" firstAttribute="top" secondItem="RM7-YK-5IB" secondAttribute="top" constant="6" id="pfT-je-uPZ"/> + <constraint firstAttribute="trailing" secondItem="Tsl-3O-mZM" secondAttribute="trailing" constant="9" id="qG1-3b-Tpb"/> + <constraint firstItem="Tsl-3O-mZM" firstAttribute="centerY" secondItem="cob-eJ-7In" secondAttribute="centerY" id="w11-yp-pjO"/> + <constraint firstItem="RM7-YK-5IB" firstAttribute="leading" secondItem="Ong-0k-h5l" secondAttribute="leading" constant="13.5" id="xSq-r1-UEU"/> + </constraints> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> + <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> + <real key="value" value="15"/> + </userDefinedRuntimeAttribute> + </userDefinedRuntimeAttributes> + </view> + </subviews> + <constraints> + <constraint firstAttribute="bottom" secondItem="Ong-0k-h5l" secondAttribute="bottom" constant="5.5" id="7Vv-dg-BA7"/> + <constraint firstItem="Ong-0k-h5l" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="7" id="AeJ-6b-5Gl"/> + <constraint firstAttribute="trailing" secondItem="Ong-0k-h5l" secondAttribute="trailing" constant="4" id="O1P-bm-3mg"/> + <constraint firstItem="Ong-0k-h5l" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="5.5" id="T6a-mC-31G"/> + </constraints> + </tableViewCellContentView> + <point key="canvasLocation" x="219.84732824427479" y="40.492957746478872"/> + </tableViewCell> + </objects> + <resources> + <image name="icon_msg_sys" width="47" height="47.666667938232422"/> + <systemColor name="systemBackgroundColor"> + <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> + </systemColor> + </resources> +</document> diff --git a/XQMuse/Root/Me/VC/NoticeCenterSysDetailVC.swift b/XQMuse/Root/Me/VC/NoticeCenterSysDetailVC.swift new file mode 100644 index 0000000..aed669b --- /dev/null +++ b/XQMuse/Root/Me/VC/NoticeCenterSysDetailVC.swift @@ -0,0 +1,22 @@ +// +// NoticeCenterSysDetailVC.swift +// XQMuse +// +// Created by 无故事王国 on 2024/8/20. +// + +import UIKit + +class NoticeCenterSysDetailVC: BaseVC { + + override func viewDidLoad() { + super.viewDidLoad() + title = "系统消息" + + } + + override func setUI() { + super.setUI() + view.backgroundColor = UIColor(hexString: "#f6f6f6") + } +} diff --git a/XQMuse/Root/Me/VC/NoticeCenterSysDetailVC.xib b/XQMuse/Root/Me/VC/NoticeCenterSysDetailVC.xib new file mode 100644 index 0000000..789a890 --- /dev/null +++ b/XQMuse/Root/Me/VC/NoticeCenterSysDetailVC.xib @@ -0,0 +1,105 @@ +<?xml version="1.0" encoding="UTF-8"?> +<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="32700.99.1234" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> + <device id="retina6_12" orientation="portrait" appearance="light"/> + <dependencies> + <deployment identifier="iOS"/> + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22685"/> + <capability name="Safe area layout guides" minToolsVersion="9.0"/> + <capability name="System colors in document resources" minToolsVersion="11.0"/> + <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> + </dependencies> + <objects> + <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="NoticeCenterSysDetailVC" customModule="XQMuse" customModuleProvider="target"> + <connections> + <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/> + </connections> + </placeholder> + <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> + <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT"> + <rect key="frame" x="0.0" y="0.0" width="393" height="852"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <subviews> + <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="C3o-oy-YhC"> + <rect key="frame" x="0.0" y="59" width="393" height="759"/> + <subviews> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="UTT-b4-2rB"> + <rect key="frame" x="14" y="12" width="365" height="94"/> + <subviews> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="gQK-sP-1w2"> + <rect key="frame" x="13" y="6.9999999999999982" width="339" height="19.333333333333329"/> + <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/> + <color key="textColor" red="0.094117647058823528" green="0.094117647058823528" blue="0.094117647058823528" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/> + <nil key="highlightedColor"/> + </label> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="yyyy-MM-dd HH:mm:ss" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="en7-Qa-xJB"> + <rect key="frame" x="14" y="34.333333333333329" width="337" height="17"/> + <constraints> + <constraint firstAttribute="height" constant="17" id="HoW-hi-Q62"/> + </constraints> + <fontDescription key="fontDescription" type="system" pointSize="12"/> + <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.53000000000000003" colorSpace="custom" customColorSpace="sRGB"/> + <nil key="highlightedColor"/> + </label> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="fdJ-8n-C9d"> + <rect key="frame" x="14" y="59.333333333333343" width="337" height="0.3333333333333357"/> + <color key="backgroundColor" red="0.83137254901960778" green="0.83137254901960778" blue="0.83137254901960778" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <constraints> + <constraint firstAttribute="height" constant="0.40000000000000002" id="XPj-NP-I9K"/> + </constraints> + </view> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="JPR-7W-qZh"> + <rect key="frame" x="14" y="69.666666666666657" width="337" height="14.333333333333329"/> + <fontDescription key="fontDescription" type="system" pointSize="12"/> + <color key="textColor" red="0.094117647058823528" green="0.094117647058823528" blue="0.094117647058823528" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="sRGB"/> + <nil key="highlightedColor"/> + </label> + </subviews> + <color key="backgroundColor" systemColor="systemBackgroundColor"/> + <constraints> + <constraint firstItem="en7-Qa-xJB" firstAttribute="leading" secondItem="UTT-b4-2rB" secondAttribute="leading" constant="14" id="6rG-pT-b9O"/> + <constraint firstItem="fdJ-8n-C9d" firstAttribute="leading" secondItem="UTT-b4-2rB" secondAttribute="leading" constant="14" id="8Ax-nw-Bkb"/> + <constraint firstAttribute="trailing" secondItem="fdJ-8n-C9d" secondAttribute="trailing" constant="14" id="8GU-Cr-eYg"/> + <constraint firstItem="en7-Qa-xJB" firstAttribute="top" secondItem="gQK-sP-1w2" secondAttribute="bottom" constant="8" id="IYe-8V-tTB"/> + <constraint firstItem="gQK-sP-1w2" firstAttribute="top" secondItem="UTT-b4-2rB" secondAttribute="top" constant="7" id="Ihb-yx-i2u"/> + <constraint firstAttribute="bottom" secondItem="JPR-7W-qZh" secondAttribute="bottom" constant="10" id="Odi-ff-dI0"/> + <constraint firstItem="JPR-7W-qZh" firstAttribute="top" secondItem="fdJ-8n-C9d" secondAttribute="bottom" constant="10" id="db4-TF-6DW"/> + <constraint firstItem="JPR-7W-qZh" firstAttribute="leading" secondItem="UTT-b4-2rB" secondAttribute="leading" constant="14" id="gSj-hP-1hj"/> + <constraint firstItem="fdJ-8n-C9d" firstAttribute="top" secondItem="en7-Qa-xJB" secondAttribute="bottom" constant="8" id="ljb-nq-7hX"/> + <constraint firstItem="gQK-sP-1w2" firstAttribute="leading" secondItem="UTT-b4-2rB" secondAttribute="leading" constant="13" id="mbM-0X-Hy0"/> + <constraint firstAttribute="trailing" secondItem="gQK-sP-1w2" secondAttribute="trailing" constant="13" id="pA2-oc-VbG"/> + <constraint firstAttribute="trailing" secondItem="en7-Qa-xJB" secondAttribute="trailing" constant="14" id="sjr-rO-3ay"/> + <constraint firstAttribute="trailing" secondItem="JPR-7W-qZh" secondAttribute="trailing" constant="14" id="yOm-XD-ENv"/> + </constraints> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> + <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> + <real key="value" value="10"/> + </userDefinedRuntimeAttribute> + </userDefinedRuntimeAttributes> + </view> + </subviews> + <constraints> + <constraint firstAttribute="bottom" secondItem="UTT-b4-2rB" secondAttribute="bottom" constant="12" id="0Zz-zV-Df0"/> + <constraint firstAttribute="trailing" secondItem="UTT-b4-2rB" secondAttribute="trailing" constant="14" id="5uA-zJ-vup"/> + <constraint firstItem="UTT-b4-2rB" firstAttribute="centerX" secondItem="C3o-oy-YhC" secondAttribute="centerX" id="EY4-aF-eJ0"/> + <constraint firstItem="UTT-b4-2rB" firstAttribute="top" secondItem="C3o-oy-YhC" secondAttribute="top" constant="12" id="u3Y-C3-9Cf"/> + <constraint firstItem="UTT-b4-2rB" firstAttribute="leading" secondItem="C3o-oy-YhC" secondAttribute="leading" constant="14" id="wQP-lI-BzX"/> + </constraints> + </scrollView> + </subviews> + <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/> + <constraints> + <constraint firstItem="C3o-oy-YhC" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="GKv-El-PmQ"/> + <constraint firstItem="C3o-oy-YhC" firstAttribute="top" secondItem="fnl-2z-Ty3" secondAttribute="top" id="eqU-Rh-edb"/> + <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="C3o-oy-YhC" secondAttribute="trailing" id="q7f-Kw-CDV"/> + <constraint firstItem="fnl-2z-Ty3" firstAttribute="bottom" secondItem="C3o-oy-YhC" secondAttribute="bottom" id="yA1-cu-Rbv"/> + </constraints> + <point key="canvasLocation" x="140" y="20"/> + </view> + </objects> + <resources> + <systemColor name="systemBackgroundColor"> + <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> + </systemColor> + </resources> +</document> diff --git a/XQMuse/Root/Me/VC/NoticeCenterUserRepeaceDetailVC.swift b/XQMuse/Root/Me/VC/NoticeCenterUserRepeaceDetailVC.swift new file mode 100644 index 0000000..8db2890 --- /dev/null +++ b/XQMuse/Root/Me/VC/NoticeCenterUserRepeaceDetailVC.swift @@ -0,0 +1,17 @@ +// +// NoticeCenterUserRepeaceDetailVC.swift +// XQMuse +// +// Created by 无故事王国 on 2024/8/20. +// + +import UIKit + +class NoticeCenterUserRepeaceDetailVC: BaseVC { + + override func viewDidLoad() { + super.viewDidLoad() + title = "回复消息" + + } +} diff --git a/XQMuse/Root/Me/VC/NoticeCenterUserRepeaceDetailVC.xib b/XQMuse/Root/Me/VC/NoticeCenterUserRepeaceDetailVC.xib new file mode 100644 index 0000000..b8f2610 --- /dev/null +++ b/XQMuse/Root/Me/VC/NoticeCenterUserRepeaceDetailVC.xib @@ -0,0 +1,205 @@ +<?xml version="1.0" encoding="UTF-8"?> +<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="32700.99.1234" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> + <device id="retina6_12" orientation="portrait" appearance="light"/> + <dependencies> + <deployment identifier="iOS"/> + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22685"/> + <capability name="Safe area layout guides" minToolsVersion="9.0"/> + <capability name="System colors in document resources" minToolsVersion="11.0"/> + <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> + </dependencies> + <objects> + <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="NoticeCenterUserRepeaceDetailVC" customModule="XQMuse" customModuleProvider="target"> + <connections> + <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/> + </connections> + </placeholder> + <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> + <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT"> + <rect key="frame" x="0.0" y="0.0" width="393" height="852"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <subviews> + <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="dkd-zk-G6X"> + <rect key="frame" x="0.0" y="59" width="393" height="759"/> + <subviews> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Q2t-Ag-qNp"> + <rect key="frame" x="0.0" y="0.0" width="393" height="600"/> + <subviews> + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="z1T-aN-oSN"> + <rect key="frame" x="155.66666666666666" y="24" width="82" height="82"/> + <constraints> + <constraint firstAttribute="height" constant="82" id="Uct-XY-jrK"/> + <constraint firstAttribute="width" constant="82" id="bGB-cC-D4n"/> + </constraints> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> + <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> + <real key="value" value="41"/> + </userDefinedRuntimeAttribute> + </userDefinedRuntimeAttributes> + </imageView> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ckR-f8-uGd"> + <rect key="frame" x="0.0" y="128" width="393" height="25"/> + <constraints> + <constraint firstAttribute="height" constant="25" id="3FJ-6F-8cq"/> + </constraints> + <fontDescription key="fontDescription" type="system" pointSize="18"/> + <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/> + <nil key="highlightedColor"/> + </label> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="rDr-su-720"> + <rect key="frame" x="27" y="165" width="339" height="17"/> + <fontDescription key="fontDescription" type="system" pointSize="14"/> + <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="sRGB"/> + <nil key="highlightedColor"/> + </label> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Z79-Yp-l1I"> + <rect key="frame" x="13" y="205" width="367" height="0.66666666666665719"/> + <color key="backgroundColor" red="0.59215686274509804" green="0.59215686274509804" blue="0.59215686274509804" alpha="0.14999999999999999" colorSpace="custom" customColorSpace="sRGB"/> + <constraints> + <constraint firstAttribute="height" constant="0.5" id="BAC-LF-Fke"/> + </constraints> + </view> + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="BAp-Ga-8ex"> + <rect key="frame" x="14" y="234.66666666666669" width="38" height="38"/> + <constraints> + <constraint firstAttribute="width" constant="38" id="6BG-2j-dhP"/> + <constraint firstAttribute="height" constant="38" id="LKV-wa-E5Z"/> + </constraints> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> + <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> + <real key="value" value="19"/> + </userDefinedRuntimeAttribute> + </userDefinedRuntimeAttributes> + </imageView> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="PoX-Mz-vPh"> + <rect key="frame" x="61.000000000000007" y="234.66666666666669" width="12.333333333333336" height="18"/> + <constraints> + <constraint firstAttribute="height" constant="18" id="6HS-wE-2Pb"/> + </constraints> + <fontDescription key="fontDescription" type="system" pointSize="13"/> + <nil key="textColor"/> + <nil key="highlightedColor"/> + </label> + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="D0U-is-fLy"> + <rect key="frame" x="361" y="232.66666666666669" width="18" height="22"/> + <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> + <state key="normal" image="btn_good_1"/> + </button> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="hpx-3J-7nI"> + <rect key="frame" x="61" y="257.66666666666669" width="322" height="17"/> + <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> + <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <nil key="highlightedColor"/> + </label> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="yyyy-MM-dd HH:mm:ss" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="I4t-Mk-xsI"> + <rect key="frame" x="61.000000000000007" y="280.66666666666669" width="124.66666666666669" height="14.333333333333314"/> + <fontDescription key="fontDescription" type="system" pointSize="11"/> + <color key="textColor" red="0.40000000000000002" green="0.40000000000000002" blue="0.40000000000000002" alpha="0.55000000000000004" colorSpace="custom" customColorSpace="sRGB"/> + <nil key="highlightedColor"/> + </label> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="96T-Ma-Y0w"> + <rect key="frame" x="61" y="306" width="292" height="59.666666666666686"/> + <subviews> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="平台回复:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="AY1-HR-u3g"> + <rect key="frame" x="11" y="10" width="270" height="13.333333333333336"/> + <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="11"/> + <color key="textColor" red="0.40000000000000002" green="0.40000000000000002" blue="0.40000000000000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <nil key="highlightedColor"/> + </label> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3rx-FM-iyi"> + <rect key="frame" x="11" y="28.333333333333311" width="270" height="13.333333333333332"/> + <fontDescription key="fontDescription" type="system" pointSize="11"/> + <color key="textColor" red="0.40000000000000002" green="0.40000000000000002" blue="0.40000000000000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <nil key="highlightedColor"/> + </label> + </subviews> + <color key="backgroundColor" red="0.98039215686274506" green="0.98039215686274506" blue="0.98039215686274506" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <constraints> + <constraint firstItem="3rx-FM-iyi" firstAttribute="leading" secondItem="AY1-HR-u3g" secondAttribute="leading" id="50j-Rm-4la"/> + <constraint firstAttribute="bottom" secondItem="3rx-FM-iyi" secondAttribute="bottom" constant="18" id="CTB-Bq-oSP"/> + <constraint firstItem="3rx-FM-iyi" firstAttribute="trailing" secondItem="AY1-HR-u3g" secondAttribute="trailing" id="Ia7-9s-snm"/> + <constraint firstItem="AY1-HR-u3g" firstAttribute="leading" secondItem="96T-Ma-Y0w" secondAttribute="leading" constant="11" id="KmF-bL-oCO"/> + <constraint firstItem="AY1-HR-u3g" firstAttribute="top" secondItem="96T-Ma-Y0w" secondAttribute="top" constant="10" id="j2Z-7D-lRd"/> + <constraint firstItem="3rx-FM-iyi" firstAttribute="top" secondItem="AY1-HR-u3g" secondAttribute="bottom" constant="5" id="ku7-2Y-n1E"/> + <constraint firstAttribute="trailing" secondItem="AY1-HR-u3g" secondAttribute="trailing" constant="11" id="qvw-P3-Bb4"/> + </constraints> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> + <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> + <real key="value" value="11"/> + </userDefinedRuntimeAttribute> + </userDefinedRuntimeAttributes> + </view> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Lsm-BX-nLi"> + <rect key="frame" x="14" y="372.66666666666669" width="365" height="0.33333333333331439"/> + <color key="backgroundColor" red="0.090196078431372548" green="0.34901960784313724" blue="0.74117647058823533" alpha="0.11" colorSpace="custom" customColorSpace="sRGB"/> + <constraints> + <constraint firstAttribute="height" constant="0.59999999999999998" id="WnC-CN-f8S"/> + </constraints> + </view> + </subviews> + <color key="backgroundColor" systemColor="systemBackgroundColor"/> + <constraints> + <constraint firstItem="D0U-is-fLy" firstAttribute="centerY" secondItem="PoX-Mz-vPh" secondAttribute="centerY" id="0fO-yZ-xrH"/> + <constraint firstItem="rDr-su-720" firstAttribute="leading" secondItem="Q2t-Ag-qNp" secondAttribute="leading" constant="27" id="1Jg-8R-Bzk"/> + <constraint firstAttribute="trailing" secondItem="hpx-3J-7nI" secondAttribute="trailing" constant="10" id="2Um-do-D9T"/> + <constraint firstItem="Lsm-BX-nLi" firstAttribute="top" secondItem="96T-Ma-Y0w" secondAttribute="bottom" constant="7" id="40A-Aw-Grj"/> + <constraint firstItem="Z79-Yp-l1I" firstAttribute="top" secondItem="rDr-su-720" secondAttribute="bottom" constant="23" id="79u-Hg-Os0"/> + <constraint firstAttribute="trailing" secondItem="D0U-is-fLy" secondAttribute="trailing" constant="14" id="7G4-Zy-UzB"/> + <constraint firstAttribute="height" constant="600" id="86I-Xh-n7p"/> + <constraint firstItem="ckR-f8-uGd" firstAttribute="leading" secondItem="Q2t-Ag-qNp" secondAttribute="leading" id="C94-SL-fn5"/> + <constraint firstAttribute="trailing" secondItem="rDr-su-720" secondAttribute="trailing" constant="27" id="CCx-jX-l8a"/> + <constraint firstAttribute="trailing" secondItem="96T-Ma-Y0w" secondAttribute="trailing" constant="40" id="GUV-VU-gim"/> + <constraint firstItem="I4t-Mk-xsI" firstAttribute="leading" secondItem="hpx-3J-7nI" secondAttribute="leading" id="Gai-Qc-Xua"/> + <constraint firstItem="ckR-f8-uGd" firstAttribute="top" secondItem="z1T-aN-oSN" secondAttribute="bottom" constant="22" id="IJb-gV-zgi"/> + <constraint firstItem="hpx-3J-7nI" firstAttribute="top" secondItem="PoX-Mz-vPh" secondAttribute="bottom" constant="5" id="K7K-1R-rEh"/> + <constraint firstItem="z1T-aN-oSN" firstAttribute="centerX" secondItem="Q2t-Ag-qNp" secondAttribute="centerX" id="LEF-ht-iaq"/> + <constraint firstItem="BAp-Ga-8ex" firstAttribute="leading" secondItem="Q2t-Ag-qNp" secondAttribute="leading" constant="14" id="Rbw-Ox-Q0a"/> + <constraint firstItem="rDr-su-720" firstAttribute="centerX" secondItem="z1T-aN-oSN" secondAttribute="centerX" id="SWn-C5-0dk"/> + <constraint firstItem="I4t-Mk-xsI" firstAttribute="top" secondItem="hpx-3J-7nI" secondAttribute="bottom" constant="6" id="Sx9-CB-tcP"/> + <constraint firstItem="Z79-Yp-l1I" firstAttribute="leading" secondItem="Q2t-Ag-qNp" secondAttribute="leading" constant="13" id="WgZ-n9-50F"/> + <constraint firstItem="PoX-Mz-vPh" firstAttribute="top" secondItem="BAp-Ga-8ex" secondAttribute="top" id="Yy1-3W-h3i"/> + <constraint firstItem="96T-Ma-Y0w" firstAttribute="leading" secondItem="PoX-Mz-vPh" secondAttribute="leading" id="aWl-RZ-x4P"/> + <constraint firstAttribute="trailing" secondItem="Lsm-BX-nLi" secondAttribute="trailing" constant="14" id="bQ5-S4-C65"/> + <constraint firstItem="z1T-aN-oSN" firstAttribute="top" secondItem="Q2t-Ag-qNp" secondAttribute="top" constant="24" id="d4k-U4-Xfn"/> + <constraint firstItem="96T-Ma-Y0w" firstAttribute="top" secondItem="I4t-Mk-xsI" secondAttribute="bottom" constant="11" id="eaI-cN-Z5s"/> + <constraint firstItem="Lsm-BX-nLi" firstAttribute="leading" secondItem="Q2t-Ag-qNp" secondAttribute="leading" constant="14" id="eyq-pY-d15"/> + <constraint firstAttribute="trailing" secondItem="Z79-Yp-l1I" secondAttribute="trailing" constant="13" id="hwS-nD-WbN"/> + <constraint firstItem="ckR-f8-uGd" firstAttribute="centerX" secondItem="z1T-aN-oSN" secondAttribute="centerX" id="jVE-nd-LJt"/> + <constraint firstItem="hpx-3J-7nI" firstAttribute="leading" secondItem="PoX-Mz-vPh" secondAttribute="leading" id="lKG-p2-dJx"/> + <constraint firstItem="PoX-Mz-vPh" firstAttribute="leading" secondItem="BAp-Ga-8ex" secondAttribute="trailing" constant="9" id="n5k-JD-5zo"/> + <constraint firstItem="BAp-Ga-8ex" firstAttribute="top" secondItem="Z79-Yp-l1I" secondAttribute="bottom" constant="29" id="p6p-CW-cix"/> + <constraint firstItem="rDr-su-720" firstAttribute="top" secondItem="ckR-f8-uGd" secondAttribute="bottom" constant="12" id="qs5-xJ-lAJ"/> + <constraint firstAttribute="trailing" secondItem="ckR-f8-uGd" secondAttribute="trailing" id="sHR-GV-kPF"/> + </constraints> + </view> + </subviews> + <constraints> + <constraint firstAttribute="bottom" secondItem="Q2t-Ag-qNp" secondAttribute="bottom" id="A8G-e4-meQ"/> + <constraint firstAttribute="trailing" secondItem="Q2t-Ag-qNp" secondAttribute="trailing" id="FvQ-zI-toq"/> + <constraint firstItem="Q2t-Ag-qNp" firstAttribute="leading" secondItem="dkd-zk-G6X" secondAttribute="leading" id="hS4-1k-XEA"/> + <constraint firstItem="Q2t-Ag-qNp" firstAttribute="top" secondItem="dkd-zk-G6X" secondAttribute="top" id="qML-HA-gDY"/> + <constraint firstItem="Q2t-Ag-qNp" firstAttribute="centerX" secondItem="dkd-zk-G6X" secondAttribute="centerX" id="rNy-1b-IMh"/> + </constraints> + </scrollView> + </subviews> + <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/> + <color key="backgroundColor" systemColor="systemBackgroundColor"/> + <constraints> + <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="dkd-zk-G6X" secondAttribute="trailing" id="2Nk-g5-wh0"/> + <constraint firstItem="fnl-2z-Ty3" firstAttribute="bottom" secondItem="dkd-zk-G6X" secondAttribute="bottom" id="6EY-TZ-egn"/> + <constraint firstItem="dkd-zk-G6X" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="G40-va-u79"/> + <constraint firstItem="dkd-zk-G6X" firstAttribute="top" secondItem="fnl-2z-Ty3" secondAttribute="top" id="T96-YJ-ogg"/> + </constraints> + <point key="canvasLocation" x="140" y="20"/> + </view> + </objects> + <resources> + <image name="btn_good_1" width="18" height="18"/> + <systemColor name="systemBackgroundColor"> + <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> + </systemColor> + </resources> +</document> diff --git a/XQMuse/Root/Me/VC/NoticeCenterVC.swift b/XQMuse/Root/Me/VC/NoticeCenterVC.swift new file mode 100644 index 0000000..e6aa5c2 --- /dev/null +++ b/XQMuse/Root/Me/VC/NoticeCenterVC.swift @@ -0,0 +1,67 @@ +// +// NoticeCenterVC.swift +// XQMuse +// +// Created by 无故事王国 on 2024/8/20. +// + +import UIKit + +class NoticeCenterVC: BaseVC { + + private var tableView:UITableView! + + override func viewDidLoad() { + super.viewDidLoad() + title = "消息通知" + + } + + override func setUI() { + super.setUI() + view.backgroundColor = UIColor(hexString: "#fafafa") + + tableView = UITableView(frame: .zero, style: .plain) + tableView.delegate = self + tableView.dataSource = self + tableView.backgroundColor = .clear + tableView.separatorStyle = .none + tableView.register(UINib(nibName: "MessageTCell", bundle: nil), forCellReuseIdentifier: "_MessageTCell") + view.addSubview(tableView) + tableView.snp.makeConstraints { make in + make.left.right.bottom.equalToSuperview() + make.top.equalTo(self.view.safeAreaLayoutGuide.snp.top).offset(9) + } + } +} + +extension NoticeCenterVC:UITableViewDelegate & UITableViewDataSource{ + + func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { + if indexPath.row == 0{ + let vc = NoticeCenterSysDetailVC() + push(vc: vc) + } + + if indexPath.row == 1{ + let vc = NoticeCenterUserRepeaceDetailVC() + push(vc: vc) + } + } + + func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + let cell = tableView.dequeueReusableCell(withIdentifier: "_MessageTCell", for: indexPath) as! MessageTCell + cell.backgroundColor = .clear + return cell + } + + func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { + 94.5 + } + + func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + return 10 + } + + +} diff --git a/XQMuse/Root/Me/VC/SettingVC.swift b/XQMuse/Root/Me/VC/SettingVC.swift new file mode 100644 index 0000000..1b8931d --- /dev/null +++ b/XQMuse/Root/Me/VC/SettingVC.swift @@ -0,0 +1,22 @@ +// +// SettingVC.swift +// XQMuse +// +// Created by 无故事王国 on 2024/8/20. +// + +import UIKit + +class SettingVC: BaseVC { + + override func viewDidLoad() { + super.viewDidLoad() + title = "设置" + + } + + override func setUI() { + super.setUI() + view.backgroundColor = UIColor(hexString: "#fafafa") + } +} diff --git a/XQMuse/Root/Me/VC/SettingVC.xib b/XQMuse/Root/Me/VC/SettingVC.xib new file mode 100644 index 0000000..205fa03 --- /dev/null +++ b/XQMuse/Root/Me/VC/SettingVC.xib @@ -0,0 +1,243 @@ +<?xml version="1.0" encoding="UTF-8"?> +<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="32700.99.1234" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> + <device id="retina6_12" orientation="portrait" appearance="light"/> + <dependencies> + <deployment identifier="iOS"/> + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22685"/> + <capability name="Safe area layout guides" minToolsVersion="9.0"/> + <capability name="System colors in document resources" minToolsVersion="11.0"/> + <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> + </dependencies> + <objects> + <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="SettingVC" customModule="XQMuse" customModuleProvider="target"> + <connections> + <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/> + </connections> + </placeholder> + <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> + <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT"> + <rect key="frame" x="0.0" y="0.0" width="393" height="852"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <subviews> + <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="QyJ-S3-Hmq"> + <rect key="frame" x="7" y="83" width="382" height="240"/> + <subviews> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="F30-OV-73c"> + <rect key="frame" x="0.0" y="0.0" width="382" height="48"/> + <subviews> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="账号绑定" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="NDO-GB-voX"> + <rect key="frame" x="11.666666666666668" y="15" width="61.333333333333329" height="18"/> + <fontDescription key="fontDescription" type="system" weight="medium" pointSize="15"/> + <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <nil key="highlightedColor"/> + </label> + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_more" translatesAutoresizingMaskIntoConstraints="NO" id="I8q-9R-pke"> + <rect key="frame" x="360" y="18.666666666666671" width="6" height="10.666666666666664"/> + </imageView> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="yQ5-jF-vWH"> + <rect key="frame" x="8.6666666666666572" y="47.666666666666657" width="365" height="0.3333333333333357"/> + <color key="backgroundColor" red="0.85490196078431369" green="0.85490196078431369" blue="0.85490196078431369" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <constraints> + <constraint firstAttribute="height" constant="0.5" id="O2v-Pa-a7W"/> + </constraints> + </view> + </subviews> + <color key="backgroundColor" systemColor="systemBackgroundColor"/> + <constraints> + <constraint firstItem="NDO-GB-voX" firstAttribute="leading" secondItem="F30-OV-73c" secondAttribute="leading" constant="11.5" id="2IO-3I-fY3"/> + <constraint firstItem="yQ5-jF-vWH" firstAttribute="leading" secondItem="F30-OV-73c" secondAttribute="leading" constant="8.5" id="5sM-0x-c1w"/> + <constraint firstAttribute="trailing" secondItem="yQ5-jF-vWH" secondAttribute="trailing" constant="8.5" id="EF4-Iv-hv9"/> + <constraint firstAttribute="height" constant="48" id="KKU-dI-Ewp"/> + <constraint firstItem="NDO-GB-voX" firstAttribute="centerY" secondItem="F30-OV-73c" secondAttribute="centerY" id="c4h-gP-qkW"/> + <constraint firstItem="I8q-9R-pke" firstAttribute="centerY" secondItem="F30-OV-73c" secondAttribute="centerY" id="gbb-Ty-9sz"/> + <constraint firstAttribute="trailing" secondItem="I8q-9R-pke" secondAttribute="trailing" constant="16" id="mMp-Oj-OpF"/> + <constraint firstAttribute="bottom" secondItem="yQ5-jF-vWH" secondAttribute="bottom" id="mpU-eI-rpZ"/> + </constraints> + </view> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="2Hy-q7-hsc"> + <rect key="frame" x="0.0" y="48" width="382" height="48"/> + <subviews> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="清理缓存" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="jnR-cP-A56"> + <rect key="frame" x="11.666666666666668" y="15" width="61.333333333333329" height="18"/> + <fontDescription key="fontDescription" type="system" weight="medium" pointSize="15"/> + <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <nil key="highlightedColor"/> + </label> + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_more" translatesAutoresizingMaskIntoConstraints="NO" id="H52-80-xru"> + <rect key="frame" x="360" y="18.666666666666657" width="6" height="10.666666666666664"/> + </imageView> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="bRU-cu-7uc"> + <rect key="frame" x="8.6666666666666572" y="47.666666666666657" width="365" height="0.3333333333333357"/> + <color key="backgroundColor" red="0.85490196080000003" green="0.85490196080000003" blue="0.85490196080000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <constraints> + <constraint firstAttribute="height" constant="0.5" id="Dye-Zq-3UH"/> + </constraints> + </view> + </subviews> + <color key="backgroundColor" systemColor="systemBackgroundColor"/> + <constraints> + <constraint firstItem="jnR-cP-A56" firstAttribute="centerY" secondItem="2Hy-q7-hsc" secondAttribute="centerY" id="0y7-xd-EGu"/> + <constraint firstAttribute="trailing" secondItem="bRU-cu-7uc" secondAttribute="trailing" constant="8.5" id="2YQ-r7-Soj"/> + <constraint firstAttribute="bottom" secondItem="bRU-cu-7uc" secondAttribute="bottom" id="9Pw-8H-wSt"/> + <constraint firstItem="H52-80-xru" firstAttribute="centerY" secondItem="2Hy-q7-hsc" secondAttribute="centerY" id="OVT-0I-UV0"/> + <constraint firstAttribute="height" constant="48" id="SLD-zB-5qH"/> + <constraint firstAttribute="trailing" secondItem="H52-80-xru" secondAttribute="trailing" constant="16" id="qch-39-fKu"/> + <constraint firstItem="bRU-cu-7uc" firstAttribute="leading" secondItem="2Hy-q7-hsc" secondAttribute="leading" constant="8.5" id="uvB-uh-Hgb"/> + <constraint firstItem="jnR-cP-A56" firstAttribute="leading" secondItem="2Hy-q7-hsc" secondAttribute="leading" constant="11.5" id="xkw-68-pkU"/> + </constraints> + </view> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="kId-7a-TaC"> + <rect key="frame" x="0.0" y="96" width="382" height="48"/> + <subviews> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="关于心泉" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="B6x-dn-wFm"> + <rect key="frame" x="11.666666666666668" y="15" width="61.333333333333329" height="18"/> + <fontDescription key="fontDescription" type="system" weight="medium" pointSize="15"/> + <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <nil key="highlightedColor"/> + </label> + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_more" translatesAutoresizingMaskIntoConstraints="NO" id="Vj0-ub-6nF"> + <rect key="frame" x="360" y="18.666666666666657" width="6" height="10.666666666666664"/> + </imageView> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Qa3-kO-6Km"> + <rect key="frame" x="8.6666666666666572" y="47.666666666666657" width="365" height="0.3333333333333357"/> + <color key="backgroundColor" red="0.85490196080000003" green="0.85490196080000003" blue="0.85490196080000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <constraints> + <constraint firstAttribute="height" constant="0.5" id="dgw-dn-SQP"/> + </constraints> + </view> + </subviews> + <color key="backgroundColor" systemColor="systemBackgroundColor"/> + <constraints> + <constraint firstItem="B6x-dn-wFm" firstAttribute="centerY" secondItem="kId-7a-TaC" secondAttribute="centerY" id="5Gh-wD-0t5"/> + <constraint firstItem="Vj0-ub-6nF" firstAttribute="centerY" secondItem="kId-7a-TaC" secondAttribute="centerY" id="XZD-xd-hEQ"/> + <constraint firstAttribute="trailing" secondItem="Vj0-ub-6nF" secondAttribute="trailing" constant="16" id="aEV-Pk-Wv5"/> + <constraint firstAttribute="bottom" secondItem="Qa3-kO-6Km" secondAttribute="bottom" id="guh-zg-Aia"/> + <constraint firstAttribute="trailing" secondItem="Qa3-kO-6Km" secondAttribute="trailing" constant="8.5" id="qGG-So-pd3"/> + <constraint firstItem="Qa3-kO-6Km" firstAttribute="leading" secondItem="kId-7a-TaC" secondAttribute="leading" constant="8.5" id="r3n-6Y-jhN"/> + <constraint firstAttribute="height" constant="48" id="rqa-Zp-h0A"/> + <constraint firstItem="B6x-dn-wFm" firstAttribute="leading" secondItem="kId-7a-TaC" secondAttribute="leading" constant="11.5" id="yFx-ud-44e"/> + </constraints> + </view> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ta8-pP-aEf"> + <rect key="frame" x="0.0" y="144" width="382" height="48"/> + <subviews> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="注销账号" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="tVJ-zS-iAQ"> + <rect key="frame" x="11.666666666666668" y="15" width="61.333333333333329" height="18"/> + <fontDescription key="fontDescription" type="system" weight="medium" pointSize="15"/> + <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <nil key="highlightedColor"/> + </label> + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_more" translatesAutoresizingMaskIntoConstraints="NO" id="azP-kc-GSH"> + <rect key="frame" x="360" y="18.666666666666657" width="6" height="10.666666666666664"/> + </imageView> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="nd7-cz-feh"> + <rect key="frame" x="8.6666666666666572" y="47.666666666666686" width="365" height="0.3333333333333357"/> + <color key="backgroundColor" red="0.85490196080000003" green="0.85490196080000003" blue="0.85490196080000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <constraints> + <constraint firstAttribute="height" constant="0.5" id="SSM-lS-naa"/> + </constraints> + </view> + </subviews> + <color key="backgroundColor" systemColor="systemBackgroundColor"/> + <constraints> + <constraint firstAttribute="trailing" secondItem="nd7-cz-feh" secondAttribute="trailing" constant="8.5" id="5FG-Ru-gRc"/> + <constraint firstAttribute="height" constant="48" id="7Ys-sp-yg0"/> + <constraint firstItem="tVJ-zS-iAQ" firstAttribute="centerY" secondItem="ta8-pP-aEf" secondAttribute="centerY" id="AZz-Q9-sJs"/> + <constraint firstAttribute="trailing" secondItem="azP-kc-GSH" secondAttribute="trailing" constant="16" id="FY3-4J-VDk"/> + <constraint firstItem="azP-kc-GSH" firstAttribute="centerY" secondItem="ta8-pP-aEf" secondAttribute="centerY" id="UyY-Fc-PmW"/> + <constraint firstAttribute="bottom" secondItem="nd7-cz-feh" secondAttribute="bottom" id="Vhl-f4-fGv"/> + <constraint firstItem="nd7-cz-feh" firstAttribute="leading" secondItem="ta8-pP-aEf" secondAttribute="leading" constant="8.5" id="ZCl-m7-E31"/> + <constraint firstItem="tVJ-zS-iAQ" firstAttribute="leading" secondItem="ta8-pP-aEf" secondAttribute="leading" constant="11.5" id="eyP-KN-5Cf"/> + </constraints> + </view> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="UKx-wx-JbB"> + <rect key="frame" x="0.0" y="192" width="382" height="48"/> + <subviews> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="协议政策" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="bcv-yx-5hJ"> + <rect key="frame" x="11.666666666666668" y="15" width="61.333333333333329" height="18"/> + <fontDescription key="fontDescription" type="system" weight="medium" pointSize="15"/> + <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <nil key="highlightedColor"/> + </label> + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_more" translatesAutoresizingMaskIntoConstraints="NO" id="6EX-Ra-eYJ"> + <rect key="frame" x="360" y="18.666666666666686" width="6" height="10.666666666666664"/> + </imageView> + </subviews> + <color key="backgroundColor" systemColor="systemBackgroundColor"/> + <constraints> + <constraint firstAttribute="trailing" secondItem="6EX-Ra-eYJ" secondAttribute="trailing" constant="16" id="8xb-8n-Npv"/> + <constraint firstItem="6EX-Ra-eYJ" firstAttribute="centerY" secondItem="UKx-wx-JbB" secondAttribute="centerY" id="Awh-IS-bgr"/> + <constraint firstAttribute="height" constant="48" id="HxL-k5-zc3"/> + <constraint firstItem="bcv-yx-5hJ" firstAttribute="leading" secondItem="UKx-wx-JbB" secondAttribute="leading" constant="11.5" id="RmS-6i-r4k"/> + <constraint firstItem="bcv-yx-5hJ" firstAttribute="centerY" secondItem="UKx-wx-JbB" secondAttribute="centerY" id="xNc-AU-9gy"/> + </constraints> + </view> + </subviews> + <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> + <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> + <real key="value" value="15"/> + </userDefinedRuntimeAttribute> + </userDefinedRuntimeAttributes> + </stackView> + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="yK9-0E-44J"> + <rect key="frame" x="7" y="332" width="382" height="49.666666666666686"/> + <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <constraints> + <constraint firstAttribute="height" constant="49.5" id="7pi-r8-XGT"/> + </constraints> + <fontDescription key="fontDescription" type="system" weight="medium" pointSize="17"/> + <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> + <state key="normal" title="切换账号"> + <color key="titleColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + </state> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> + <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> + <real key="value" value="24.75"/> + </userDefinedRuntimeAttribute> + </userDefinedRuntimeAttributes> + </button> + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="7uR-yB-LEb"> + <rect key="frame" x="7" y="391" width="382" height="49.666666666666686"/> + <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <constraints> + <constraint firstAttribute="height" constant="49.5" id="gU8-HE-2Kr"/> + </constraints> + <fontDescription key="fontDescription" type="system" weight="medium" pointSize="17"/> + <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> + <state key="normal" title="退出登录"> + <color key="titleColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + </state> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> + <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> + <real key="value" value="24.75"/> + </userDefinedRuntimeAttribute> + </userDefinedRuntimeAttributes> + </button> + </subviews> + <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/> + <color key="backgroundColor" systemColor="systemBackgroundColor"/> + <constraints> + <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="yK9-0E-44J" secondAttribute="trailing" constant="4" id="4zd-5V-NTv"/> + <constraint firstItem="7uR-yB-LEb" firstAttribute="top" secondItem="yK9-0E-44J" secondAttribute="bottom" constant="9.5" id="Ekg-cD-c8a"/> + <constraint firstItem="7uR-yB-LEb" firstAttribute="trailing" secondItem="yK9-0E-44J" secondAttribute="trailing" id="I6u-8B-FO4"/> + <constraint firstItem="7uR-yB-LEb" firstAttribute="leading" secondItem="yK9-0E-44J" secondAttribute="leading" id="QfL-TW-OOk"/> + <constraint firstItem="yK9-0E-44J" firstAttribute="top" secondItem="QyJ-S3-Hmq" secondAttribute="bottom" constant="9" id="hAC-Qj-VcI"/> + <constraint firstItem="QyJ-S3-Hmq" firstAttribute="top" secondItem="fnl-2z-Ty3" secondAttribute="top" constant="24" id="pLF-n4-RQL"/> + <constraint firstItem="yK9-0E-44J" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="7" id="qNx-BP-udc"/> + <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="QyJ-S3-Hmq" secondAttribute="trailing" constant="4" id="yN3-Xr-Wkz"/> + <constraint firstItem="QyJ-S3-Hmq" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="7" id="zTD-iq-PaL"/> + </constraints> + <point key="canvasLocation" x="139.69465648854961" y="19.718309859154932"/> + </view> + </objects> + <resources> + <image name="icon_more" width="6" height="10.666666984558105"/> + <systemColor name="systemBackgroundColor"> + <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> + </systemColor> + </resources> +</document> diff --git a/XQMuse/Root/Me/VC/StudyListVC.swift b/XQMuse/Root/Me/VC/StudyListVC.swift new file mode 100644 index 0000000..f14eecf --- /dev/null +++ b/XQMuse/Root/Me/VC/StudyListVC.swift @@ -0,0 +1,129 @@ +// +// StudyListVC.swift +// XQMuse +// +// Created by 无故事王国 on 2024/8/20. +// + +import UIKit +import QMUIKit +import JQTools + +class StudyListVC: BaseVC { + + @IBOutlet weak var collectionView: UICollectionView! + override func viewDidLoad() { + super.viewDidLoad() + title = "学习" + } + + override func setUI() { + super.setUI() + view.backgroundColor = UIColor(hexString: "#F6F6F6") + collectionView.delegate = self + collectionView.dataSource = self + collectionView.backgroundColor = UIColor(hexString: "#F6F6F6") + collectionView.register(UINib(nibName: "EmptyCCell", bundle: nil), forCellWithReuseIdentifier: "_EmptyCCell") + collectionView.register(UINib(nibName: "HomeRelaxBanner_2_1_CCell", bundle: nil), forCellWithReuseIdentifier: "_HomeRelaxBanner_2_1_CCell") + collectionView.contentInset = UIEdgeInsets(top: 0, left: 18, bottom: 0, right: 18) + collectionView.register(StudyListHeaderView.self, forSupplementaryViewOfKind: UICollectionView.elementKindSectionHeader, withReuseIdentifier: "header") + } + + @IBAction func questionAction(_ sender: QMUIButton) { + + } +} + +extension StudyListVC:UICollectionViewDelegate & UICollectionViewDataSource{ + + func numberOfSections(in collectionView: UICollectionView) -> Int { + return 2 + } + func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { + if indexPath.section == 0{ + let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "_EmptyCCell", for: indexPath) as! EmptyCCell + return cell + } + + let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "_HomeRelaxBanner_2_1_CCell", for: indexPath) as! HomeRelaxBanner_2_1_CCell + cell.backgroundColor = .jq_randomColor + return cell + } + + func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { + if section == 0{ + return 1 + }else { + return 5 + } + } +} + +extension StudyListVC:UICollectionViewDelegateFlowLayout{ + func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat { + return 13.5 + } + + func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat { + return 0 + } + func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, referenceSizeForHeaderInSection section: Int) -> CGSize { + return CGSize(width: JQ_ScreenW, height: 59) + } + + func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView { + if kind == UICollectionView.elementKindSectionHeader{ + let headerView = collectionView.dequeueReusableSupplementaryView(ofKind: kind, withReuseIdentifier: "header", for: indexPath) as! StudyListHeaderView + + if indexPath.section == 0{ + headerView.setTitle(text: "已购课程") + }else if indexPath.section == 1{ + headerView.setTitle(text: "免费课程") + } + return headerView + } + + return UICollectionReusableView() + } + + func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { + if indexPath.section == 0{ + return CGSize(width: JQ_ScreenW, height: 279) + } + + let w = (JQ_ScreenW - 18 * 3) / 2 + return CGSize(width: w, height: w * 1.319) + } +} + +class StudyListHeaderView:UICollectionReusableView{ + + let lineLabel = UILabel() + + override init(frame: CGRect) { + super.init(frame: frame) + setUI() + } + + + func setTitle(text:String){ + lineLabel.text = text + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + private func setUI(){ + backgroundColor = UIColor(hexString: "#F6F6F6") + lineLabel.font = .systemFont(ofSize: 15, weight: .medium) + lineLabel.textColor = UIColor(hexString: "#282828") + addSubview(lineLabel) + lineLabel.snp.makeConstraints { make in + make.left.equalTo(0) + make.centerY.equalToSuperview() + make.width.equalTo(71) + make.height.equalTo(20) + } + } +} diff --git a/XQMuse/Root/Me/VC/StudyListVC.xib b/XQMuse/Root/Me/VC/StudyListVC.xib new file mode 100644 index 0000000..ffd02dc --- /dev/null +++ b/XQMuse/Root/Me/VC/StudyListVC.xib @@ -0,0 +1,91 @@ +<?xml version="1.0" encoding="UTF-8"?> +<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="32700.99.1234" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> + <device id="retina6_12" orientation="portrait" appearance="light"/> + <dependencies> + <deployment identifier="iOS"/> + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22685"/> + <capability name="Safe area layout guides" minToolsVersion="9.0"/> + <capability name="System colors in document resources" minToolsVersion="11.0"/> + <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> + </dependencies> + <objects> + <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="StudyListVC" customModule="XQMuse" customModuleProvider="target"> + <connections> + <outlet property="collectionView" destination="eHc-Eu-NuF" id="pjR-fo-5eA"/> + <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/> + </connections> + </placeholder> + <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> + <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT"> + <rect key="frame" x="0.0" y="0.0" width="393" height="852"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <subviews> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="IfF-SR-g6f"> + <rect key="frame" x="0.0" y="59.000000000000007" width="393" height="75.666666666666686"/> + <subviews> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="我的课程" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="9S0-96-3nm"> + <rect key="frame" x="22.000000000000004" y="28.666666666666671" width="61.333333333333343" height="18"/> + <fontDescription key="fontDescription" type="boldSystem" pointSize="15"/> + <color key="textColor" red="0.15686274509803921" green="0.15686274509803921" blue="0.15686274509803921" alpha="1" colorSpace="calibratedRGB"/> + <nil key="highlightedColor"/> + </label> + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="0VA-qj-bFC" customClass="QMUIButton"> + <rect key="frame" x="255.99999999999997" y="22.666666666666671" width="115.66666666666666" height="30"/> + <constraints> + <constraint firstAttribute="height" constant="30" id="PZi-Ey-3lf"/> + </constraints> + <fontDescription key="fontDescription" type="boldSystem" pointSize="14"/> + <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> + <state key="normal" title="找不到已购课程" image="icon_question"> + <color key="titleColor" red="0.42745098039215684" green="0.42745098039215684" blue="0.42745098039215684" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + </state> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="number" keyPath="spacingBetweenImageAndTitle"> + <real key="value" value="9.5"/> + </userDefinedRuntimeAttribute> + </userDefinedRuntimeAttributes> + <connections> + <action selector="questionAction:" destination="-1" eventType="touchUpInside" id="Rzl-9s-gXz"/> + </connections> + </button> + </subviews> + <color key="backgroundColor" red="0.96470588235294119" green="0.96470588235294119" blue="0.96470588235294119" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <constraints> + <constraint firstItem="9S0-96-3nm" firstAttribute="leading" secondItem="IfF-SR-g6f" secondAttribute="leading" constant="22" id="6mu-30-WSG"/> + <constraint firstItem="0VA-qj-bFC" firstAttribute="centerY" secondItem="IfF-SR-g6f" secondAttribute="centerY" id="K0K-1U-2rh"/> + <constraint firstAttribute="trailing" secondItem="0VA-qj-bFC" secondAttribute="trailing" constant="21.5" id="W9p-Ky-YoZ"/> + <constraint firstAttribute="height" constant="75.5" id="ecG-ke-lor"/> + <constraint firstItem="9S0-96-3nm" firstAttribute="centerY" secondItem="IfF-SR-g6f" secondAttribute="centerY" id="qo1-mY-CNT"/> + </constraints> + </view> + <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" dataMode="none" translatesAutoresizingMaskIntoConstraints="NO" id="eHc-Eu-NuF"> + <rect key="frame" x="0.0" y="134.66666666666669" width="393" height="683.33333333333326"/> + <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="10" minimumInteritemSpacing="10" id="K2p-RA-gRf"> + <size key="itemSize" width="128" height="128"/> + <size key="headerReferenceSize" width="0.0" height="0.0"/> + <size key="footerReferenceSize" width="0.0" height="0.0"/> + <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/> + </collectionViewFlowLayout> + </collectionView> + </subviews> + <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/> + <color key="backgroundColor" systemColor="systemBackgroundColor"/> + <constraints> + <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="IfF-SR-g6f" secondAttribute="trailing" id="7ia-Y6-jMe"/> + <constraint firstItem="fnl-2z-Ty3" firstAttribute="bottom" secondItem="eHc-Eu-NuF" secondAttribute="bottom" id="9a2-tf-DvZ"/> + <constraint firstItem="IfF-SR-g6f" firstAttribute="top" secondItem="fnl-2z-Ty3" secondAttribute="top" id="YDT-xL-QJW"/> + <constraint firstItem="eHc-Eu-NuF" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="azy-WH-Yyg"/> + <constraint firstItem="eHc-Eu-NuF" firstAttribute="top" secondItem="IfF-SR-g6f" secondAttribute="bottom" id="fc0-s9-1lr"/> + <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="eHc-Eu-NuF" secondAttribute="trailing" id="m68-D3-WYT"/> + <constraint firstItem="IfF-SR-g6f" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="nJ3-f2-PlE"/> + </constraints> + <point key="canvasLocation" x="140" y="20"/> + </view> + </objects> + <resources> + <image name="icon_question" width="15.666666984558105" height="15.666666984558105"/> + <systemColor name="systemBackgroundColor"> + <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> + </systemColor> + </resources> +</document> diff --git a/XQMuse/Root/Me/VC/UserProfileVC.swift b/XQMuse/Root/Me/VC/UserProfileVC.swift new file mode 100644 index 0000000..226ef82 --- /dev/null +++ b/XQMuse/Root/Me/VC/UserProfileVC.swift @@ -0,0 +1,70 @@ +// +// UserProfileVC.swift +// XQMuse +// +// Created by 无故事王国 on 2024/8/20. +// + +import UIKit +import QMUIKit +import JQTools + +class UserProfileVC: BaseVC { + + @IBOutlet weak var image_user: UIImageView! + @IBOutlet weak var tf_gender: QMUITextField! + @IBOutlet weak var tf_birthday: QMUITextField! + + override func viewDidLoad() { + super.viewDidLoad() + title = "个人资料" + } + + override func setUI() { + super.setUI() + view.backgroundColor = UIColor(hexString:"#fafafa") + tf_gender.delegate = self + tf_birthday.delegate = self + image_user.isUserInteractionEnabled = true + let tap = UITapGestureRecognizer(target: self, action: #selector(selectUserProfile)) + tap.numberOfTapsRequired = 1 + image_user.addGestureRecognizer(tap) + } + + @objc func selectUserProfile(){ + JQ_ImagePickerTool.getSharedInstance().singleImage({ [unowned self] image in + self.image_user.image = image + }, clipSize: CGSize(width: JQ_ScreenW, height: JQ_ScreenW)) + } +} + +extension UserProfileVC:QMUITextFieldDelegate{ + func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool { + + if textField == tf_gender{ + let items = ["男","女"] + CommonAlertSheetView.show(items: items) {[weak self] index in + guard let weakSelf = self else { return } + guard textField.text != items[index] else {return} + textField.text = items[index] + var gender:GenderType! + + if index == 0{ + gender = .man + }else{ + gender = .woman + } + } + } + + if textField == tf_birthday{ + view.endEditing(true) + CommonDatePickerView.show(before: 60, after: 0, type: .YMD) { year, month, day,_,_ in + textField.text = String(format: "%ld-%02ld-%02ld", year!,month!,day!) + } + return false + } + + return false + } +} diff --git a/XQMuse/Root/Me/VC/UserProfileVC.xib b/XQMuse/Root/Me/VC/UserProfileVC.xib new file mode 100644 index 0000000..d4f1124 --- /dev/null +++ b/XQMuse/Root/Me/VC/UserProfileVC.xib @@ -0,0 +1,592 @@ +<?xml version="1.0" encoding="UTF-8"?> +<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="32700.99.1234" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> + <device id="retina6_12" orientation="portrait" appearance="light"/> + <dependencies> + <deployment identifier="iOS"/> + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22685"/> + <capability name="Safe area layout guides" minToolsVersion="9.0"/> + <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> + </dependencies> + <objects> + <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="UserProfileVC" customModule="XQMuse" customModuleProvider="target"> + <connections> + <outlet property="image_user" destination="Qz0-bC-W38" id="eCy-hk-a42"/> + <outlet property="tf_birthday" destination="mG1-O5-m2h" id="QhO-j1-4Id"/> + <outlet property="tf_gender" destination="eyM-56-9BV" id="dX4-by-LUg"/> + <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/> + </connections> + </placeholder> + <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> + <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT"> + <rect key="frame" x="0.0" y="0.0" width="393" height="852"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <subviews> + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="bg_voice_top" translatesAutoresizingMaskIntoConstraints="NO" id="XVq-PF-coR"> + <rect key="frame" x="0.0" y="0.0" width="393" height="297"/> + </imageView> + <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" translatesAutoresizingMaskIntoConstraints="NO" id="QFv-GO-e0l"> + <rect key="frame" x="0.0" y="59" width="393" height="759"/> + <subviews> + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="Qz0-bC-W38"> + <rect key="frame" x="146.66666666666666" y="80" width="100" height="100"/> + <color key="backgroundColor" red="0.4039215686" green="0.4039215686" blue="0.4039215686" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <constraints> + <constraint firstAttribute="height" constant="100" id="1cn-SA-RtQ"/> + <constraint firstAttribute="width" constant="100" id="3yp-Va-cQF"/> + </constraints> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> + <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> + <real key="value" value="50"/> + </userDefinedRuntimeAttribute> + </userDefinedRuntimeAttributes> + </imageView> + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_imgPlaceHolder" translatesAutoresizingMaskIntoConstraints="NO" id="cF8-lO-m5L"> + <rect key="frame" x="180.66666666666666" y="114.33333333333333" width="31.666666666666657" height="31.333333333333329"/> + <constraints> + <constraint firstAttribute="height" constant="31.5" id="E7F-rL-NBo"/> + <constraint firstAttribute="width" constant="31.5" id="NeW-Nj-hGD"/> + </constraints> + </imageView> + <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="ZqJ-fT-wgQ"> + <rect key="frame" x="0.0" y="210" width="393" height="600"/> + <subviews> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="W8z-Hs-75j"> + <rect key="frame" x="0.0" y="0.0" width="393" height="50"/> + <subviews> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="昵称" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="fv9-E0-tp4"> + <rect key="frame" x="16" y="17.333333333333314" width="26.666666666666671" height="15.666666666666664"/> + <fontDescription key="fontDescription" type="system" pointSize="13"/> + <nil key="textColor"/> + <nil key="highlightedColor"/> + </label> + <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="点击输入" textAlignment="right" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="xDs-61-9P0" customClass="QMUITextField"> + <rect key="frame" x="42.666666666666657" y="0.0" width="334.33333333333337" height="50"/> + <fontDescription key="fontDescription" type="system" weight="medium" pointSize="13"/> + <textInputTraits key="textInputTraits"/> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="color" keyPath="placeholderColor"> + <color key="value" red="0.71764705882352942" green="0.71764705882352942" blue="0.71764705882352942" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + </userDefinedRuntimeAttribute> + </userDefinedRuntimeAttributes> + </textField> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Yiz-Yk-R0A"> + <rect key="frame" x="16" y="49.666666666666686" width="361" height="0.3333333333333357"/> + <color key="backgroundColor" red="0.93333333333333335" green="0.93333333333333335" blue="0.93333333333333335" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <constraints> + <constraint firstAttribute="height" constant="0.5" id="aSS-Nd-7fk"/> + </constraints> + </view> + </subviews> + <constraints> + <constraint firstAttribute="trailing" secondItem="xDs-61-9P0" secondAttribute="trailing" constant="16" id="0gk-Zz-41p"/> + <constraint firstItem="fv9-E0-tp4" firstAttribute="centerY" secondItem="W8z-Hs-75j" secondAttribute="centerY" id="1cp-WM-kj3"/> + <constraint firstItem="xDs-61-9P0" firstAttribute="leading" secondItem="fv9-E0-tp4" secondAttribute="trailing" id="6X7-sc-YMy"/> + <constraint firstAttribute="bottom" secondItem="xDs-61-9P0" secondAttribute="bottom" id="CCs-t6-CXs"/> + <constraint firstAttribute="trailing" secondItem="Yiz-Yk-R0A" secondAttribute="trailing" constant="16" id="Uhl-tS-Lug"/> + <constraint firstItem="xDs-61-9P0" firstAttribute="top" secondItem="W8z-Hs-75j" secondAttribute="top" id="Vmr-gL-ZPP"/> + <constraint firstItem="fv9-E0-tp4" firstAttribute="leading" secondItem="W8z-Hs-75j" secondAttribute="leading" constant="16" id="gDc-PT-IzF"/> + <constraint firstAttribute="bottom" secondItem="Yiz-Yk-R0A" secondAttribute="bottom" id="hL5-ZI-kPw"/> + <constraint firstItem="Yiz-Yk-R0A" firstAttribute="leading" secondItem="W8z-Hs-75j" secondAttribute="leading" constant="16" id="s9g-1s-tRx"/> + <constraint firstAttribute="height" constant="50" id="vml-bQ-VUK"/> + </constraints> + </view> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ZnN-6s-Yjd"> + <rect key="frame" x="0.0" y="50" width="393" height="50"/> + <subviews> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="姓名" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zxo-Oa-ujz"> + <rect key="frame" x="16" y="17.333333333333314" width="26.666666666666671" height="15.666666666666664"/> + <fontDescription key="fontDescription" type="system" pointSize="13"/> + <nil key="textColor"/> + <nil key="highlightedColor"/> + </label> + <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="点击输入" textAlignment="right" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="7Wv-tW-0JD" customClass="QMUITextField"> + <rect key="frame" x="42.666666666666657" y="0.0" width="334.33333333333337" height="50"/> + <fontDescription key="fontDescription" type="system" weight="medium" pointSize="13"/> + <textInputTraits key="textInputTraits"/> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="color" keyPath="placeholderColor"> + <color key="value" red="0.71764705880000002" green="0.71764705880000002" blue="0.71764705880000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + </userDefinedRuntimeAttribute> + </userDefinedRuntimeAttributes> + </textField> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="99I-5x-yhh"> + <rect key="frame" x="16" y="49.666666666666686" width="361" height="0.3333333333333357"/> + <color key="backgroundColor" red="0.93333333330000001" green="0.93333333330000001" blue="0.93333333330000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <constraints> + <constraint firstAttribute="height" constant="0.5" id="Jt9-18-DKi"/> + </constraints> + </view> + </subviews> + <constraints> + <constraint firstItem="zxo-Oa-ujz" firstAttribute="centerY" secondItem="ZnN-6s-Yjd" secondAttribute="centerY" id="0Vr-vQ-iyy"/> + <constraint firstAttribute="bottom" secondItem="99I-5x-yhh" secondAttribute="bottom" id="Edh-cq-fkE"/> + <constraint firstAttribute="trailing" secondItem="7Wv-tW-0JD" secondAttribute="trailing" constant="16" id="IED-6g-XJk"/> + <constraint firstItem="zxo-Oa-ujz" firstAttribute="leading" secondItem="ZnN-6s-Yjd" secondAttribute="leading" constant="16" id="Krk-zB-plH"/> + <constraint firstItem="7Wv-tW-0JD" firstAttribute="leading" secondItem="zxo-Oa-ujz" secondAttribute="trailing" id="XuI-ZK-OIP"/> + <constraint firstAttribute="bottom" secondItem="7Wv-tW-0JD" secondAttribute="bottom" id="Y5R-jE-e8b"/> + <constraint firstItem="7Wv-tW-0JD" firstAttribute="top" secondItem="ZnN-6s-Yjd" secondAttribute="top" id="acL-P4-OKz"/> + <constraint firstAttribute="height" constant="50" id="amu-3z-OvI"/> + <constraint firstAttribute="trailing" secondItem="99I-5x-yhh" secondAttribute="trailing" constant="16" id="c3x-eK-1U3"/> + <constraint firstItem="99I-5x-yhh" firstAttribute="leading" secondItem="ZnN-6s-Yjd" secondAttribute="leading" constant="16" id="m6C-b5-e12"/> + </constraints> + </view> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="wF8-wM-bZA"> + <rect key="frame" x="0.0" y="100" width="393" height="50"/> + <subviews> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="签名" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="imv-PF-klz"> + <rect key="frame" x="16" y="17.333333333333314" width="26.666666666666671" height="15.666666666666664"/> + <fontDescription key="fontDescription" type="system" pointSize="13"/> + <nil key="textColor"/> + <nil key="highlightedColor"/> + </label> + <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="点击输入" textAlignment="right" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="HRg-rk-jcD" customClass="QMUITextField"> + <rect key="frame" x="42.666666666666657" y="0.0" width="334.33333333333337" height="50"/> + <fontDescription key="fontDescription" type="system" weight="medium" pointSize="13"/> + <textInputTraits key="textInputTraits"/> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="color" keyPath="placeholderColor"> + <color key="value" red="0.71764705880000002" green="0.71764705880000002" blue="0.71764705880000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + </userDefinedRuntimeAttribute> + </userDefinedRuntimeAttributes> + </textField> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="dVJ-mi-fMg"> + <rect key="frame" x="16" y="49.666666666666686" width="361" height="0.3333333333333357"/> + <color key="backgroundColor" red="0.93333333330000001" green="0.93333333330000001" blue="0.93333333330000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <constraints> + <constraint firstAttribute="height" constant="0.5" id="Sqx-8e-YQg"/> + </constraints> + </view> + </subviews> + <constraints> + <constraint firstAttribute="bottom" secondItem="HRg-rk-jcD" secondAttribute="bottom" id="1Nq-2j-tMI"/> + <constraint firstItem="imv-PF-klz" firstAttribute="leading" secondItem="wF8-wM-bZA" secondAttribute="leading" constant="16" id="6Y4-vh-3Z3"/> + <constraint firstAttribute="height" constant="50" id="71M-xb-Ycl"/> + <constraint firstAttribute="bottom" secondItem="dVJ-mi-fMg" secondAttribute="bottom" id="Cdn-7w-2Dl"/> + <constraint firstAttribute="trailing" secondItem="HRg-rk-jcD" secondAttribute="trailing" constant="16" id="RGc-sE-Laq"/> + <constraint firstItem="HRg-rk-jcD" firstAttribute="leading" secondItem="imv-PF-klz" secondAttribute="trailing" id="Sme-zY-ZfY"/> + <constraint firstItem="dVJ-mi-fMg" firstAttribute="leading" secondItem="wF8-wM-bZA" secondAttribute="leading" constant="16" id="U5j-Bg-hvW"/> + <constraint firstAttribute="trailing" secondItem="dVJ-mi-fMg" secondAttribute="trailing" constant="16" id="fYl-mF-qvx"/> + <constraint firstItem="imv-PF-klz" firstAttribute="centerY" secondItem="wF8-wM-bZA" secondAttribute="centerY" id="lCp-7v-faW"/> + <constraint firstItem="HRg-rk-jcD" firstAttribute="top" secondItem="wF8-wM-bZA" secondAttribute="top" id="nyW-Pc-Uzd"/> + </constraints> + </view> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="WmA-hx-PiX"> + <rect key="frame" x="0.0" y="150" width="393" height="50"/> + <subviews> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="性别" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="foA-m4-Hff"> + <rect key="frame" x="16" y="17.333333333333314" width="30" height="15.666666666666664"/> + <constraints> + <constraint firstAttribute="width" constant="30" id="fzZ-XP-FuZ"/> + </constraints> + <fontDescription key="fontDescription" type="system" pointSize="13"/> + <nil key="textColor"/> + <nil key="highlightedColor"/> + </label> + <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请选择" textAlignment="right" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="eyM-56-9BV" customClass="QMUITextField"> + <rect key="frame" x="46" y="0.0" width="320" height="50"/> + <fontDescription key="fontDescription" type="system" weight="medium" pointSize="13"/> + <textInputTraits key="textInputTraits"/> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="color" keyPath="placeholderColor"> + <color key="value" red="0.71764705880000002" green="0.71764705880000002" blue="0.71764705880000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + </userDefinedRuntimeAttribute> + </userDefinedRuntimeAttributes> + </textField> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ueC-jc-C3d"> + <rect key="frame" x="16" y="49.666666666666686" width="361" height="0.3333333333333357"/> + <color key="backgroundColor" red="0.93333333330000001" green="0.93333333330000001" blue="0.93333333330000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <constraints> + <constraint firstAttribute="height" constant="0.5" id="Yfs-ZR-JIe"/> + </constraints> + </view> + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_more" translatesAutoresizingMaskIntoConstraints="NO" id="wze-pI-FFa"> + <rect key="frame" x="374.66666666666669" y="19.666666666666686" width="6" height="10.666666666666664"/> + <constraints> + <constraint firstAttribute="height" constant="10.5" id="5t3-5o-Y7v"/> + <constraint firstAttribute="width" constant="6" id="tqe-4K-vP6"/> + </constraints> + </imageView> + </subviews> + <constraints> + <constraint firstAttribute="height" constant="50" id="EbC-9w-kO9"/> + <constraint firstAttribute="bottom" secondItem="ueC-jc-C3d" secondAttribute="bottom" id="FK1-MR-vPY"/> + <constraint firstAttribute="trailing" secondItem="ueC-jc-C3d" secondAttribute="trailing" constant="16" id="HiJ-Za-nFm"/> + <constraint firstItem="wze-pI-FFa" firstAttribute="leading" secondItem="eyM-56-9BV" secondAttribute="trailing" constant="8.5" id="IxW-Gy-wOD"/> + <constraint firstAttribute="bottom" secondItem="eyM-56-9BV" secondAttribute="bottom" id="JPO-Nr-Bys"/> + <constraint firstItem="eyM-56-9BV" firstAttribute="leading" secondItem="foA-m4-Hff" secondAttribute="trailing" id="XCE-eq-TwL"/> + <constraint firstItem="eyM-56-9BV" firstAttribute="top" secondItem="WmA-hx-PiX" secondAttribute="top" id="cJc-d6-8ly"/> + <constraint firstAttribute="trailing" secondItem="wze-pI-FFa" secondAttribute="trailing" constant="12.5" id="eAm-Vp-t3L"/> + <constraint firstItem="foA-m4-Hff" firstAttribute="leading" secondItem="WmA-hx-PiX" secondAttribute="leading" constant="16" id="lPD-XB-dpS"/> + <constraint firstItem="ueC-jc-C3d" firstAttribute="leading" secondItem="WmA-hx-PiX" secondAttribute="leading" constant="16" id="p9r-b2-1dT"/> + <constraint firstItem="wze-pI-FFa" firstAttribute="centerY" secondItem="WmA-hx-PiX" secondAttribute="centerY" id="rf7-a6-rQK"/> + <constraint firstItem="foA-m4-Hff" firstAttribute="centerY" secondItem="WmA-hx-PiX" secondAttribute="centerY" id="zRb-MJ-cR2"/> + </constraints> + </view> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Hud-Yf-U67"> + <rect key="frame" x="0.0" y="200" width="393" height="50"/> + <subviews> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="生日" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="8Ey-xg-wtn"> + <rect key="frame" x="16" y="17.333333333333314" width="30" height="15.666666666666664"/> + <constraints> + <constraint firstAttribute="width" constant="30" id="TBD-JC-CIF"/> + </constraints> + <fontDescription key="fontDescription" type="system" pointSize="13"/> + <nil key="textColor"/> + <nil key="highlightedColor"/> + </label> + <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请选择" textAlignment="right" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="mG1-O5-m2h" customClass="QMUITextField"> + <rect key="frame" x="46" y="0.0" width="320" height="50"/> + <fontDescription key="fontDescription" type="system" weight="medium" pointSize="13"/> + <textInputTraits key="textInputTraits"/> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="color" keyPath="placeholderColor"> + <color key="value" red="0.71764705880000002" green="0.71764705880000002" blue="0.71764705880000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + </userDefinedRuntimeAttribute> + </userDefinedRuntimeAttributes> + </textField> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="8aT-z4-IIe"> + <rect key="frame" x="16" y="49.666666666666629" width="361" height="0.3333333333333357"/> + <color key="backgroundColor" red="0.93333333330000001" green="0.93333333330000001" blue="0.93333333330000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <constraints> + <constraint firstAttribute="height" constant="0.5" id="zp9-cE-Fcd"/> + </constraints> + </view> + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_more" translatesAutoresizingMaskIntoConstraints="NO" id="b6U-7z-btq"> + <rect key="frame" x="374.66666666666669" y="19.666666666666686" width="6" height="10.666666666666664"/> + <constraints> + <constraint firstAttribute="height" constant="10.5" id="FLy-IA-jR3"/> + <constraint firstAttribute="width" constant="6" id="yba-zk-a1S"/> + </constraints> + </imageView> + </subviews> + <constraints> + <constraint firstAttribute="height" constant="50" id="16A-Om-o8o"/> + <constraint firstAttribute="bottom" secondItem="8aT-z4-IIe" secondAttribute="bottom" id="1Ft-xL-N2H"/> + <constraint firstAttribute="bottom" secondItem="mG1-O5-m2h" secondAttribute="bottom" id="2rq-C7-fXP"/> + <constraint firstItem="mG1-O5-m2h" firstAttribute="leading" secondItem="8Ey-xg-wtn" secondAttribute="trailing" id="DDx-Fk-Cct"/> + <constraint firstItem="b6U-7z-btq" firstAttribute="centerY" secondItem="Hud-Yf-U67" secondAttribute="centerY" id="R2P-rx-Na9"/> + <constraint firstItem="8Ey-xg-wtn" firstAttribute="centerY" secondItem="Hud-Yf-U67" secondAttribute="centerY" id="S9a-Rv-0E6"/> + <constraint firstItem="8Ey-xg-wtn" firstAttribute="leading" secondItem="Hud-Yf-U67" secondAttribute="leading" constant="16" id="YjP-s9-a59"/> + <constraint firstItem="b6U-7z-btq" firstAttribute="leading" secondItem="mG1-O5-m2h" secondAttribute="trailing" constant="8.5" id="Z8y-Kz-cP1"/> + <constraint firstAttribute="trailing" secondItem="8aT-z4-IIe" secondAttribute="trailing" constant="16" id="npp-n0-QD2"/> + <constraint firstAttribute="trailing" secondItem="b6U-7z-btq" secondAttribute="trailing" constant="12.5" id="y4X-0g-x7A"/> + <constraint firstItem="8aT-z4-IIe" firstAttribute="leading" secondItem="Hud-Yf-U67" secondAttribute="leading" constant="16" id="yF5-Kg-NQ5"/> + <constraint firstItem="mG1-O5-m2h" firstAttribute="top" secondItem="Hud-Yf-U67" secondAttribute="top" id="yHQ-WE-PNj"/> + </constraints> + </view> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="VuF-0X-vRB"> + <rect key="frame" x="0.0" y="250" width="393" height="50"/> + <subviews> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="学历" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Lr9-FF-35j"> + <rect key="frame" x="16" y="17.333333333333371" width="26.666666666666671" height="15.666666666666664"/> + <fontDescription key="fontDescription" type="system" pointSize="13"/> + <nil key="textColor"/> + <nil key="highlightedColor"/> + </label> + <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="点击输入" textAlignment="right" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="NG9-8J-4PE" customClass="QMUITextField"> + <rect key="frame" x="42.666666666666657" y="0.0" width="334.33333333333337" height="50"/> + <fontDescription key="fontDescription" type="system" weight="medium" pointSize="13"/> + <textInputTraits key="textInputTraits"/> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="color" keyPath="placeholderColor"> + <color key="value" red="0.71764705880000002" green="0.71764705880000002" blue="0.71764705880000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + </userDefinedRuntimeAttribute> + </userDefinedRuntimeAttributes> + </textField> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="9JI-CM-9rs"> + <rect key="frame" x="16" y="49.666666666666629" width="361" height="0.3333333333333357"/> + <color key="backgroundColor" red="0.93333333330000001" green="0.93333333330000001" blue="0.93333333330000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <constraints> + <constraint firstAttribute="height" constant="0.5" id="PyE-FG-hGt"/> + </constraints> + </view> + </subviews> + <constraints> + <constraint firstAttribute="trailing" secondItem="9JI-CM-9rs" secondAttribute="trailing" constant="16" id="01r-W0-DXE"/> + <constraint firstItem="Lr9-FF-35j" firstAttribute="leading" secondItem="VuF-0X-vRB" secondAttribute="leading" constant="16" id="BLL-bk-aNU"/> + <constraint firstAttribute="bottom" secondItem="NG9-8J-4PE" secondAttribute="bottom" id="CO3-3f-nZV"/> + <constraint firstItem="NG9-8J-4PE" firstAttribute="leading" secondItem="Lr9-FF-35j" secondAttribute="trailing" id="Jtr-Pt-5IK"/> + <constraint firstAttribute="height" constant="50" id="MDl-oD-PHE"/> + <constraint firstItem="Lr9-FF-35j" firstAttribute="centerY" secondItem="VuF-0X-vRB" secondAttribute="centerY" id="Pgd-ju-vB7"/> + <constraint firstAttribute="bottom" secondItem="9JI-CM-9rs" secondAttribute="bottom" id="hjT-qX-xwZ"/> + <constraint firstItem="9JI-CM-9rs" firstAttribute="leading" secondItem="VuF-0X-vRB" secondAttribute="leading" constant="16" id="iuV-cR-wtH"/> + <constraint firstItem="NG9-8J-4PE" firstAttribute="top" secondItem="VuF-0X-vRB" secondAttribute="top" id="jIE-qh-L0P"/> + <constraint firstAttribute="trailing" secondItem="NG9-8J-4PE" secondAttribute="trailing" constant="16" id="orH-y1-65r"/> + </constraints> + </view> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="E1q-dc-G86"> + <rect key="frame" x="0.0" y="300" width="393" height="50"/> + <subviews> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="行业" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Vsd-1g-qdV"> + <rect key="frame" x="16" y="17.333333333333371" width="26.666666666666671" height="15.666666666666664"/> + <fontDescription key="fontDescription" type="system" pointSize="13"/> + <nil key="textColor"/> + <nil key="highlightedColor"/> + </label> + <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="点击输入" textAlignment="right" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="OLk-lo-tWN" customClass="QMUITextField"> + <rect key="frame" x="42.666666666666657" y="0.0" width="334.33333333333337" height="50"/> + <fontDescription key="fontDescription" type="system" weight="medium" pointSize="13"/> + <textInputTraits key="textInputTraits"/> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="color" keyPath="placeholderColor"> + <color key="value" red="0.71764705880000002" green="0.71764705880000002" blue="0.71764705880000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + </userDefinedRuntimeAttribute> + </userDefinedRuntimeAttributes> + </textField> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="l0R-SO-mcj"> + <rect key="frame" x="16" y="49.666666666666629" width="361" height="0.3333333333333357"/> + <color key="backgroundColor" red="0.93333333330000001" green="0.93333333330000001" blue="0.93333333330000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <constraints> + <constraint firstAttribute="height" constant="0.5" id="i2F-Ts-C8Z"/> + </constraints> + </view> + </subviews> + <constraints> + <constraint firstItem="OLk-lo-tWN" firstAttribute="top" secondItem="E1q-dc-G86" secondAttribute="top" id="7bh-uw-PYk"/> + <constraint firstItem="OLk-lo-tWN" firstAttribute="leading" secondItem="Vsd-1g-qdV" secondAttribute="trailing" id="IUG-xd-GC7"/> + <constraint firstAttribute="height" constant="50" id="QZq-Tk-OMP"/> + <constraint firstItem="Vsd-1g-qdV" firstAttribute="leading" secondItem="E1q-dc-G86" secondAttribute="leading" constant="16" id="aOL-KE-pin"/> + <constraint firstItem="Vsd-1g-qdV" firstAttribute="centerY" secondItem="E1q-dc-G86" secondAttribute="centerY" id="ehv-Cp-fj1"/> + <constraint firstAttribute="bottom" secondItem="OLk-lo-tWN" secondAttribute="bottom" id="fso-of-l4r"/> + <constraint firstAttribute="trailing" secondItem="OLk-lo-tWN" secondAttribute="trailing" constant="16" id="fvo-eE-Pu6"/> + <constraint firstAttribute="bottom" secondItem="l0R-SO-mcj" secondAttribute="bottom" id="jMc-JR-IaG"/> + <constraint firstItem="l0R-SO-mcj" firstAttribute="leading" secondItem="E1q-dc-G86" secondAttribute="leading" constant="16" id="q4l-7W-HYr"/> + <constraint firstAttribute="trailing" secondItem="l0R-SO-mcj" secondAttribute="trailing" constant="16" id="tMD-P0-crq"/> + </constraints> + </view> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="MNi-4a-rXz"> + <rect key="frame" x="0.0" y="350" width="393" height="50"/> + <subviews> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="公司" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="bCL-7v-fEV"> + <rect key="frame" x="16" y="17.333333333333371" width="26.666666666666671" height="15.666666666666664"/> + <fontDescription key="fontDescription" type="system" pointSize="13"/> + <nil key="textColor"/> + <nil key="highlightedColor"/> + </label> + <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="点击输入" textAlignment="right" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="oBn-y6-tL8" customClass="QMUITextField"> + <rect key="frame" x="42.666666666666657" y="0.0" width="334.33333333333337" height="50"/> + <fontDescription key="fontDescription" type="system" weight="medium" pointSize="13"/> + <textInputTraits key="textInputTraits"/> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="color" keyPath="placeholderColor"> + <color key="value" red="0.71764705880000002" green="0.71764705880000002" blue="0.71764705880000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + </userDefinedRuntimeAttribute> + </userDefinedRuntimeAttributes> + </textField> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="GIH-G2-OUf"> + <rect key="frame" x="16" y="49.666666666666629" width="361" height="0.3333333333333357"/> + <color key="backgroundColor" red="0.93333333330000001" green="0.93333333330000001" blue="0.93333333330000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <constraints> + <constraint firstAttribute="height" constant="0.5" id="5bm-2d-i8Y"/> + </constraints> + </view> + </subviews> + <constraints> + <constraint firstAttribute="height" constant="50" id="0dc-vd-gQ4"/> + <constraint firstAttribute="trailing" secondItem="GIH-G2-OUf" secondAttribute="trailing" constant="16" id="BQO-e5-c5e"/> + <constraint firstAttribute="bottom" secondItem="GIH-G2-OUf" secondAttribute="bottom" id="Bpp-UU-Q6U"/> + <constraint firstAttribute="bottom" secondItem="oBn-y6-tL8" secondAttribute="bottom" id="Bwe-SH-Ddc"/> + <constraint firstAttribute="trailing" secondItem="oBn-y6-tL8" secondAttribute="trailing" constant="16" id="HzX-I8-cVs"/> + <constraint firstItem="oBn-y6-tL8" firstAttribute="top" secondItem="MNi-4a-rXz" secondAttribute="top" id="TPL-72-lOf"/> + <constraint firstItem="oBn-y6-tL8" firstAttribute="leading" secondItem="bCL-7v-fEV" secondAttribute="trailing" id="b1T-tb-jUm"/> + <constraint firstItem="bCL-7v-fEV" firstAttribute="leading" secondItem="MNi-4a-rXz" secondAttribute="leading" constant="16" id="haH-ci-1HT"/> + <constraint firstItem="bCL-7v-fEV" firstAttribute="centerY" secondItem="MNi-4a-rXz" secondAttribute="centerY" id="wfW-YS-6vO"/> + <constraint firstItem="GIH-G2-OUf" firstAttribute="leading" secondItem="MNi-4a-rXz" secondAttribute="leading" constant="16" id="yvh-pF-X3w"/> + </constraints> + </view> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="mce-Rc-wea"> + <rect key="frame" x="0.0" y="400" width="393" height="50"/> + <subviews> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="职业" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="F4W-m1-aF5"> + <rect key="frame" x="16" y="17.333333333333371" width="26.666666666666671" height="15.666666666666664"/> + <fontDescription key="fontDescription" type="system" pointSize="13"/> + <nil key="textColor"/> + <nil key="highlightedColor"/> + </label> + <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="点击输入" textAlignment="right" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="Shq-k9-lMd" customClass="QMUITextField"> + <rect key="frame" x="42.666666666666657" y="0.0" width="334.33333333333337" height="50"/> + <fontDescription key="fontDescription" type="system" weight="medium" pointSize="13"/> + <textInputTraits key="textInputTraits"/> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="color" keyPath="placeholderColor"> + <color key="value" red="0.71764705880000002" green="0.71764705880000002" blue="0.71764705880000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + </userDefinedRuntimeAttribute> + </userDefinedRuntimeAttributes> + </textField> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ndm-qK-8Jd"> + <rect key="frame" x="16" y="49.666666666666629" width="361" height="0.3333333333333357"/> + <color key="backgroundColor" red="0.93333333330000001" green="0.93333333330000001" blue="0.93333333330000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <constraints> + <constraint firstAttribute="height" constant="0.5" id="9mn-ZM-N4q"/> + </constraints> + </view> + </subviews> + <constraints> + <constraint firstItem="Shq-k9-lMd" firstAttribute="leading" secondItem="F4W-m1-aF5" secondAttribute="trailing" id="5TZ-hp-NyH"/> + <constraint firstAttribute="bottom" secondItem="ndm-qK-8Jd" secondAttribute="bottom" id="8Ca-2V-PSp"/> + <constraint firstAttribute="bottom" secondItem="Shq-k9-lMd" secondAttribute="bottom" id="Udz-pB-h9j"/> + <constraint firstItem="F4W-m1-aF5" firstAttribute="leading" secondItem="mce-Rc-wea" secondAttribute="leading" constant="16" id="WZv-OD-j3j"/> + <constraint firstItem="Shq-k9-lMd" firstAttribute="top" secondItem="mce-Rc-wea" secondAttribute="top" id="aHx-It-pYr"/> + <constraint firstAttribute="trailing" secondItem="ndm-qK-8Jd" secondAttribute="trailing" constant="16" id="aUC-0I-ka6"/> + <constraint firstAttribute="trailing" secondItem="Shq-k9-lMd" secondAttribute="trailing" constant="16" id="ges-LH-GU9"/> + <constraint firstAttribute="height" constant="50" id="i8T-rr-gQ7"/> + <constraint firstItem="F4W-m1-aF5" firstAttribute="centerY" secondItem="mce-Rc-wea" secondAttribute="centerY" id="m1C-hE-GAY"/> + <constraint firstItem="ndm-qK-8Jd" firstAttribute="leading" secondItem="mce-Rc-wea" secondAttribute="leading" constant="16" id="ndM-ez-jze"/> + </constraints> + </view> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="SW4-q5-eci"> + <rect key="frame" x="0.0" y="450" width="393" height="50"/> + <subviews> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="所在地" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="4yt-IS-YWS"> + <rect key="frame" x="16" y="17.333333333333371" width="40" height="15.666666666666664"/> + <fontDescription key="fontDescription" type="system" pointSize="13"/> + <nil key="textColor"/> + <nil key="highlightedColor"/> + </label> + <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="点击输入" textAlignment="right" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="apd-WL-Sql" customClass="QMUITextField"> + <rect key="frame" x="56" y="0.0" width="321" height="50"/> + <fontDescription key="fontDescription" type="system" weight="medium" pointSize="13"/> + <textInputTraits key="textInputTraits"/> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="color" keyPath="placeholderColor"> + <color key="value" red="0.71764705880000002" green="0.71764705880000002" blue="0.71764705880000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + </userDefinedRuntimeAttribute> + </userDefinedRuntimeAttributes> + </textField> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="YYn-IJ-hKv"> + <rect key="frame" x="16" y="49.666666666666629" width="361" height="0.3333333333333357"/> + <color key="backgroundColor" red="0.93333333330000001" green="0.93333333330000001" blue="0.93333333330000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <constraints> + <constraint firstAttribute="height" constant="0.5" id="ba0-33-dsm"/> + </constraints> + </view> + </subviews> + <constraints> + <constraint firstItem="4yt-IS-YWS" firstAttribute="centerY" secondItem="SW4-q5-eci" secondAttribute="centerY" id="0c3-it-KZe"/> + <constraint firstAttribute="bottom" secondItem="apd-WL-Sql" secondAttribute="bottom" id="3Lf-gu-Kk6"/> + <constraint firstItem="apd-WL-Sql" firstAttribute="leading" secondItem="4yt-IS-YWS" secondAttribute="trailing" id="85A-rE-Ugk"/> + <constraint firstAttribute="trailing" secondItem="YYn-IJ-hKv" secondAttribute="trailing" constant="16" id="Ao5-ym-HXZ"/> + <constraint firstItem="apd-WL-Sql" firstAttribute="top" secondItem="SW4-q5-eci" secondAttribute="top" id="OPo-Q7-Z9b"/> + <constraint firstAttribute="trailing" secondItem="apd-WL-Sql" secondAttribute="trailing" constant="16" id="X0R-eZ-aYb"/> + <constraint firstItem="4yt-IS-YWS" firstAttribute="leading" secondItem="SW4-q5-eci" secondAttribute="leading" constant="16" id="eH9-Hj-ApR"/> + <constraint firstItem="YYn-IJ-hKv" firstAttribute="leading" secondItem="SW4-q5-eci" secondAttribute="leading" constant="16" id="ny3-Zf-jPZ"/> + <constraint firstAttribute="height" constant="50" id="pZV-Nd-5Dh"/> + <constraint firstAttribute="bottom" secondItem="YYn-IJ-hKv" secondAttribute="bottom" id="vMB-NX-3j3"/> + </constraints> + </view> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="nql-Cf-HBj"> + <rect key="frame" x="0.0" y="500" width="393" height="50"/> + <subviews> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="故乡" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3mI-9I-yxT"> + <rect key="frame" x="16" y="17.333333333333371" width="26.666666666666671" height="15.666666666666664"/> + <fontDescription key="fontDescription" type="system" pointSize="13"/> + <nil key="textColor"/> + <nil key="highlightedColor"/> + </label> + <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="点击输入" textAlignment="right" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="8Mk-n3-NN5" customClass="QMUITextField"> + <rect key="frame" x="42.666666666666657" y="0.0" width="334.33333333333337" height="50"/> + <fontDescription key="fontDescription" type="system" weight="medium" pointSize="13"/> + <textInputTraits key="textInputTraits"/> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="color" keyPath="placeholderColor"> + <color key="value" red="0.71764705880000002" green="0.71764705880000002" blue="0.71764705880000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + </userDefinedRuntimeAttribute> + </userDefinedRuntimeAttributes> + </textField> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="OMp-aO-5J3"> + <rect key="frame" x="16" y="49.666666666666629" width="361" height="0.3333333333333357"/> + <color key="backgroundColor" red="0.93333333330000001" green="0.93333333330000001" blue="0.93333333330000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <constraints> + <constraint firstAttribute="height" constant="0.5" id="CN3-fX-hMr"/> + </constraints> + </view> + </subviews> + <constraints> + <constraint firstItem="3mI-9I-yxT" firstAttribute="leading" secondItem="nql-Cf-HBj" secondAttribute="leading" constant="16" id="1E3-0j-SdM"/> + <constraint firstAttribute="trailing" secondItem="8Mk-n3-NN5" secondAttribute="trailing" constant="16" id="KcJ-zt-ZpQ"/> + <constraint firstItem="8Mk-n3-NN5" firstAttribute="leading" secondItem="3mI-9I-yxT" secondAttribute="trailing" id="M6k-EE-3ZA"/> + <constraint firstItem="8Mk-n3-NN5" firstAttribute="top" secondItem="nql-Cf-HBj" secondAttribute="top" id="ZF2-hA-iEX"/> + <constraint firstAttribute="bottom" secondItem="8Mk-n3-NN5" secondAttribute="bottom" id="gyS-Y2-w9U"/> + <constraint firstItem="3mI-9I-yxT" firstAttribute="centerY" secondItem="nql-Cf-HBj" secondAttribute="centerY" id="iUf-O7-T3c"/> + <constraint firstAttribute="bottom" secondItem="OMp-aO-5J3" secondAttribute="bottom" id="j9r-8a-idB"/> + <constraint firstAttribute="height" constant="50" id="jqp-Pq-EWd"/> + <constraint firstItem="OMp-aO-5J3" firstAttribute="leading" secondItem="nql-Cf-HBj" secondAttribute="leading" constant="16" id="xpz-Xh-jbH"/> + <constraint firstAttribute="trailing" secondItem="OMp-aO-5J3" secondAttribute="trailing" constant="16" id="ye4-pN-1iH"/> + </constraints> + </view> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="GQe-X9-CpB"> + <rect key="frame" x="0.0" y="550" width="393" height="50"/> + <subviews> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="邮箱" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qeP-Ob-ndd"> + <rect key="frame" x="16" y="17.333333333333371" width="26.666666666666671" height="15.666666666666664"/> + <fontDescription key="fontDescription" type="system" pointSize="13"/> + <nil key="textColor"/> + <nil key="highlightedColor"/> + </label> + <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="点击输入" textAlignment="right" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="S2r-9H-Zt2" customClass="QMUITextField"> + <rect key="frame" x="42.666666666666657" y="0.0" width="334.33333333333337" height="50"/> + <fontDescription key="fontDescription" type="system" weight="medium" pointSize="13"/> + <textInputTraits key="textInputTraits"/> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="color" keyPath="placeholderColor"> + <color key="value" red="0.71764705880000002" green="0.71764705880000002" blue="0.71764705880000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + </userDefinedRuntimeAttribute> + </userDefinedRuntimeAttributes> + </textField> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="wMp-uZ-hMw"> + <rect key="frame" x="16" y="49.666666666666629" width="361" height="0.3333333333333357"/> + <color key="backgroundColor" red="0.93333333330000001" green="0.93333333330000001" blue="0.93333333330000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <constraints> + <constraint firstAttribute="height" constant="0.5" id="jsO-aZ-qno"/> + </constraints> + </view> + </subviews> + <constraints> + <constraint firstItem="S2r-9H-Zt2" firstAttribute="leading" secondItem="qeP-Ob-ndd" secondAttribute="trailing" id="20y-OE-8rb"/> + <constraint firstAttribute="trailing" secondItem="wMp-uZ-hMw" secondAttribute="trailing" constant="16" id="4OD-5G-Yfb"/> + <constraint firstAttribute="trailing" secondItem="S2r-9H-Zt2" secondAttribute="trailing" constant="16" id="9gk-GB-LkJ"/> + <constraint firstAttribute="bottom" secondItem="wMp-uZ-hMw" secondAttribute="bottom" id="WV3-pq-nQe"/> + <constraint firstItem="qeP-Ob-ndd" firstAttribute="leading" secondItem="GQe-X9-CpB" secondAttribute="leading" constant="16" id="XMm-Ay-mPW"/> + <constraint firstAttribute="bottom" secondItem="S2r-9H-Zt2" secondAttribute="bottom" id="e4k-21-uKi"/> + <constraint firstItem="S2r-9H-Zt2" firstAttribute="top" secondItem="GQe-X9-CpB" secondAttribute="top" id="hBt-da-25T"/> + <constraint firstAttribute="height" constant="50" id="j11-mI-LHY"/> + <constraint firstItem="wMp-uZ-hMw" firstAttribute="leading" secondItem="GQe-X9-CpB" secondAttribute="leading" constant="16" id="p9t-Yv-Wgx"/> + <constraint firstItem="qeP-Ob-ndd" firstAttribute="centerY" secondItem="GQe-X9-CpB" secondAttribute="centerY" id="uii-pR-l6v"/> + </constraints> + </view> + </subviews> + </stackView> + </subviews> + <constraints> + <constraint firstItem="Qz0-bC-W38" firstAttribute="centerX" secondItem="QFv-GO-e0l" secondAttribute="centerX" id="94t-gq-mro"/> + <constraint firstItem="Qz0-bC-W38" firstAttribute="centerX" secondItem="cF8-lO-m5L" secondAttribute="centerX" id="DFj-HO-f5e"/> + <constraint firstItem="Qz0-bC-W38" firstAttribute="centerY" secondItem="cF8-lO-m5L" secondAttribute="centerY" id="Fq9-Jv-vWa"/> + <constraint firstItem="ZqJ-fT-wgQ" firstAttribute="centerX" secondItem="QFv-GO-e0l" secondAttribute="centerX" id="HKR-i1-c61"/> + <constraint firstAttribute="bottom" secondItem="ZqJ-fT-wgQ" secondAttribute="bottom" id="J9F-4M-m4d"/> + <constraint firstItem="ZqJ-fT-wgQ" firstAttribute="top" secondItem="Qz0-bC-W38" secondAttribute="bottom" constant="30" id="Wv9-8J-cFo"/> + <constraint firstAttribute="trailing" secondItem="ZqJ-fT-wgQ" secondAttribute="trailing" id="ZN4-gA-jGw"/> + <constraint firstItem="Qz0-bC-W38" firstAttribute="top" secondItem="QFv-GO-e0l" secondAttribute="top" constant="80" id="aZ4-SM-G5A"/> + <constraint firstItem="ZqJ-fT-wgQ" firstAttribute="leading" secondItem="QFv-GO-e0l" secondAttribute="leading" id="tK0-be-0Qw"/> + </constraints> + </scrollView> + </subviews> + <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/> + <constraints> + <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="QFv-GO-e0l" secondAttribute="trailing" id="0fn-Nr-CG1"/> + <constraint firstItem="fnl-2z-Ty3" firstAttribute="bottom" secondItem="QFv-GO-e0l" secondAttribute="bottom" id="6Cp-4K-epa"/> + <constraint firstItem="QFv-GO-e0l" firstAttribute="top" secondItem="fnl-2z-Ty3" secondAttribute="top" id="Jud-xd-Br9"/> + <constraint firstItem="XVq-PF-coR" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="Wcz-0o-tNE"/> + <constraint firstItem="QFv-GO-e0l" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="hq7-GO-rIl"/> + <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="XVq-PF-coR" secondAttribute="trailing" id="sFS-qp-XkM"/> + <constraint firstItem="XVq-PF-coR" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" id="t6r-Jv-5wW"/> + </constraints> + <point key="canvasLocation" x="-83.206106870229007" y="19.718309859154932"/> + </view> + </objects> + <resources> + <image name="bg_voice_top" width="390" height="297"/> + <image name="icon_imgPlaceHolder" width="31.666666030883789" height="31.666666030883789"/> + <image name="icon_more" width="6" height="10.666666984558105"/> + </resources> +</document> diff --git a/XQMuse/Root/Other/View/CommonAlertSheetView.swift b/XQMuse/Root/Other/View/CommonAlertSheetView.swift new file mode 100644 index 0000000..f00f3be --- /dev/null +++ b/XQMuse/Root/Other/View/CommonAlertSheetView.swift @@ -0,0 +1,125 @@ +// +// CommonAlertSheetView.swift +// WanPai +// +// Created by 无故事王国 on 2023/10/9. +// + +import UIKit +import JQTools + +class CommonAlertSheetView: UIView,JQNibView { + + @IBOutlet weak var view_container: UIView! + @IBOutlet weak var tableView: UITableView! + @IBOutlet weak var cons_tableHei: NSLayoutConstraint! + @IBOutlet weak var cons_viewBottom: NSLayoutConstraint! + + private var items = [String]() + private var clouse:((Int)->Void)! + + override func awakeFromNib() { + super.awakeFromNib() + alpha = 0 + cons_viewBottom.constant = -JQ_ScreenW + layoutIfNeeded() + tableView.delegate = self + tableView.dataSource = self + tableView.separatorStyle = .none + tableView.register(CommonAlertSheetTCell.self, forCellReuseIdentifier: "TCell") + } + + static func show(items:[String],clouse:@escaping (Int)->Void){ + let alertView = CommonAlertSheetView.jq_loadNibView() + alertView.frame = sceneDelegate?.window?.frame ?? .zero + alertView.cons_tableHei.constant = CGFloat(items.count * 50) + sceneDelegate?.window?.addSubview(alertView) + alertView.cons_viewBottom.constant = 0 + alertView.items = items + alertView.clouse = clouse + + UIView.animate(withDuration: 0.4) { + alertView.layoutIfNeeded() + alertView.alpha = 1 + } completion: { _ in + + } + } + + override func layoutSubviews() { + super.layoutSubviews() + let totalH = Double(items.count * 50) + UIDevice.jq_safeEdges.bottom + 50 + view_container.jq_addCorners(corner: [.topLeft,.topRight], radius: 20,height: totalH) + } + + private func hidden(){ + self.cons_viewBottom.constant = -JQ_ScreenW + UIView.animate(withDuration: 0.4) { + self.alpha = 0 + self.layoutIfNeeded() + } completion: { _ in + self.removeFromSuperview() + } + } + + @IBAction func hiddenAction(_ sender: UIButton) { + hidden() + } +} + +extension CommonAlertSheetView:UITableViewDelegate{ + func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { + clouse(indexPath.row) + hidden() + } +} + +extension CommonAlertSheetView:UITableViewDataSource{ + func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + return items.count + } + + func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + let cell = tableView.dequeueReusableCell(withIdentifier: "TCell") as! CommonAlertSheetTCell + cell.label_content.text = items[indexPath.row] + return cell + } + + func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { + return 50 + } +} + +fileprivate class CommonAlertSheetTCell:UITableViewCell{ + + var label_content:UILabel! + + override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { + super.init(style: style, reuseIdentifier: reuseIdentifier) + + selectionStyle = .none + label_content = UILabel() + label_content.text = "123" + label_content.font = UIFont.systemFont(ofSize: 16, weight: .medium) + label_content.textColor = .black.withAlphaComponent(0.8) + + contentView.addSubview(label_content) + label_content.snp.makeConstraints { make in + make.center.equalToSuperview() + } + + let lineView = UIView() + lineView.backgroundColor = UIColor(hexStr: "#DBDBE7") + contentView.addSubview(lineView) + lineView.snp.makeConstraints { make in + make.left.equalTo(15) + make.right.equalTo(-15) + make.height.equalTo(0.5) + make.bottom.equalToSuperview() + } + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } +} diff --git a/XQMuse/Root/Other/View/CommonAlertSheetView.xib b/XQMuse/Root/Other/View/CommonAlertSheetView.xib new file mode 100644 index 0000000..da07b0c --- /dev/null +++ b/XQMuse/Root/Other/View/CommonAlertSheetView.xib @@ -0,0 +1,73 @@ +<?xml version="1.0" encoding="UTF-8"?> +<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="22154" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> + <device id="retina6_12" orientation="portrait" appearance="light"/> + <dependencies> + <deployment identifier="iOS"/> + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22130"/> + <capability name="Safe area layout guides" minToolsVersion="9.0"/> + <capability name="System colors in document resources" minToolsVersion="11.0"/> + <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> + </dependencies> + <objects> + <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/> + <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> + <view contentMode="scaleToFill" id="iN0-l3-epB" customClass="CommonAlertSheetView" customModule="WanPai" customModuleProvider="target"> + <rect key="frame" x="0.0" y="0.0" width="393" height="852"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <subviews> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ZCi-js-xyb"> + <rect key="frame" x="0.0" y="678" width="393" height="174"/> + <subviews> + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="5zv-r1-Tbh"> + <rect key="frame" x="0.0" y="100" width="393" height="32"/> + <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/> + <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> + <state key="normal" title="取消"> + <color key="titleColor" red="0.0" green="0.0" blue="0.0" alpha="0.40000000000000002" colorSpace="custom" customColorSpace="sRGB"/> + </state> + <connections> + <action selector="hiddenAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="ngJ-yG-9b2"/> + </connections> + </button> + <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="-1" estimatedSectionHeaderHeight="-1" sectionFooterHeight="-1" estimatedSectionFooterHeight="-1" translatesAutoresizingMaskIntoConstraints="NO" id="G6i-xu-rUK"> + <rect key="frame" x="0.0" y="0.0" width="393" height="100"/> + <color key="backgroundColor" systemColor="systemBackgroundColor"/> + <constraints> + <constraint firstAttribute="height" constant="100" id="g8g-XN-qDa"/> + </constraints> + </tableView> + </subviews> + <color key="backgroundColor" systemColor="systemBackgroundColor"/> + <constraints> + <constraint firstItem="5zv-r1-Tbh" firstAttribute="top" secondItem="G6i-xu-rUK" secondAttribute="bottom" id="9nv-QU-lZP"/> + <constraint firstItem="G6i-xu-rUK" firstAttribute="leading" secondItem="ZCi-js-xyb" secondAttribute="leading" id="CDM-qJ-EpR"/> + <constraint firstAttribute="trailing" secondItem="G6i-xu-rUK" secondAttribute="trailing" id="CXj-DB-txN"/> + <constraint firstItem="5zv-r1-Tbh" firstAttribute="leading" secondItem="ZCi-js-xyb" secondAttribute="leading" id="GTh-3u-KPb"/> + <constraint firstAttribute="trailing" secondItem="5zv-r1-Tbh" secondAttribute="trailing" id="sac-WK-U2U"/> + <constraint firstAttribute="bottomMargin" secondItem="5zv-r1-Tbh" secondAttribute="bottom" id="t8S-hN-Jjh"/> + <constraint firstItem="G6i-xu-rUK" firstAttribute="top" secondItem="ZCi-js-xyb" secondAttribute="top" id="u2B-VM-PMP"/> + </constraints> + </view> + </subviews> + <viewLayoutGuide key="safeArea" id="vUN-kp-3ea"/> + <color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.69999999999999996" colorSpace="custom" customColorSpace="sRGB"/> + <constraints> + <constraint firstAttribute="bottom" secondItem="ZCi-js-xyb" secondAttribute="bottom" id="0uK-bT-T9v"/> + <constraint firstItem="ZCi-js-xyb" firstAttribute="leading" secondItem="vUN-kp-3ea" secondAttribute="leading" id="b8O-bZ-2o6"/> + <constraint firstItem="vUN-kp-3ea" firstAttribute="trailing" secondItem="ZCi-js-xyb" secondAttribute="trailing" id="nT1-me-SnE"/> + </constraints> + <connections> + <outlet property="cons_tableHei" destination="g8g-XN-qDa" id="dhx-xA-6hC"/> + <outlet property="cons_viewBottom" destination="0uK-bT-T9v" id="Dcm-l0-a8b"/> + <outlet property="tableView" destination="G6i-xu-rUK" id="afR-iG-9IN"/> + <outlet property="view_container" destination="ZCi-js-xyb" id="Mk8-7J-xes"/> + </connections> + <point key="canvasLocation" x="139.69465648854961" y="20.422535211267608"/> + </view> + </objects> + <resources> + <systemColor name="systemBackgroundColor"> + <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> + </systemColor> + </resources> +</document> diff --git a/XQMuse/Root/Other/View/CommonDatePickerView.swift b/XQMuse/Root/Other/View/CommonDatePickerView.swift new file mode 100644 index 0000000..3242f47 --- /dev/null +++ b/XQMuse/Root/Other/View/CommonDatePickerView.swift @@ -0,0 +1,242 @@ +// +// CommonDatePickerView.swift +// WanPai +// +// Created by 无故事王国 on 2023/6/27. +// + +import UIKit +import JQTools + +class CommonDatePickerView: UIView,JQNibView{ + + enum DatePickerType{ + case YMD,YM,HHmm + } + + @IBOutlet weak var view_container: UIView! + @IBOutlet weak var cons_bottom: NSLayoutConstraint! + @IBOutlet weak var pickerView: UIPickerView! + private var type:DatePickerType! + + private var years = [Int]() + private var months = [12,11,10,9,8,7,6,5,4,3,2,1] + private var hours = [Int]() + private var minutes = [Int]() + private var days = [Int]() + private var clouse:((Int?,Int?,Int?,Int?,Int?)->Void)? + + override func awakeFromNib() { + super.awakeFromNib() + cons_bottom.constant = -(JQ_ScreenW * 0.6974) + alpha = 0 + layoutIfNeeded() + pickerView.delegate = self + pickerView.dataSource = self + } + + + /// 初始化 + /// - Parameters: + /// - before: 向上N年 + /// - after: 向下N年 + /// - type: 显示状态 + static func show(before:Int = 0,after:Int = 0,type:DatePickerType = .YM,clouse:@escaping (Int?,Int?,Int?,Int?,Int?)->Void){ + let pickerView = CommonDatePickerView.jq_loadNibView() + pickerView.type = type + pickerView.clouse = clouse + + + if type == .YM || type == .YMD{ + if before > 0{ + for i in 0...before{ + pickerView.years.append(Date().jq_nowYear() - i) + } + } + + if after > 0{ + for i in 0...after{ + pickerView.years.append(Date().jq_nowYear() + i) + } + } + } + + if type == .HHmm{ + for i in 0...24{ + pickerView.hours.append(i) + } + + for i in 0...59{ + pickerView.minutes.append(i) + } + } + + pickerView.frame = sceneDelegate?.window?.frame ?? .zero + sceneDelegate?.window?.addSubview(pickerView) + + pickerView.cons_bottom.constant = 0 + UIView.animate(withDuration: 0.4) { + pickerView.alpha = 1 + pickerView.layoutIfNeeded() + } + + pickerView.pickerView.reloadAllComponents() + } + + @IBAction func hiddenAction(_ sender: UIButton) { + cons_bottom.constant = -(JQ_ScreenW * 0.6974) + UIView.animate(withDuration: 0.4) { + self.alpha = 0 + self.layoutIfNeeded() + } completion: { _ in + self.removeFromSuperview() + } + } + + @IBAction func completeAction(_ sender: UIButton) { + + + var year:Int? + var month:Int? + var day:Int? + var hour:Int? + var minute:Int? + + switch type{ + case .YMD: + year = years[pickerView.selectedRow(inComponent: 0)] + if year == Date().jq_nowYear(){ + month = months[pickerView.selectedRow(inComponent: 1)] - (12 - Date().jq_nowMonth()) + }else{ + month = months[pickerView.selectedRow(inComponent: 1)] + } + day = pickerView.selectedRow(inComponent: 2) + 1 + case .YM: + year = years[pickerView.selectedRow(inComponent: 0)] + if year == Date().jq_nowYear(){ + month = months[pickerView.selectedRow(inComponent: 1)] - (12 - Date().jq_nowMonth()) + }else{ + month = months[pickerView.selectedRow(inComponent: 1)] + } + case .HHmm: + hour = hours[pickerView.selectedRow(inComponent: 0)] + minute = minutes[pickerView.selectedRow(inComponent: 1)] + case .none:break + } + + cons_bottom.constant = -(JQ_ScreenW * 0.6974) + UIView.animate(withDuration: 0.4) { + self.alpha = 0 + self.layoutIfNeeded() + } completion: { _ in + self.removeFromSuperview() + self.clouse?(year,month,day,hour,minute) + } + } + + + + override func layoutSubviews() { + super.layoutSubviews() + view_container.jq_addCorners(corner: [.topLeft,.topRight], radius: 20) + } +} + +extension CommonDatePickerView:UIPickerViewDelegate{ + func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { + if component == 0{ + pickerView.reloadComponent(1) + if type == .YMD{pickerView.reloadComponent(2)} + } + if component == 1{ + if type == .YMD{pickerView.reloadComponent(2)} + } + } +} + +extension CommonDatePickerView:UIPickerViewDataSource{ + func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { + + if component == 0{ + switch type{ + case .YM,.YMD:return years.count + case .HHmm:return hours.count + case .none:return 0 + } + } + + if component == 1{ + switch type{ + case .YM,.YMD: + if component == 1 && pickerView.selectedRow(inComponent: 0) == 0{ + return Date().jq_nowMonth() + } + return months.count + case .HHmm: + return minutes.count + case .none: + return 0 + } + } + + if component == 2{ + switch type{ + case .YMD: + let year = years[pickerView.selectedRow(inComponent: 0)] + let month = months[pickerView.selectedRow(inComponent: 1)] + + if year == Date().jq_nowYear() && month == Date().jq_nowMonth(){ + return Date().jq_nowDay() + }else{ + return Date.jq_getDays(year, month) + } + default:return 0 + } + } + + return 0 + } + + func numberOfComponents(in pickerView: UIPickerView) -> Int { + switch type{ + case .YM,.HHmm:return 2 + case .YMD:return 3 + case .none:return 0 + } + } + + func pickerView(_ pickerView: UIPickerView, rowHeightForComponent component: Int) -> CGFloat { + return 55 + } + + func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { + if component == 0{ + switch type{ + case .YM,.YMD:return "\(years[row])年" + case .HHmm:return String(format: "%02ld时", hours[row]) + default:return nil + } + } + + if component == 1{ + switch type{ + case .YM,.YMD: + if pickerView.selectedRow(inComponent: 0) == 0{ + return "\(11 - Date().jq_nowMonth() - row - 1)月" + } + return "\(months[row])月" + case .HHmm:return String(format: "%02ld分", minutes[row]) + default:return nil + } + } + + if component == 2{ + switch type{ + case .YMD:return "\(row + 1)日" + default:return nil + } + } + + return nil + } +} diff --git a/XQMuse/Root/Other/View/CommonDatePickerView.xib b/XQMuse/Root/Other/View/CommonDatePickerView.xib new file mode 100644 index 0000000..3c8b502 --- /dev/null +++ b/XQMuse/Root/Other/View/CommonDatePickerView.xib @@ -0,0 +1,107 @@ +<?xml version="1.0" encoding="UTF-8"?> +<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="32700.99.1234" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> + <device id="retina6_12" orientation="portrait" appearance="light"/> + <dependencies> + <deployment identifier="iOS"/> + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22685"/> + <capability name="Safe area layout guides" minToolsVersion="9.0"/> + <capability name="System colors in document resources" minToolsVersion="11.0"/> + <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> + </dependencies> + <objects> + <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/> + <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> + <view contentMode="scaleToFill" id="iN0-l3-epB" customClass="CommonDatePickerView" customModule="XQMuse" customModuleProvider="target"> + <rect key="frame" x="0.0" y="0.0" width="393" height="884"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <subviews> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="LlT-YL-J0Q"> + <rect key="frame" x="0.0" y="610" width="393" height="274"/> + <subviews> + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="dpS-e7-aKH"> + <rect key="frame" x="206.66666666666663" y="178" width="145.33333333333337" height="40"/> + <color key="backgroundColor" red="0.6705882353" green="0.8980392157" blue="0.68627450980000004" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <constraints> + <constraint firstAttribute="height" constant="40" id="x1W-VM-Uo8"/> + </constraints> + <fontDescription key="fontDescription" type="system" weight="medium" pointSize="15"/> + <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> + <state key="normal" title="确定"/> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> + <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> + <real key="value" value="20"/> + </userDefinedRuntimeAttribute> + </userDefinedRuntimeAttributes> + <connections> + <action selector="completeAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="O51-A6-ZdT"/> + </connections> + </button> + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="KFX-Q3-Kqk"> + <rect key="frame" x="41" y="178" width="145.66666666666666" height="40"/> + <constraints> + <constraint firstAttribute="height" constant="40" id="eKI-nE-L1q"/> + </constraints> + <fontDescription key="fontDescription" type="system" weight="medium" pointSize="15"/> + <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> + <state key="normal" title="取消"> + <color key="titleColor" red="0.6705882353" green="0.8980392157" blue="0.68627450980000004" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + </state> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> + <userDefinedRuntimeAttribute type="color" keyPath="jq_xibBorderColor"> + <color key="value" red="0.6705882353" green="0.8980392157" blue="0.68627450980000004" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + </userDefinedRuntimeAttribute> + <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> + <real key="value" value="20"/> + </userDefinedRuntimeAttribute> + <userDefinedRuntimeAttribute type="number" keyPath="jq_xibBorderWidth"> + <real key="value" value="1"/> + </userDefinedRuntimeAttribute> + </userDefinedRuntimeAttributes> + <connections> + <action selector="hiddenAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="FOa-f9-tFF"/> + </connections> + </button> + <pickerView contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="hoo-LT-8SC"> + <rect key="frame" x="0.0" y="22" width="393" height="156"/> + </pickerView> + </subviews> + <color key="backgroundColor" systemColor="systemBackgroundColor"/> + <constraints> + <constraint firstAttribute="width" secondItem="LlT-YL-J0Q" secondAttribute="height" multiplier="1:0.6974" id="7tH-gw-xNR"/> + <constraint firstItem="dpS-e7-aKH" firstAttribute="top" secondItem="hoo-LT-8SC" secondAttribute="bottom" id="E4y-xc-NXb"/> + <constraint firstItem="dpS-e7-aKH" firstAttribute="leading" secondItem="KFX-Q3-Kqk" secondAttribute="trailing" constant="20" id="EUP-ZJ-QpQ"/> + <constraint firstAttribute="trailing" secondItem="hoo-LT-8SC" secondAttribute="trailing" id="GVC-yd-v1o"/> + <constraint firstItem="KFX-Q3-Kqk" firstAttribute="leading" secondItem="LlT-YL-J0Q" secondAttribute="leading" constant="41" id="QuD-1k-8fM"/> + <constraint firstAttribute="trailing" secondItem="dpS-e7-aKH" secondAttribute="trailing" constant="41" id="Wqf-jx-119"/> + <constraint firstItem="dpS-e7-aKH" firstAttribute="top" secondItem="KFX-Q3-Kqk" secondAttribute="top" id="dzX-7f-D80"/> + <constraint firstItem="hoo-LT-8SC" firstAttribute="top" secondItem="LlT-YL-J0Q" secondAttribute="top" constant="22" id="ej6-ch-D31"/> + <constraint firstItem="dpS-e7-aKH" firstAttribute="width" secondItem="KFX-Q3-Kqk" secondAttribute="width" id="pGj-Ve-Sd4"/> + <constraint firstItem="hoo-LT-8SC" firstAttribute="leading" secondItem="LlT-YL-J0Q" secondAttribute="leading" id="q8I-Kr-v9b"/> + <constraint firstAttribute="bottomMargin" secondItem="dpS-e7-aKH" secondAttribute="bottom" constant="14" id="raj-SV-MKK"/> + </constraints> + </view> + </subviews> + <viewLayoutGuide key="safeArea" id="vUN-kp-3ea"/> + <color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.69999999999999996" colorSpace="custom" customColorSpace="sRGB"/> + <constraints> + <constraint firstItem="LlT-YL-J0Q" firstAttribute="leading" secondItem="vUN-kp-3ea" secondAttribute="leading" id="JEn-02-e3Y"/> + <constraint firstAttribute="bottom" secondItem="LlT-YL-J0Q" secondAttribute="bottom" id="Kqx-AY-yaK"/> + <constraint firstItem="vUN-kp-3ea" firstAttribute="trailing" secondItem="LlT-YL-J0Q" secondAttribute="trailing" id="UBC-PC-9qN"/> + </constraints> + <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/> + <connections> + <outlet property="cons_bottom" destination="Kqx-AY-yaK" id="oTJ-KY-ZVM"/> + <outlet property="pickerView" destination="hoo-LT-8SC" id="nrS-c6-gyo"/> + <outlet property="view_container" destination="LlT-YL-J0Q" id="L2L-P4-tc6"/> + </connections> + <point key="canvasLocation" x="72.51908396946564" y="31.690140845070424"/> + </view> + </objects> + <resources> + <systemColor name="systemBackgroundColor"> + <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> + </systemColor> + </resources> +</document> -- Gitblit v1.7.1