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>