杨锴
2024-08-20 ace001e14dcd4b5a230d6a3f677a6cd43fa7bc9a
fix UI
41个文件已添加
3个文件已修改
2819 ■■■■■ 已修改文件
XQMuse.xcodeproj/project.pbxproj 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Assets.xcassets/Btns/btn_good_1.imageset/Contents.json 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Assets.xcassets/Btns/btn_good_1.imageset/btn_good@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Assets.xcassets/Btns/btn_good_1.imageset/btn_good@3x.png 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Assets.xcassets/Icons/icon_imgPlaceHolder.imageset/Contents.json 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Assets.xcassets/Icons/icon_imgPlaceHolder.imageset/icon_imgPlaceHolder@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Assets.xcassets/Icons/icon_imgPlaceHolder.imageset/icon_imgPlaceHolder@3x.png 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Assets.xcassets/Icons/icon_more.imageset/Contents.json 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Assets.xcassets/Icons/icon_more.imageset/icon_more@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Assets.xcassets/Icons/icon_more.imageset/icon_more@3x.png 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Assets.xcassets/Icons/icon_msg_sys.imageset/Contents.json 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Assets.xcassets/Icons/icon_msg_sys.imageset/icon_msg_sys@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Assets.xcassets/Icons/icon_msg_sys.imageset/icon_msg_sys@3x.png 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Assets.xcassets/Icons/icon_msg_user.imageset/Contents.json 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Assets.xcassets/Icons/icon_msg_user.imageset/icon_msg_user@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Assets.xcassets/Icons/icon_msg_user.imageset/icon_msg_user@3x.png 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Assets.xcassets/Icons/icon_question.imageset/Contents.json 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Assets.xcassets/Icons/icon_question.imageset/icon_question@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Assets.xcassets/Icons/icon_question.imageset/icon_question@3x.png 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Assets.xcassets/Placeholder/bg_empty.imageset/Contents.json 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Assets.xcassets/Placeholder/bg_empty.imageset/bg_empty@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Assets.xcassets/Placeholder/bg_empty.imageset/bg_empty@3x.png 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Config/Enums/Enums.swift 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Me/CCell/EmptyCCell.swift 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Me/CCell/EmptyCCell.xib 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Me/MeVC.swift 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Me/MeVC.xib 145 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Me/TCell/MessageTCell.swift 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Me/TCell/MessageTCell.xib 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Me/VC/NoticeCenterSysDetailVC.swift 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Me/VC/NoticeCenterSysDetailVC.xib 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Me/VC/NoticeCenterUserRepeaceDetailVC.swift 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Me/VC/NoticeCenterUserRepeaceDetailVC.xib 205 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Me/VC/NoticeCenterVC.swift 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Me/VC/SettingVC.swift 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Me/VC/SettingVC.xib 243 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Me/VC/StudyListVC.swift 129 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Me/VC/StudyListVC.xib 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Me/VC/UserProfileVC.swift 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Me/VC/UserProfileVC.xib 592 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Other/View/CommonAlertSheetView.swift 125 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Other/View/CommonAlertSheetView.xib 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Other/View/CommonDatePickerView.swift 242 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Other/View/CommonDatePickerView.xib 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
XQMuse/Assets.xcassets/Btns/btn_good_1.imageset/Contents.json
New file
@@ -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
  }
}
XQMuse/Assets.xcassets/Btns/btn_good_1.imageset/btn_good@2x.png
XQMuse/Assets.xcassets/Btns/btn_good_1.imageset/btn_good@3x.png
XQMuse/Assets.xcassets/Icons/icon_imgPlaceHolder.imageset/Contents.json
New file
@@ -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
  }
}
XQMuse/Assets.xcassets/Icons/icon_imgPlaceHolder.imageset/icon_imgPlaceHolder@2x.png
XQMuse/Assets.xcassets/Icons/icon_imgPlaceHolder.imageset/icon_imgPlaceHolder@3x.png
XQMuse/Assets.xcassets/Icons/icon_more.imageset/Contents.json
New file
@@ -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
  }
}
XQMuse/Assets.xcassets/Icons/icon_more.imageset/icon_more@2x.png
XQMuse/Assets.xcassets/Icons/icon_more.imageset/icon_more@3x.png
XQMuse/Assets.xcassets/Icons/icon_msg_sys.imageset/Contents.json
New file
@@ -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
  }
}
XQMuse/Assets.xcassets/Icons/icon_msg_sys.imageset/icon_msg_sys@2x.png
XQMuse/Assets.xcassets/Icons/icon_msg_sys.imageset/icon_msg_sys@3x.png
XQMuse/Assets.xcassets/Icons/icon_msg_user.imageset/Contents.json
New file
@@ -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
  }
}
XQMuse/Assets.xcassets/Icons/icon_msg_user.imageset/icon_msg_user@2x.png
XQMuse/Assets.xcassets/Icons/icon_msg_user.imageset/icon_msg_user@3x.png
XQMuse/Assets.xcassets/Icons/icon_question.imageset/Contents.json
New file
@@ -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
  }
}
XQMuse/Assets.xcassets/Icons/icon_question.imageset/icon_question@2x.png
XQMuse/Assets.xcassets/Icons/icon_question.imageset/icon_question@3x.png
XQMuse/Assets.xcassets/Placeholder/bg_empty.imageset/Contents.json
New file
@@ -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
  }
}
XQMuse/Assets.xcassets/Placeholder/bg_empty.imageset/bg_empty@2x.png
XQMuse/Assets.xcassets/Placeholder/bg_empty.imageset/bg_empty@3x.png
XQMuse/Config/Enums/Enums.swift
New file
@@ -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
}
XQMuse/Root/Me/CCell/EmptyCCell.swift
New file
@@ -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
    }
}
XQMuse/Root/Me/CCell/EmptyCCell.xib
New file
@@ -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>
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)
                }
}
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"/>
XQMuse/Root/Me/TCell/MessageTCell.swift
New file
@@ -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
    }
}
XQMuse/Root/Me/TCell/MessageTCell.xib
New file
@@ -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>
XQMuse/Root/Me/VC/NoticeCenterSysDetailVC.swift
New file
@@ -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")
                }
}
XQMuse/Root/Me/VC/NoticeCenterSysDetailVC.xib
New file
@@ -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>
XQMuse/Root/Me/VC/NoticeCenterUserRepeaceDetailVC.swift
New file
@@ -0,0 +1,17 @@
//
//  NoticeCenterUserRepeaceDetailVC.swift
//  XQMuse
//
//  Created by 无故事王国 on 2024/8/20.
//
import UIKit
class NoticeCenterUserRepeaceDetailVC: BaseVC {
    override func viewDidLoad() {
        super.viewDidLoad()
                                title = "回复消息"
    }
}
XQMuse/Root/Me/VC/NoticeCenterUserRepeaceDetailVC.xib
New file
@@ -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>
XQMuse/Root/Me/VC/NoticeCenterVC.swift
New file
@@ -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
                }
}
XQMuse/Root/Me/VC/SettingVC.swift
New file
@@ -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")
                }
}
XQMuse/Root/Me/VC/SettingVC.xib
New file
@@ -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>
XQMuse/Root/Me/VC/StudyListVC.swift
New file
@@ -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)
                                }
                }
}
XQMuse/Root/Me/VC/StudyListVC.xib
New file
@@ -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>
XQMuse/Root/Me/VC/UserProfileVC.swift
New file
@@ -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
                }
}
XQMuse/Root/Me/VC/UserProfileVC.xib
New file
@@ -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>
XQMuse/Root/Other/View/CommonAlertSheetView.swift
New file
@@ -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")
                }
}
XQMuse/Root/Other/View/CommonAlertSheetView.xib
New file
@@ -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>
XQMuse/Root/Other/View/CommonDatePickerView.swift
New file
@@ -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
                }
}
XQMuse/Root/Other/View/CommonDatePickerView.xib
New file
@@ -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>