杨锴
2024-08-21 e978b3aa02f00859588949dfdf24778b05fe4adb
fix UI
58个文件已添加
11个文件已修改
3275 ■■■■■ 已修改文件
XQMuse.xcodeproj/project.pbxproj 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Assets.xcassets/Btns/btn_add.imageset/Contents.json 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Assets.xcassets/Btns/btn_add.imageset/btn_add@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Assets.xcassets/Btns/btn_add.imageset/btn_add@3x.png 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Assets.xcassets/Icons/icon_bankCard.imageset/Contents.json 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Assets.xcassets/Icons/icon_bankCard.imageset/icon_bankCard@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Assets.xcassets/Icons/icon_bankCard.imageset/icon_bankCard@3x.png 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Assets.xcassets/Icons/icon_choose_w.imageset/Contents.json 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Assets.xcassets/Icons/icon_choose_w.imageset/icon_choose_w@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Assets.xcassets/Icons/icon_choose_w.imageset/icon_choose_w@3x.png 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Assets.xcassets/Icons/icon_coin.imageset/Contents.json 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Assets.xcassets/Icons/icon_coin.imageset/icon_coin@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Assets.xcassets/Icons/icon_coin.imageset/icon_coin@3x.png 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Assets.xcassets/Icons/icon_like.imageset/Contents.json 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Assets.xcassets/Icons/icon_like.imageset/icon_like@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Assets.xcassets/Icons/icon_like.imageset/icon_like@3x.png 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Assets.xcassets/Icons/icon_msg.imageset/Contents.json 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Assets.xcassets/Icons/icon_msg.imageset/icon_msg@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Assets.xcassets/Icons/icon_msg.imageset/icon_msg@3x.png 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Assets.xcassets/Icons/icon_profileSetting.imageset/Contents.json 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Assets.xcassets/Icons/icon_profileSetting.imageset/icon_profileSetting@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Assets.xcassets/Icons/icon_profileSetting.imageset/icon_profileSetting@3x.png 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Assets.xcassets/Placeholder/bg_help.imageset/Contents.json 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Assets.xcassets/Placeholder/bg_help.imageset/bg_help@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Assets.xcassets/Placeholder/bg_help.imageset/bg_help@3x.png 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Assets.xcassets/Placeholder/bg_level.imageset/Contents.json 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Assets.xcassets/Placeholder/bg_level.imageset/bg_level@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Assets.xcassets/Placeholder/bg_level.imageset/bg_level@3x.png 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Assets.xcassets/Placeholder/bg_wallet.imageset/Contents.json 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Assets.xcassets/Placeholder/bg_wallet.imageset/bg_wallet@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Assets.xcassets/Placeholder/bg_wallet.imageset/bg_wallet@3x.png 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Config/Def.swift 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Home/HomeVC.swift 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Me/CCell/EmptyCCell.swift 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Me/CCell/EmptyCCell.xib 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Me/MeVC.swift 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Me/MeVC.xib 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Me/TCell/BankInfoTCell.swift 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Me/TCell/BankInfoTCell.xib 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Me/VC/AddBankInfoVC.swift 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Me/VC/AddBankInfoVC.xib 298 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Me/VC/BankWithdrawVC.swift 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Me/VC/BankWithdrawVC.xib 243 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Me/VC/BindAccountVC.swift 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Me/VC/BindAccountVC.xib 174 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Me/VC/BindPhone_1_VC.swift 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Me/VC/BindPhone_1_VC.xib 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Me/VC/BindPhone_2_VC.swift 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Me/VC/BindPhone_2_VC.xib 177 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Me/VC/BindPhone_3_VC.swift 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Me/VC/BindPhone_3_VC.xib 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Me/VC/HelpCenterVC.swift 177 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Me/VC/HelpCenterVC.xib 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Me/VC/LevelVC.swift 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Me/VC/LevelVC.xib 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Me/VC/LogoutAccountVC.swift 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Me/VC/LogoutAccountVC.xib 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Me/VC/SettingVC.swift 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Me/VC/SettingVC.xib 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Me/VC/StudyListVC.swift 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Me/VC/TreatyVC.swift 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Me/VC/WalletRechargeVC.swift 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Me/VC/WalletRechargeVC.xib 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Me/VC/WalletVC.swift 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Me/VC/WalletVC.xib 287 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Other/View/CommonAlertView.swift 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Other/View/CommonAlertView.xib 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/Root/Other/View/IdCardView.swift 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse/SceneDelegate.swift 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
XQMuse.xcodeproj/project.pbxproj
@@ -27,6 +27,8 @@
        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 */; };
        13271D852C75EF8200DE1328 /* AddBankInfoVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13271D842C75EF8200DE1328 /* AddBankInfoVC.xib */; };
        13271D862C75EF8200DE1328 /* AddBankInfoVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13271D832C75EF8200DE1328 /* AddBankInfoVC.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 */; };
@@ -81,6 +83,13 @@
        1385E0072C6C558200AADB1F /* HomeRelaxBanner_2_CCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1385E0052C6C558200AADB1F /* HomeRelaxBanner_2_CCell.xib */; };
        1385E00A2C6C57A900AADB1F /* HomeItemDetailVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1385E0082C6C57A900AADB1F /* HomeItemDetailVC.swift */; };
        1385E00B2C6C57A900AADB1F /* HomeItemDetailVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1385E0092C6C57A900AADB1F /* HomeItemDetailVC.xib */; };
        138F0C322C7594BB0072A16C /* TreatyVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 138F0C312C7594BB0072A16C /* TreatyVC.swift */; };
        138F0C352C7597CA0072A16C /* HelpCenterVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 138F0C332C7597CA0072A16C /* HelpCenterVC.swift */; };
        138F0C362C7597CA0072A16C /* HelpCenterVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 138F0C342C7597CA0072A16C /* HelpCenterVC.xib */; };
        138FE0DE2C757B2A00A964E8 /* BindPhone_1_VC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 138FE0DC2C757B2A00A964E8 /* BindPhone_1_VC.swift */; };
        138FE0DF2C757B2A00A964E8 /* BindPhone_1_VC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 138FE0DD2C757B2A00A964E8 /* BindPhone_1_VC.xib */; };
        138FE0E22C757DE900A964E8 /* BindPhone_2_VC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 138FE0E02C757DE900A964E8 /* BindPhone_2_VC.swift */; };
        138FE0E32C757DE900A964E8 /* BindPhone_2_VC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 138FE0E12C757DE900A964E8 /* BindPhone_2_VC.xib */; };
        139228AF2C6B836B006F3CB6 /* Popup_1_View.swift in Sources */ = {isa = PBXBuildFile; fileRef = 139228AE2C6B836B006F3CB6 /* Popup_1_View.swift */; };
        139228B12C6B8374006F3CB6 /* Popup_1_View.xib in Resources */ = {isa = PBXBuildFile; fileRef = 139228B02C6B8374006F3CB6 /* Popup_1_View.xib */; };
        139466472C6B8E0200F6FB15 /* UpdatePhoneVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 139466452C6B8E0200F6FB15 /* UpdatePhoneVC.swift */; };
@@ -121,12 +130,18 @@
        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 */; };
        13A379FC2C75B7280038D5C8 /* BindAccountVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13A379FB2C75B7280038D5C8 /* BindAccountVC.xib */; };
        13A379FD2C75B7280038D5C8 /* BindAccountVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13A379FA2C75B7280038D5C8 /* BindAccountVC.swift */; };
        13A37A002C75C1DE0038D5C8 /* LevelVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13A379FE2C75C1DE0038D5C8 /* LevelVC.swift */; };
        13A37A012C75C1DE0038D5C8 /* LevelVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13A379FF2C75C1DE0038D5C8 /* LevelVC.xib */; };
        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 */; };
        13A6594B2C6F4F2D00F731FA /* CourseDetail_2_TCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13A659482C6F4F2D00F731FA /* CourseDetail_2_TCell.swift */; };
        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 */; };
        13B021DB2C75DD0600414769 /* BankWithdrawVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13B021DA2C75DD0600414769 /* BankWithdrawVC.xib */; };
        13B021DC2C75DD0600414769 /* BankWithdrawVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13B021D92C75DD0600414769 /* BankWithdrawVC.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 */; };
@@ -138,11 +153,20 @@
        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 */; };
        13EA70012C75F880005DF280 /* IdCardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13EA70002C75F880005DF280 /* IdCardView.swift */; };
        13EA70042C75FA16005DF280 /* WalletRechargeVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13EA70022C75FA16005DF280 /* WalletRechargeVC.swift */; };
        13EA70052C75FA16005DF280 /* WalletRechargeVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13EA70032C75FA16005DF280 /* WalletRechargeVC.xib */; };
        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 */; };
        13F24E3D2C75866100D2BA90 /* BindPhone_3_VC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13F24E3C2C75866100D2BA90 /* BindPhone_3_VC.xib */; };
        13F24E3E2C75866100D2BA90 /* BindPhone_3_VC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13F24E3B2C75866100D2BA90 /* BindPhone_3_VC.swift */; };
        13F24E412C758DF100D2BA90 /* LogoutAccountVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13F24E402C758DF100D2BA90 /* LogoutAccountVC.xib */; };
        13F24E422C758DF100D2BA90 /* LogoutAccountVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13F24E3F2C758DF100D2BA90 /* LogoutAccountVC.swift */; };
        13F24E452C75901600D2BA90 /* CommonAlertView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13F24E432C75901500D2BA90 /* CommonAlertView.swift */; };
        13F24E462C75901600D2BA90 /* CommonAlertView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13F24E442C75901600D2BA90 /* CommonAlertView.xib */; };
        13FB6D7D2C6EE27100A0685D /* CourseOfficialItemCCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13FB6D7C2C6EE27100A0685D /* CourseOfficialItemCCell.xib */; };
        13FB6D7E2C6EE27100A0685D /* CourseOfficialItemCCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13FB6D7B2C6EE27100A0685D /* CourseOfficialItemCCell.swift */; };
        13FB6D802C6EED6000A0685D /* CourseMenuVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13FB6D7F2C6EED6000A0685D /* CourseMenuVC.swift */; };
@@ -151,6 +175,10 @@
        13FB6D872C6EF9DE00A0685D /* CourseDetialVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13FB6D862C6EF9DE00A0685D /* CourseDetialVC.swift */; };
        13FB6D8A2C6EFB4D00A0685D /* CourseDetailHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13FB6D892C6EFB4D00A0685D /* CourseDetailHeaderView.swift */; };
        13FB6D8C2C6EFB5400A0685D /* CourseDetailHeaderView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13FB6D8B2C6EFB5400A0685D /* CourseDetailHeaderView.xib */; };
        13FCCE262C75E8C400AC7E02 /* BankInfoTCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13FCCE242C75E8C400AC7E02 /* BankInfoTCell.swift */; };
        13FCCE272C75E8C400AC7E02 /* BankInfoTCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13FCCE252C75E8C400AC7E02 /* BankInfoTCell.xib */; };
        13FF0B452C75C820008E26CF /* WalletVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13FF0B432C75C820008E26CF /* WalletVC.swift */; };
        13FF0B462C75C820008E26CF /* WalletVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13FF0B442C75C820008E26CF /* WalletVC.xib */; };
        D80DD987C5D5D23DD582763D /* Pods_XQMuse.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 627C13604519744922724D64 /* Pods_XQMuse.framework */; };
/* End PBXBuildFile section */
@@ -175,6 +203,8 @@
        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>"; };
        13271D832C75EF8200DE1328 /* AddBankInfoVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddBankInfoVC.swift; sourceTree = "<group>"; };
        13271D842C75EF8200DE1328 /* AddBankInfoVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = AddBankInfoVC.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>"; };
@@ -229,6 +259,13 @@
        1385E0052C6C558200AADB1F /* HomeRelaxBanner_2_CCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = HomeRelaxBanner_2_CCell.xib; sourceTree = "<group>"; };
        1385E0082C6C57A900AADB1F /* HomeItemDetailVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeItemDetailVC.swift; sourceTree = "<group>"; };
        1385E0092C6C57A900AADB1F /* HomeItemDetailVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = HomeItemDetailVC.xib; sourceTree = "<group>"; };
        138F0C312C7594BB0072A16C /* TreatyVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TreatyVC.swift; sourceTree = "<group>"; };
        138F0C332C7597CA0072A16C /* HelpCenterVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HelpCenterVC.swift; sourceTree = "<group>"; };
        138F0C342C7597CA0072A16C /* HelpCenterVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = HelpCenterVC.xib; sourceTree = "<group>"; };
        138FE0DC2C757B2A00A964E8 /* BindPhone_1_VC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BindPhone_1_VC.swift; sourceTree = "<group>"; };
        138FE0DD2C757B2A00A964E8 /* BindPhone_1_VC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = BindPhone_1_VC.xib; sourceTree = "<group>"; };
        138FE0E02C757DE900A964E8 /* BindPhone_2_VC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BindPhone_2_VC.swift; sourceTree = "<group>"; };
        138FE0E12C757DE900A964E8 /* BindPhone_2_VC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = BindPhone_2_VC.xib; sourceTree = "<group>"; };
        139228AE2C6B836B006F3CB6 /* Popup_1_View.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Popup_1_View.swift; sourceTree = "<group>"; };
        139228B02C6B8374006F3CB6 /* Popup_1_View.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = Popup_1_View.xib; sourceTree = "<group>"; };
        139466452C6B8E0200F6FB15 /* UpdatePhoneVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdatePhoneVC.swift; sourceTree = "<group>"; };
@@ -271,12 +308,18 @@
        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>"; };
        13A379FA2C75B7280038D5C8 /* BindAccountVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BindAccountVC.swift; sourceTree = "<group>"; };
        13A379FB2C75B7280038D5C8 /* BindAccountVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = BindAccountVC.xib; sourceTree = "<group>"; };
        13A379FE2C75C1DE0038D5C8 /* LevelVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LevelVC.swift; sourceTree = "<group>"; };
        13A379FF2C75C1DE0038D5C8 /* LevelVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = LevelVC.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>"; };
        13A659492C6F4F2D00F731FA /* CourseDetail_2_TCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = CourseDetail_2_TCell.xib; sourceTree = "<group>"; };
        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>"; };
        13B021D92C75DD0600414769 /* BankWithdrawVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BankWithdrawVC.swift; sourceTree = "<group>"; };
        13B021DA2C75DD0600414769 /* BankWithdrawVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = BankWithdrawVC.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>"; };
@@ -288,11 +331,20 @@
        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>"; };
        13EA70002C75F880005DF280 /* IdCardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IdCardView.swift; sourceTree = "<group>"; };
        13EA70022C75FA16005DF280 /* WalletRechargeVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WalletRechargeVC.swift; sourceTree = "<group>"; };
        13EA70032C75FA16005DF280 /* WalletRechargeVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = WalletRechargeVC.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>"; };
        13F24E3B2C75866100D2BA90 /* BindPhone_3_VC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BindPhone_3_VC.swift; sourceTree = "<group>"; };
        13F24E3C2C75866100D2BA90 /* BindPhone_3_VC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = BindPhone_3_VC.xib; sourceTree = "<group>"; };
        13F24E3F2C758DF100D2BA90 /* LogoutAccountVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LogoutAccountVC.swift; sourceTree = "<group>"; };
        13F24E402C758DF100D2BA90 /* LogoutAccountVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = LogoutAccountVC.xib; sourceTree = "<group>"; };
        13F24E432C75901500D2BA90 /* CommonAlertView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CommonAlertView.swift; sourceTree = "<group>"; };
        13F24E442C75901600D2BA90 /* CommonAlertView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CommonAlertView.xib; sourceTree = "<group>"; };
        13FB6D7B2C6EE27100A0685D /* CourseOfficialItemCCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CourseOfficialItemCCell.swift; sourceTree = "<group>"; };
        13FB6D7C2C6EE27100A0685D /* CourseOfficialItemCCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = CourseOfficialItemCCell.xib; sourceTree = "<group>"; };
        13FB6D7F2C6EED6000A0685D /* CourseMenuVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CourseMenuVC.swift; sourceTree = "<group>"; };
@@ -301,6 +353,10 @@
        13FB6D862C6EF9DE00A0685D /* CourseDetialVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CourseDetialVC.swift; sourceTree = "<group>"; };
        13FB6D892C6EFB4D00A0685D /* CourseDetailHeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CourseDetailHeaderView.swift; sourceTree = "<group>"; };
        13FB6D8B2C6EFB5400A0685D /* CourseDetailHeaderView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = CourseDetailHeaderView.xib; sourceTree = "<group>"; };
        13FCCE242C75E8C400AC7E02 /* BankInfoTCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BankInfoTCell.swift; sourceTree = "<group>"; };
        13FCCE252C75E8C400AC7E02 /* BankInfoTCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = BankInfoTCell.xib; sourceTree = "<group>"; };
        13FF0B432C75C820008E26CF /* WalletVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WalletVC.swift; sourceTree = "<group>"; };
        13FF0B442C75C820008E26CF /* WalletVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = WalletVC.xib; sourceTree = "<group>"; };
        257B6AA3157A71622E7EABC6 /* Pods-XQMuse.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-XQMuse.debug.xcconfig"; path = "Target Support Files/Pods-XQMuse/Pods-XQMuse.debug.xcconfig"; sourceTree = "<group>"; };
        627C13604519744922724D64 /* Pods_XQMuse.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_XQMuse.framework; sourceTree = BUILT_PRODUCTS_DIR; };
        B934C5A58089E8AEA47DCFE7 /* Pods-XQMuse.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-XQMuse.release.xcconfig"; path = "Target Support Files/Pods-XQMuse/Pods-XQMuse.release.xcconfig"; sourceTree = "<group>"; };
@@ -334,6 +390,29 @@
                132DB8FD2C74826D00EF33A7 /* SettingVC.xib */,
                1311117F2C749084002877FC /* StudyListVC.swift */,
                131111802C749084002877FC /* StudyListVC.xib */,
                138FE0DC2C757B2A00A964E8 /* BindPhone_1_VC.swift */,
                138FE0DD2C757B2A00A964E8 /* BindPhone_1_VC.xib */,
                138FE0E02C757DE900A964E8 /* BindPhone_2_VC.swift */,
                138FE0E12C757DE900A964E8 /* BindPhone_2_VC.xib */,
                13F24E3B2C75866100D2BA90 /* BindPhone_3_VC.swift */,
                13F24E3C2C75866100D2BA90 /* BindPhone_3_VC.xib */,
                13F24E3F2C758DF100D2BA90 /* LogoutAccountVC.swift */,
                13F24E402C758DF100D2BA90 /* LogoutAccountVC.xib */,
                138F0C312C7594BB0072A16C /* TreatyVC.swift */,
                138F0C332C7597CA0072A16C /* HelpCenterVC.swift */,
                138F0C342C7597CA0072A16C /* HelpCenterVC.xib */,
                13A379FA2C75B7280038D5C8 /* BindAccountVC.swift */,
                13A379FB2C75B7280038D5C8 /* BindAccountVC.xib */,
                13A379FE2C75C1DE0038D5C8 /* LevelVC.swift */,
                13A379FF2C75C1DE0038D5C8 /* LevelVC.xib */,
                13FF0B432C75C820008E26CF /* WalletVC.swift */,
                13FF0B442C75C820008E26CF /* WalletVC.xib */,
                13B021D92C75DD0600414769 /* BankWithdrawVC.swift */,
                13B021DA2C75DD0600414769 /* BankWithdrawVC.xib */,
                13271D832C75EF8200DE1328 /* AddBankInfoVC.swift */,
                13271D842C75EF8200DE1328 /* AddBankInfoVC.xib */,
                13EA70022C75FA16005DF280 /* WalletRechargeVC.swift */,
                13EA70032C75FA16005DF280 /* WalletRechargeVC.xib */,
            );
            path = VC;
            sourceTree = "<group>";
@@ -659,6 +738,8 @@
            children = (
                13A0A8AC2C74757200DF08B6 /* MessageTCell.swift */,
                13A0A8AD2C74757200DF08B6 /* MessageTCell.xib */,
                13FCCE242C75E8C400AC7E02 /* BankInfoTCell.swift */,
                13FCCE252C75E8C400AC7E02 /* BankInfoTCell.xib */,
            );
            path = TCell;
            sourceTree = "<group>";
@@ -666,6 +747,8 @@
        13D256B52C6C68EB006FC2D7 /* View */ = {
            isa = PBXGroup;
            children = (
                13F24E432C75901500D2BA90 /* CommonAlertView.swift */,
                13F24E442C75901600D2BA90 /* CommonAlertView.xib */,
                13A0A8A42C746B5600DF08B6 /* CommonDatePickerView.swift */,
                13A0A8A32C746B5600DF08B6 /* CommonDatePickerView.xib */,
                13A0A89C2C746A8600DF08B6 /* CommonAlertSheetView.swift */,
@@ -679,6 +762,7 @@
                1377B4102C6DAA1900CF7CA5 /* ChooseOptView.swift */,
                1377B4122C6DAA2000CF7CA5 /* ChooseOptView.xib */,
                13334FD42C731C1B00914086 /* VideoView.swift */,
                13EA70002C75F880005DF280 /* IdCardView.swift */,
            );
            path = View;
            sourceTree = "<group>";
@@ -800,7 +884,9 @@
                13985DD42C69FC1F0046B6DC /* Home_Style_1_TCell.xib in Resources */,
                1377B4132C6DAA2000CF7CA5 /* ChooseOptView.xib in Resources */,
                13A6594E2C6F641100F731FA /* CourseDetail_2_Inner_TCell.xib in Resources */,
                13FF0B462C75C820008E26CF /* WalletVC.xib in Resources */,
                130B765E2C6C4C33006371AF /* HomeItemListVC.xib in Resources */,
                13F24E3D2C75866100D2BA90 /* BindPhone_3_VC.xib in Resources */,
                13CBC5D92C73532B00BC66C7 /* MeVC.xib in Resources */,
                1385E0072C6C558200AADB1F /* HomeRelaxBanner_2_CCell.xib in Resources */,
                131111822C749085002877FC /* StudyListVC.xib in Resources */,
@@ -811,7 +897,10 @@
                1333DC7E2C72E7A500D8ACAE /* CourseSendGiftView.xib in Resources */,
                137ABE352C6B3F64003A91C5 /* ForgotPasswordVC.xib in Resources */,
                13A0A8A52C746B5600DF08B6 /* CommonDatePickerView.xib in Resources */,
                13A37A012C75C1DE0038D5C8 /* LevelVC.xib in Resources */,
                138FE0DF2C757B2A00A964E8 /* BindPhone_1_VC.xib in Resources */,
                13FB6D842C6EEFE900A0685D /* MenuListTCell.xib in Resources */,
                138F0C362C7597CA0072A16C /* HelpCenterVC.xib in Resources */,
                1377768E2C6AFD25004FF994 /* LoginVC.xib in Resources */,
                134CC7E02C73283700EAEFB7 /* PavilionSearchVC.xib in Resources */,
                130913EE2C6DE67E00418201 /* HomeRelaxBanner_2_1_CCell.xib in Resources */,
@@ -822,7 +911,10 @@
                1377B4172C6DCC4300CF7CA5 /* Home_Style_4_Inner_1_CCell.xib in Resources */,
                13FB6D8C2C6EFB5400A0685D /* CourseDetailHeaderView.xib in Resources */,
                13985D9F2C69B2440046B6DC /* Assets.xcassets in Resources */,
                13FCCE272C75E8C400AC7E02 /* BankInfoTCell.xib in Resources */,
                13EFCDC22C6DD27A00B51AE6 /* PaymentOrderVC.xib in Resources */,
                13A379FC2C75B7280038D5C8 /* BindAccountVC.xib in Resources */,
                13F24E412C758DF100D2BA90 /* LogoutAccountVC.xib in Resources */,
                130AA4A82C72F71700F20944 /* CourseDetialVideoVC.xib in Resources */,
                13FB6D7D2C6EE27100A0685D /* CourseOfficialItemCCell.xib in Resources */,
                13D256B72C6C68F8006FC2D7 /* ShareView.xib in Resources */,
@@ -833,17 +925,21 @@
                13CBCCE42C747C3D00C67701 /* NoticeCenterUserRepeaceDetailVC.xib in Resources */,
                13985DA22C69B2440046B6DC /* Base in Resources */,
                134783D12C6C86F40096C736 /* PlaySettingView.xib in Resources */,
                138FE0E32C757DE900A964E8 /* BindPhone_2_VC.xib in Resources */,
                139C165A2C6A053000A924D9 /* Home_Style_2_TCell.xib in Resources */,
                1300BD3B2C6DFB1C000BCA5E /* VIPCenterVC.xib in Resources */,
                139466482C6B8E0200F6FB15 /* UpdatePhoneVC.xib in Resources */,
                134A453A2C6E167D00538D78 /* CourseOfficalCommendTopCCell.xib in Resources */,
                13271D852C75EF8200DE1328 /* AddBankInfoVC.xib in Resources */,
                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 */,
                13B021DB2C75DD0600414769 /* BankWithdrawVC.xib in Resources */,
                137ABE3C2C6B6BDD003A91C5 /* ForgotPasswordInputCodeVC.xib in Resources */,
                13EA70052C75FA16005DF280 /* WalletRechargeVC.xib in Resources */,
                13A0A8AE2C74757200DF08B6 /* MessageTCell.xib in Resources */,
                130913EA2C6DE33200418201 /* PaymentOrderResultVC.xib in Resources */,
                130ED7ED2C6AF05C00D0736E /* Home_Style_4_Inner_CCell.xib in Resources */,
@@ -855,6 +951,7 @@
                139C16642C6A108A00A924D9 /* HomeRelaxBannerCCell.xib in Resources */,
                13E0FBFB2C6C8BE3009997AE /* CountdownChooseListView.xib in Resources */,
                13A0A89F2C746A8700DF08B6 /* CommonAlertSheetView.xib in Resources */,
                13F24E462C75901600D2BA90 /* CommonAlertView.xib in Resources */,
                130B765A2C6C4963006371AF /* HomeRelaxVoiceCCell.xib in Resources */,
                13E160202C6CB8930027F781 /* CommentListVC.xib in Resources */,
                139228B12C6B8374006F3CB6 /* Popup_1_View.xib in Resources */,
@@ -912,23 +1009,29 @@
            files = (
                13FB6D872C6EF9DE00A0685D /* CourseDetialVC.swift in Sources */,
                132DB8FE2C74826D00EF33A7 /* SettingVC.swift in Sources */,
                138F0C352C7597CA0072A16C /* HelpCenterVC.swift in Sources */,
                13D256B42C6C68E7006FC2D7 /* ShareView.swift in Sources */,
                139466472C6B8E0200F6FB15 /* UpdatePhoneVC.swift in Sources */,
                13A37A002C75C1DE0038D5C8 /* LevelVC.swift in Sources */,
                137175CB2C6C412A00B38EF1 /* BackgroundVoiceVC.swift in Sources */,
                137776922C6AFE69004FF994 /* SearchVC.swift in Sources */,
                13B021DC2C75DD0600414769 /* BankWithdrawVC.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 */,
                13FCCE262C75E8C400AC7E02 /* BankInfoTCell.swift in Sources */,
                13985DAF2C69B7B00046B6DC /* BaseNav.swift in Sources */,
                134A45352C6E0E0000538D78 /* CourseVCTeacherSpecialVC.swift in Sources */,
                134A45392C6E167D00538D78 /* CourseOfficalCommendTopCCell.swift in Sources */,
                138FE0E22C757DE900A964E8 /* BindPhone_2_VC.swift in Sources */,
                13985D982C69B2410046B6DC /* SceneDelegate.swift in Sources */,
                13985DBD2C69DDF30046B6DC /* HomeTopMenuView.swift in Sources */,
                1377B4112C6DAA1900CF7CA5 /* ChooseOptView.swift in Sources */,
                13CBCCDF2C74793D00C67701 /* NoticeCenterSysDetailVC.swift in Sources */,
                13F24E452C75901600D2BA90 /* CommonAlertView.swift in Sources */,
                1385E0062C6C558200AADB1F /* HomeRelaxBanner_2_CCell.swift in Sources */,
                130913EB2C6DE33200418201 /* PaymentOrderResultVC.swift in Sources */,
                13A0A8AF2C74757200DF08B6 /* MessageTCell.swift in Sources */,
@@ -938,6 +1041,7 @@
                134A45322C6E0D6400538D78 /* CourseVCOfficalCommentVC.swift in Sources */,
                139C16602C6A0FBB00A924D9 /* TestLeftRightCollectionViewFlowLayout.swift in Sources */,
                13985DC72C69E9550046B6DC /* CourseVC.swift in Sources */,
                13A379FD2C75B7280038D5C8 /* BindAccountVC.swift in Sources */,
                1385E0022C6C4F1200AADB1F /* Services.swift in Sources */,
                13FB6D8A2C6EFB4D00A0685D /* CourseDetailHeaderView.swift in Sources */,
                13985DB82C69B80D0046B6DC /* Themes.swift in Sources */,
@@ -948,16 +1052,19 @@
                139228AF2C6B836B006F3CB6 /* Popup_1_View.swift in Sources */,
                1336EFA72C6DEC640075E070 /* PaymentOrderResultTopView.swift in Sources */,
                13CBCCE32C747C3D00C67701 /* NoticeCenterUserRepeaceDetailVC.swift in Sources */,
                138FE0DE2C757B2A00A964E8 /* BindPhone_1_VC.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 */,
                138F0C322C7594BB0072A16C /* TreatyVC.swift in Sources */,
                13985DC42C69E0BF0046B6DC /* HomeTopMenuCCell.swift in Sources */,
                1385E00A2C6C57A900AADB1F /* HomeItemDetailVC.swift in Sources */,
                1333DC7C2C72E78F00D8ACAE /* CourseSendGiftView.swift in Sources */,
                13391E032C73334000B9513F /* PavilionDetailVC.swift in Sources */,
                134783CF2C6C86EC0096C736 /* PlaySettingView.swift in Sources */,
                13F24E3E2C75866100D2BA90 /* BindPhone_3_VC.swift in Sources */,
                139C16592C6A053000A924D9 /* Home_Style_2_TCell.swift in Sources */,
                130B76592C6C4963006371AF /* HomeRelaxVoiceCCell.swift in Sources */,
                137ABE382C6B6641003A91C5 /* WebVC.swift in Sources */,
@@ -972,20 +1079,25 @@
                13A0A8A22C746AE600DF08B6 /* Enums.swift in Sources */,
                1377B40F2C6D93FA00CF7CA5 /* CommentCommentHeaderView.swift in Sources */,
                1377B40C2C6D936A00CF7CA5 /* CommentUserInputContentTCell.swift in Sources */,
                13EA70042C75FA16005DF280 /* WalletRechargeVC.swift in Sources */,
                1385DFFA2C6C4EBC00AADB1F /* RefreshModel.swift in Sources */,
                134CC7E12C73283700EAEFB7 /* PavilionSearchVC.swift in Sources */,
                13EA70012C75F880005DF280 /* IdCardView.swift in Sources */,
                139C16632C6A108A00A924D9 /* HomeRelaxBannerCCell.swift in Sources */,
                131E75C52C6B87C500E2C85D /* ForgotPasswordChangeVC.swift in Sources */,
                13A6594F2C6F641100F731FA /* CourseDetail_2_Inner_TCell.swift in Sources */,
                13334FD52C731C1B00914086 /* VideoView.swift in Sources */,
                13FF0B452C75C820008E26CF /* WalletVC.swift in Sources */,
                130ED7E72C6AEF5900D0736E /* Home_Style_4_TCell.swift in Sources */,
                13EC08912C74990B00E00128 /* EmptyCCell.swift in Sources */,
                13F24E422C758DF100D2BA90 /* LogoutAccountVC.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 */,
                13271D862C75EF8200DE1328 /* AddBankInfoVC.swift in Sources */,
                137ABE3B2C6B6BDD003A91C5 /* ForgotPasswordInputCodeVC.swift in Sources */,
                130B765D2C6C4C33006371AF /* HomeItemListVC.swift in Sources */,
                1385E0002C6C4F1200AADB1F /* NetworkRequest.swift in Sources */,
XQMuse/Assets.xcassets/Btns/btn_add.imageset/Contents.json
New file
@@ -0,0 +1,22 @@
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x"
    },
    {
      "filename" : "btn_add@2x.png",
      "idiom" : "universal",
      "scale" : "2x"
    },
    {
      "filename" : "btn_add@3x.png",
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}
XQMuse/Assets.xcassets/Btns/btn_add.imageset/btn_add@2x.png
XQMuse/Assets.xcassets/Btns/btn_add.imageset/btn_add@3x.png
XQMuse/Assets.xcassets/Icons/icon_bankCard.imageset/Contents.json
New file
@@ -0,0 +1,22 @@
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x"
    },
    {
      "filename" : "icon_bankCard@2x.png",
      "idiom" : "universal",
      "scale" : "2x"
    },
    {
      "filename" : "icon_bankCard@3x.png",
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}
XQMuse/Assets.xcassets/Icons/icon_bankCard.imageset/icon_bankCard@2x.png
XQMuse/Assets.xcassets/Icons/icon_bankCard.imageset/icon_bankCard@3x.png
XQMuse/Assets.xcassets/Icons/icon_choose_w.imageset/Contents.json
New file
@@ -0,0 +1,22 @@
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x"
    },
    {
      "filename" : "icon_choose_w@2x.png",
      "idiom" : "universal",
      "scale" : "2x"
    },
    {
      "filename" : "icon_choose_w@3x.png",
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}
XQMuse/Assets.xcassets/Icons/icon_choose_w.imageset/icon_choose_w@2x.png
XQMuse/Assets.xcassets/Icons/icon_choose_w.imageset/icon_choose_w@3x.png
XQMuse/Assets.xcassets/Icons/icon_coin.imageset/Contents.json
New file
@@ -0,0 +1,22 @@
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x"
    },
    {
      "filename" : "icon_coin@2x.png",
      "idiom" : "universal",
      "scale" : "2x"
    },
    {
      "filename" : "icon_coin@3x.png",
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}
XQMuse/Assets.xcassets/Icons/icon_coin.imageset/icon_coin@2x.png
XQMuse/Assets.xcassets/Icons/icon_coin.imageset/icon_coin@3x.png
XQMuse/Assets.xcassets/Icons/icon_like.imageset/Contents.json
New file
@@ -0,0 +1,22 @@
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x"
    },
    {
      "filename" : "icon_like@2x.png",
      "idiom" : "universal",
      "scale" : "2x"
    },
    {
      "filename" : "icon_like@3x.png",
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}
XQMuse/Assets.xcassets/Icons/icon_like.imageset/icon_like@2x.png
XQMuse/Assets.xcassets/Icons/icon_like.imageset/icon_like@3x.png
XQMuse/Assets.xcassets/Icons/icon_msg.imageset/Contents.json
New file
@@ -0,0 +1,22 @@
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x"
    },
    {
      "filename" : "icon_msg@2x.png",
      "idiom" : "universal",
      "scale" : "2x"
    },
    {
      "filename" : "icon_msg@3x.png",
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}
XQMuse/Assets.xcassets/Icons/icon_msg.imageset/icon_msg@2x.png
XQMuse/Assets.xcassets/Icons/icon_msg.imageset/icon_msg@3x.png
XQMuse/Assets.xcassets/Icons/icon_profileSetting.imageset/Contents.json
New file
@@ -0,0 +1,22 @@
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x"
    },
    {
      "filename" : "icon_profileSetting@2x.png",
      "idiom" : "universal",
      "scale" : "2x"
    },
    {
      "filename" : "icon_profileSetting@3x.png",
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}
XQMuse/Assets.xcassets/Icons/icon_profileSetting.imageset/icon_profileSetting@2x.png
XQMuse/Assets.xcassets/Icons/icon_profileSetting.imageset/icon_profileSetting@3x.png
XQMuse/Assets.xcassets/Placeholder/bg_help.imageset/Contents.json
New file
@@ -0,0 +1,22 @@
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x"
    },
    {
      "filename" : "bg_help@2x.png",
      "idiom" : "universal",
      "scale" : "2x"
    },
    {
      "filename" : "bg_help@3x.png",
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}
XQMuse/Assets.xcassets/Placeholder/bg_help.imageset/bg_help@2x.png
XQMuse/Assets.xcassets/Placeholder/bg_help.imageset/bg_help@3x.png
XQMuse/Assets.xcassets/Placeholder/bg_level.imageset/Contents.json
New file
@@ -0,0 +1,22 @@
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x"
    },
    {
      "filename" : "bg_level@2x.png",
      "idiom" : "universal",
      "scale" : "2x"
    },
    {
      "filename" : "bg_level@3x.png",
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}
XQMuse/Assets.xcassets/Placeholder/bg_level.imageset/bg_level@2x.png
XQMuse/Assets.xcassets/Placeholder/bg_level.imageset/bg_level@3x.png
XQMuse/Assets.xcassets/Placeholder/bg_wallet.imageset/Contents.json
New file
@@ -0,0 +1,22 @@
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x"
    },
    {
      "filename" : "bg_wallet@2x.png",
      "idiom" : "universal",
      "scale" : "2x"
    },
    {
      "filename" : "bg_wallet@3x.png",
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}
XQMuse/Assets.xcassets/Placeholder/bg_wallet.imageset/bg_wallet@2x.png
XQMuse/Assets.xcassets/Placeholder/bg_wallet.imageset/bg_wallet@3x.png
XQMuse/Config/Def.swift
@@ -97,7 +97,7 @@
extension UIButton {
                func localGradientColor(cornerRadius:Double,bounds:CGRect? = nil){
                                self.layer.sublayers?.removeAll(where: {$0 is CAGradientLayer})
                                self.jq_gradientColor(colorArr: [UIColor(hexStr: "#FD8802").cgColor,UIColor(hexStr: "#FE7703").cgColor], cornerRadius: cornerRadius, startPoint: CGPoint(x: 0, y: 0), endPoint: CGPoint(x: 0, y: 1), bounds: bounds)
                                self.jq_gradientColor(colorArr: [UIColor(hexStr: "#8EA47A").cgColor,UIColor(hexStr: "#AFCA98").cgColor], cornerRadius: cornerRadius, startPoint: CGPoint(x: 0, y: 0), endPoint: CGPoint(x: 0, y: 1), bounds: bounds)
                }
                public func openCountDown(_ t:Int = 59,defultTitle:String = "获取验证码"){
XQMuse/Root/Home/HomeVC.swift
@@ -29,6 +29,9 @@
                                titleItems.append(TitleItem(title: "放松助眠", subTitle: "与内心的宁静与喜悦入睡",hasMore:true))
                                titleItems.append(TitleItem(title: "放松助眠", subTitle: "与内心的宁静与喜悦入睡",hasMore:true))
                                titleItems.append(TitleItem(title: "放松助眠", subTitle: "与内心的宁静与喜悦入睡",hasMore:true))
                                let vc = WalletRechargeVC()
                                push(vc: vc)
    }
                override func setUI() {
XQMuse/Root/Me/CCell/EmptyCCell.swift
@@ -6,6 +6,7 @@
//
import UIKit
import JQTools
class EmptyCCell: UICollectionViewCell {
@@ -14,4 +15,7 @@
        // Initialization code
    }
                @IBAction func needPaymentCourseAction(_ sender: UIButton) {
                                JQ_currentNavigationController().popToRootViewController(animated: true)
                }
}
XQMuse/Root/Me/CCell/EmptyCCell.xib
@@ -44,6 +44,9 @@
                                <real key="value" value="21.25"/>
                            </userDefinedRuntimeAttribute>
                        </userDefinedRuntimeAttributes>
                        <connections>
                            <action selector="needPaymentCourseAction:" destination="gTV-IL-0wX" eventType="touchUpInside" id="8ex-gC-5Na"/>
                        </connections>
                    </button>
                </subviews>
            </view>
XQMuse/Root/Me/MeVC.swift
@@ -20,10 +20,14 @@
                @IBOutlet weak var btn_customer: QMUIButton!
                @IBOutlet weak var btn_setting: QMUIButton!
                @IBOutlet weak var btn_share: QMUIButton!
                @IBOutlet weak var view_rank: GradientView!
                
                override func viewDidLoad() {
        super.viewDidLoad()
                                let tap = UITapGestureRecognizer(target: self, action: #selector(rankAction))
                                view_rank.isUserInteractionEnabled = true
                                view_rank.addGestureRecognizer(tap)
    }
                override func setUI() {
@@ -42,6 +46,12 @@
                                btn_share.imagePosition = .top
                }
                @objc func rankAction(){
                                let vc = WebVC()
                                vc.title = "爱心榜单"
                                push(vc: vc)
                }
                @IBAction func vipCenterAction(_ sender: Any) {
                                 let vc = VIPCenterVC()
                                push(vc: vc)
@@ -54,7 +64,8 @@
                }
                @IBAction func studyLevelAction(_ sender: TapBtn) {
                                let vc = LevelVC()
                                push(vc: vc)
                }
                @IBAction func systemMessageAction(_ sender: UIButton) {
@@ -76,7 +87,8 @@
                //我的账户
                @IBAction func myAccountAction(_ sender: QMUIButton) {
                                 let vc = WalletVC()
                                push(vc: vc)
                }
                //观看历史
@@ -110,7 +122,7 @@
                override init(frame: CGRect) {
                                super.init(frame: frame)
                                jq_gradientColor(colorArr: [UIColor(hexString: "#F3FFF8 100%")!.cgColor,UIColor.white.cgColor])
                                jq_gradientColor(colorArr: [UIColor(hexString: "#F3FFF8")!.cgColor,UIColor.white.cgColor])
                }
                
                required init?(coder: NSCoder) {
XQMuse/Root/Me/MeVC.xib
@@ -20,6 +20,7 @@
                <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"/>
                <outlet property="view_rank" destination="4fN-Be-XLG" id="3h6-0r-QKI"/>
            </connections>
        </placeholder>
        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
@@ -516,24 +517,25 @@
                                </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"/>
                                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                                    <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"/>
                                    <state key="normal" image="icon_profileSetting"/>
                                    <connections>
                                        <action selector="settingAction:" destination="-1" eventType="touchUpInside" id="UIe-XJ-qJa"/>
                                        <action selector="userProfileAction:" destination="-1" eventType="touchUpInside" id="f8T-XY-tt1"/>
                                    </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"/>
                                    <state key="normal" image="icon_msg"/>
                                    <connections>
                                        <action selector="systemMessageAction:" destination="-1" eventType="touchUpInside" id="FcH-jm-Qng"/>
                                    </connections>
@@ -605,6 +607,8 @@
        <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_msg" width="19" height="17.666666030883789"/>
        <image name="icon_profileSetting" width="20.666666030883789" height="18.666666030883789"/>
        <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/BankInfoTCell.swift
New file
@@ -0,0 +1,30 @@
//
//  BankInfoTCell.swift
//  XQMuse
//
//  Created by 无故事王国 on 2024/8/21.
//
import UIKit
import JQTools
class BankInfoTCell: UITableViewCell {
                @IBOutlet weak var view_content: UIView!
                @IBOutlet weak var label_title: UILabel!
                @IBOutlet weak var label_bankNumber: UILabel!
                @IBOutlet weak var img_select: UIImageView!
                override func awakeFromNib() {
        super.awakeFromNib()
                                selectionStyle = .none
    }
                func isSelect(_ state:Bool){
                                view_content.backgroundColor = state ? UIColor(hexString: "#AEC997")!:.white
                                label_title.textColor = state ? .white:UIColor(hexString: "#AEC997")!
                                label_bankNumber.textColor = state ? .white:UIColor(hexString: "#AEC997")!
                                view_content.jq_borderWidth = state ? 0:1
                                img_select.isHidden = !state
                }
}
XQMuse/Root/Me/TCell/BankInfoTCell.xib
New file
@@ -0,0 +1,89 @@
<?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"/>
        <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="_BankInfoTCell" rowHeight="92" id="KGk-i7-Jjw" customClass="BankInfoTCell" customModule="XQMuse" customModuleProvider="target">
            <rect key="frame" x="0.0" y="0.0" width="361" height="92"/>
            <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="361" height="92"/>
                <autoresizingMask key="autoresizingMask"/>
                <subviews>
                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="PtR-yG-QTE">
                        <rect key="frame" x="14" y="5" width="333" height="82"/>
                        <subviews>
                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="eCW-IO-cFg">
                                <rect key="frame" x="9" y="13" width="14.666666666666664" height="22"/>
                                <constraints>
                                    <constraint firstAttribute="height" constant="22" id="iLY-cn-nYt"/>
                                </constraints>
                                <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/>
                                <nil key="textColor"/>
                                <nil key="highlightedColor"/>
                            </label>
                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="**** **** **** **** 0011" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="OAO-Xr-E6r">
                                <rect key="frame" x="9" y="42" width="150.33333333333334" height="17"/>
                                <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
                                <nil key="textColor"/>
                                <nil key="highlightedColor"/>
                            </label>
                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_choose_w" translatesAutoresizingMaskIntoConstraints="NO" id="kY1-z0-1Jq">
                                <rect key="frame" x="300" y="30" width="22" height="22"/>
                            </imageView>
                        </subviews>
                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                        <constraints>
                            <constraint firstItem="OAO-Xr-E6r" firstAttribute="leading" secondItem="eCW-IO-cFg" secondAttribute="leading" id="FjO-g9-3Zj"/>
                            <constraint firstItem="eCW-IO-cFg" firstAttribute="leading" secondItem="PtR-yG-QTE" secondAttribute="leading" constant="9" id="HJy-Us-YId"/>
                            <constraint firstAttribute="trailing" secondItem="kY1-z0-1Jq" secondAttribute="trailing" constant="11" id="WLE-dW-YqR"/>
                            <constraint firstItem="OAO-Xr-E6r" firstAttribute="top" secondItem="eCW-IO-cFg" secondAttribute="bottom" constant="7" id="qNX-xY-nvO"/>
                            <constraint firstItem="kY1-z0-1Jq" firstAttribute="centerY" secondItem="PtR-yG-QTE" secondAttribute="centerY" id="sHt-WH-DT2"/>
                            <constraint firstItem="eCW-IO-cFg" firstAttribute="top" secondItem="PtR-yG-QTE" secondAttribute="top" constant="13" id="zlW-54-qzr"/>
                        </constraints>
                        <userDefinedRuntimeAttributes>
                            <userDefinedRuntimeAttribute type="number" keyPath="ld_borderWidthXIB">
                                <real key="value" value="1"/>
                            </userDefinedRuntimeAttribute>
                            <userDefinedRuntimeAttribute type="color" keyPath="ld_borderColorXIB">
                                <color key="value" red="0.68235294117647061" green="0.78823529411764703" blue="0.59215686274509804" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                            </userDefinedRuntimeAttribute>
                            <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/>
                            <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB">
                                <real key="value" value="4"/>
                            </userDefinedRuntimeAttribute>
                        </userDefinedRuntimeAttributes>
                    </view>
                </subviews>
                <constraints>
                    <constraint firstItem="PtR-yG-QTE" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="5" id="2Bi-i6-v71"/>
                    <constraint firstItem="PtR-yG-QTE" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="14" id="PCV-aC-8Ku"/>
                    <constraint firstAttribute="trailing" secondItem="PtR-yG-QTE" secondAttribute="trailing" constant="14" id="cTB-hA-emS"/>
                    <constraint firstAttribute="bottom" secondItem="PtR-yG-QTE" secondAttribute="bottom" constant="5" id="lsg-T8-0R2"/>
                </constraints>
            </tableViewCellContentView>
            <viewLayoutGuide key="safeArea" id="njF-e1-oar"/>
            <connections>
                <outlet property="img_select" destination="kY1-z0-1Jq" id="3Ey-fb-0TH"/>
                <outlet property="label_bankNumber" destination="OAO-Xr-E6r" id="Xpw-Hr-dYm"/>
                <outlet property="label_title" destination="eCW-IO-cFg" id="jvN-e4-99b"/>
                <outlet property="view_content" destination="PtR-yG-QTE" id="lJF-my-mFC"/>
            </connections>
            <point key="canvasLocation" x="90.839694656488547" y="37.323943661971832"/>
        </tableViewCell>
    </objects>
    <resources>
        <image name="icon_choose_w" width="22" height="22"/>
        <systemColor name="systemBackgroundColor">
            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
        </systemColor>
    </resources>
</document>
XQMuse/Root/Me/VC/AddBankInfoVC.swift
New file
@@ -0,0 +1,31 @@
//
//  AddBankInfoVC.swift
//  XQMuse
//
//  Created by 无故事王国 on 2024/8/21.
//
import UIKit
import QMUIKit
class AddBankInfoVC: BaseVC {
                @IBOutlet weak var tf_idcard: QMUITextField!
                @IBOutlet weak var btn_add: UIButton!
                override func viewDidLoad() {
        super.viewDidLoad()
                                title = "添加银行卡"
                                let idCardView = IDCardView()
                                idCardView.box.bind { [weak self] text in
                                                self?.tf_idcard.text = text
                                }
                                tf_idcard.inputView = idCardView
    }
                override func setUI() {
                                view.backgroundColor = UIColor(hexString: "f6f6f6")
                                btn_add.localGradientColor(cornerRadius: 20)
                }
}
XQMuse/Root/Me/VC/AddBankInfoVC.xib
New file
@@ -0,0 +1,298 @@
<?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="AddBankInfoVC" customModule="XQMuse" customModuleProvider="target">
            <connections>
                <outlet property="btn_add" destination="Flq-AM-akx" id="ZK1-cZ-cIZ"/>
                <outlet property="tf_idcard" destination="c3P-PL-JWg" id="f2k-T7-8VT"/>
                <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="fwC-BB-rdM">
                    <rect key="frame" x="14" y="69" width="365" height="100"/>
                    <subviews>
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Jy4-zc-pml">
                            <rect key="frame" x="0.0" y="0.0" width="365" 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="hKJ-gl-2cy">
                                    <rect key="frame" x="10.000000000000004" y="15.333333333333327" width="57.333333333333343" height="19.333333333333329"/>
                                    <fontDescription key="fontDescription" type="system" pointSize="16"/>
                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/>
                                    <nil key="highlightedColor"/>
                                </label>
                                <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="elz-Zp-tTi">
                                    <rect key="frame" x="90" y="14.666666666666671" width="265" height="21"/>
                                    <fontDescription key="fontDescription" type="system" pointSize="16"/>
                                    <textInputTraits key="textInputTraits"/>
                                </textField>
                            </subviews>
                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                            <constraints>
                                <constraint firstItem="elz-Zp-tTi" firstAttribute="leading" secondItem="Jy4-zc-pml" secondAttribute="leading" constant="90" id="1BF-oj-NMt"/>
                                <constraint firstItem="elz-Zp-tTi" firstAttribute="centerY" secondItem="Jy4-zc-pml" secondAttribute="centerY" id="1Kn-bP-RY7"/>
                                <constraint firstAttribute="height" constant="50" id="3Zh-u8-M1C"/>
                                <constraint firstItem="hKJ-gl-2cy" firstAttribute="centerY" secondItem="Jy4-zc-pml" secondAttribute="centerY" id="7zt-ka-CgB"/>
                                <constraint firstAttribute="trailing" secondItem="elz-Zp-tTi" secondAttribute="trailing" constant="10" id="OkR-wC-Udz"/>
                                <constraint firstItem="hKJ-gl-2cy" firstAttribute="leading" secondItem="Jy4-zc-pml" secondAttribute="leading" constant="10" id="k1o-Hk-VDx"/>
                            </constraints>
                        </view>
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="zc2-oY-JYR">
                            <rect key="frame" x="0.0" y="50" width="365" 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="x3A-cI-UqF">
                                    <rect key="frame" x="10" y="15.333333333333341" width="41" height="19.333333333333329"/>
                                    <fontDescription key="fontDescription" type="system" pointSize="16"/>
                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/>
                                    <nil key="highlightedColor"/>
                                </label>
                                <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="lfq-e1-X3C" customClass="QMUITextField">
                                    <rect key="frame" x="90" y="14.666666666666657" width="265" height="21"/>
                                    <fontDescription key="fontDescription" type="system" pointSize="16"/>
                                    <textInputTraits key="textInputTraits" keyboardType="numberPad"/>
                                </textField>
                            </subviews>
                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                            <constraints>
                                <constraint firstAttribute="trailing" secondItem="lfq-e1-X3C" secondAttribute="trailing" constant="10" id="E8d-cX-u7h"/>
                                <constraint firstAttribute="height" constant="50" id="Jp7-4K-yXE"/>
                                <constraint firstItem="lfq-e1-X3C" firstAttribute="leading" secondItem="zc2-oY-JYR" secondAttribute="leading" constant="90" id="cSs-Tw-5UC"/>
                                <constraint firstItem="lfq-e1-X3C" firstAttribute="centerY" secondItem="zc2-oY-JYR" secondAttribute="centerY" id="dqL-nq-EKE"/>
                                <constraint firstItem="x3A-cI-UqF" firstAttribute="centerY" secondItem="zc2-oY-JYR" secondAttribute="centerY" id="ei5-VU-Gz6"/>
                                <constraint firstItem="x3A-cI-UqF" firstAttribute="leading" secondItem="zc2-oY-JYR" secondAttribute="leading" constant="10" id="xzD-i2-48u"/>
                            </constraints>
                        </view>
                    </subviews>
                    <userDefinedRuntimeAttributes>
                        <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/>
                        <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB">
                            <real key="value" value="10"/>
                        </userDefinedRuntimeAttribute>
                    </userDefinedRuntimeAttributes>
                </stackView>
                <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="07i-g0-s3b">
                    <rect key="frame" x="14" y="179" width="365" height="200"/>
                    <subviews>
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Kbs-HI-2sJ">
                            <rect key="frame" x="0.0" y="0.0" width="365" 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="Wd8-Qe-HeI">
                                    <rect key="frame" x="10.000000000000004" y="15.333333333333341" width="57.333333333333343" height="19.333333333333329"/>
                                    <fontDescription key="fontDescription" type="system" pointSize="16"/>
                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/>
                                    <nil key="highlightedColor"/>
                                </label>
                                <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="P5B-z6-sMX" customClass="QMUITextField">
                                    <rect key="frame" x="90" y="14.666666666666657" width="265" height="21"/>
                                    <fontDescription key="fontDescription" type="system" pointSize="16"/>
                                    <textInputTraits key="textInputTraits"/>
                                </textField>
                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="7jm-Xo-v03">
                                    <rect key="frame" x="10" y="49" width="345" height="1"/>
                                    <color key="backgroundColor" red="0.59215686274509804" green="0.59215686274509804" blue="0.59215686274509804" alpha="0.12" colorSpace="custom" customColorSpace="sRGB"/>
                                    <constraints>
                                        <constraint firstAttribute="height" constant="1" id="WoJ-HQ-xbd"/>
                                    </constraints>
                                </view>
                            </subviews>
                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                            <constraints>
                                <constraint firstItem="Wd8-Qe-HeI" firstAttribute="centerY" secondItem="Kbs-HI-2sJ" secondAttribute="centerY" id="KfX-Pb-SPf"/>
                                <constraint firstItem="7jm-Xo-v03" firstAttribute="leading" secondItem="Kbs-HI-2sJ" secondAttribute="leading" constant="10" id="L1v-Df-sG6"/>
                                <constraint firstAttribute="trailing" secondItem="7jm-Xo-v03" secondAttribute="trailing" constant="10" id="RMI-7W-hcX"/>
                                <constraint firstItem="Wd8-Qe-HeI" firstAttribute="leading" secondItem="Kbs-HI-2sJ" secondAttribute="leading" constant="10" id="V8E-UD-U8J"/>
                                <constraint firstAttribute="height" constant="50" id="iwX-Jw-D92"/>
                                <constraint firstAttribute="trailing" secondItem="P5B-z6-sMX" secondAttribute="trailing" constant="10" id="r1v-0m-5JB"/>
                                <constraint firstItem="P5B-z6-sMX" firstAttribute="leading" secondItem="Kbs-HI-2sJ" secondAttribute="leading" constant="90" id="tVi-gn-5Gs"/>
                                <constraint firstItem="P5B-z6-sMX" firstAttribute="centerY" secondItem="Kbs-HI-2sJ" secondAttribute="centerY" id="uYt-bn-soU"/>
                                <constraint firstAttribute="bottom" secondItem="7jm-Xo-v03" secondAttribute="bottom" id="yhT-Yk-9q4"/>
                            </constraints>
                        </view>
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="9wE-yq-AUU">
                            <rect key="frame" x="0.0" y="50" width="365" 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="rNC-EN-G1G">
                                    <rect key="frame" x="10" y="15.333333333333341" width="73.666666666666671" height="19.333333333333329"/>
                                    <fontDescription key="fontDescription" type="system" pointSize="16"/>
                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/>
                                    <nil key="highlightedColor"/>
                                </label>
                                <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="c3P-PL-JWg" customClass="QMUITextField">
                                    <rect key="frame" x="90" y="14.666666666666657" width="265" height="21"/>
                                    <fontDescription key="fontDescription" type="system" pointSize="16"/>
                                    <textInputTraits key="textInputTraits"/>
                                    <userDefinedRuntimeAttributes>
                                        <userDefinedRuntimeAttribute type="number" keyPath="maximumTextLength">
                                            <integer key="value" value="18"/>
                                        </userDefinedRuntimeAttribute>
                                    </userDefinedRuntimeAttributes>
                                </textField>
                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="vEe-26-9PE">
                                    <rect key="frame" x="10" y="49" width="345" height="1"/>
                                    <color key="backgroundColor" red="0.59215686270000001" green="0.59215686270000001" blue="0.59215686270000001" alpha="0.12" colorSpace="custom" customColorSpace="sRGB"/>
                                    <constraints>
                                        <constraint firstAttribute="height" constant="1" id="iYY-7U-tDT"/>
                                    </constraints>
                                </view>
                            </subviews>
                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                            <constraints>
                                <constraint firstAttribute="trailing" secondItem="vEe-26-9PE" secondAttribute="trailing" constant="10" id="DWu-rT-9ca"/>
                                <constraint firstAttribute="height" constant="50" id="GPW-Ed-ZnH"/>
                                <constraint firstItem="rNC-EN-G1G" firstAttribute="leading" secondItem="9wE-yq-AUU" secondAttribute="leading" constant="10" id="Iyh-nF-7gP"/>
                                <constraint firstAttribute="bottom" secondItem="vEe-26-9PE" secondAttribute="bottom" id="KvZ-4W-Cgd"/>
                                <constraint firstItem="vEe-26-9PE" firstAttribute="leading" secondItem="9wE-yq-AUU" secondAttribute="leading" constant="10" id="MID-ie-3Uc"/>
                                <constraint firstItem="rNC-EN-G1G" firstAttribute="centerY" secondItem="9wE-yq-AUU" secondAttribute="centerY" id="eOV-E9-Rgz"/>
                                <constraint firstAttribute="trailing" secondItem="c3P-PL-JWg" secondAttribute="trailing" constant="10" id="k2W-W9-76n"/>
                                <constraint firstItem="c3P-PL-JWg" firstAttribute="leading" secondItem="9wE-yq-AUU" secondAttribute="leading" constant="90" id="muF-0h-O8s"/>
                                <constraint firstItem="c3P-PL-JWg" firstAttribute="centerY" secondItem="9wE-yq-AUU" secondAttribute="centerY" id="pj5-Z9-awi"/>
                            </constraints>
                        </view>
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="YA7-2Q-uz8">
                            <rect key="frame" x="0.0" y="100" width="365" 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="ASX-h9-DTo">
                                    <rect key="frame" x="10.000000000000004" y="15.333333333333313" width="57.333333333333343" height="19.333333333333329"/>
                                    <fontDescription key="fontDescription" type="system" pointSize="16"/>
                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/>
                                    <nil key="highlightedColor"/>
                                </label>
                                <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="BaQ-Md-hAN" customClass="QMUITextField">
                                    <rect key="frame" x="90" y="14.666666666666686" width="265" height="21"/>
                                    <fontDescription key="fontDescription" type="system" pointSize="16"/>
                                    <textInputTraits key="textInputTraits" keyboardType="numberPad"/>
                                    <userDefinedRuntimeAttributes>
                                        <userDefinedRuntimeAttribute type="number" keyPath="maximumTextLength">
                                            <integer key="value" value="11"/>
                                        </userDefinedRuntimeAttribute>
                                    </userDefinedRuntimeAttributes>
                                </textField>
                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="FAL-9n-waw">
                                    <rect key="frame" x="10" y="49" width="345" height="1"/>
                                    <color key="backgroundColor" red="0.59215686270000001" green="0.59215686270000001" blue="0.59215686270000001" alpha="0.12" colorSpace="custom" customColorSpace="sRGB"/>
                                    <constraints>
                                        <constraint firstAttribute="height" constant="1" id="Ytg-zf-JPc"/>
                                    </constraints>
                                </view>
                            </subviews>
                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                            <constraints>
                                <constraint firstAttribute="trailing" secondItem="BaQ-Md-hAN" secondAttribute="trailing" constant="10" id="6R6-Ef-bDW"/>
                                <constraint firstItem="FAL-9n-waw" firstAttribute="leading" secondItem="YA7-2Q-uz8" secondAttribute="leading" constant="10" id="7yo-pV-JCw"/>
                                <constraint firstAttribute="height" constant="50" id="Jvg-oA-1r1"/>
                                <constraint firstItem="ASX-h9-DTo" firstAttribute="leading" secondItem="YA7-2Q-uz8" secondAttribute="leading" constant="10" id="NzV-gI-y6E"/>
                                <constraint firstItem="BaQ-Md-hAN" firstAttribute="leading" secondItem="YA7-2Q-uz8" secondAttribute="leading" constant="90" id="QdL-lv-wo6"/>
                                <constraint firstAttribute="trailing" secondItem="FAL-9n-waw" secondAttribute="trailing" constant="10" id="ZVl-Iu-TMJ"/>
                                <constraint firstAttribute="bottom" secondItem="FAL-9n-waw" secondAttribute="bottom" id="b77-RN-nQa"/>
                                <constraint firstItem="BaQ-Md-hAN" firstAttribute="centerY" secondItem="YA7-2Q-uz8" secondAttribute="centerY" id="r84-aO-N6a"/>
                                <constraint firstItem="ASX-h9-DTo" firstAttribute="centerY" secondItem="YA7-2Q-uz8" secondAttribute="centerY" id="raE-OM-Wh8"/>
                            </constraints>
                        </view>
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="gPc-VD-yQi">
                            <rect key="frame" x="0.0" y="150" width="365" 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="Ck5-E9-RWu">
                                    <rect key="frame" x="10" y="15.333333333333313" width="106.33333333333333" height="19.333333333333329"/>
                                    <fontDescription key="fontDescription" type="system" pointSize="16"/>
                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/>
                                    <nil key="highlightedColor"/>
                                </label>
                                <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="fdw-nZ-t66" customClass="QMUITextField">
                                    <rect key="frame" x="126.33333333333334" y="14.666666666666686" width="49" height="21"/>
                                    <fontDescription key="fontDescription" type="system" pointSize="16"/>
                                    <textInputTraits key="textInputTraits" keyboardType="numberPad"/>
                                    <userDefinedRuntimeAttributes>
                                        <userDefinedRuntimeAttribute type="number" keyPath="maximumTextLength">
                                            <integer key="value" value="6"/>
                                        </userDefinedRuntimeAttribute>
                                    </userDefinedRuntimeAttributes>
                                </textField>
                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="L5L-a9-Haw">
                                    <rect key="frame" x="10" y="49" width="345" height="1"/>
                                    <color key="backgroundColor" red="0.59215686270000001" green="0.59215686270000001" blue="0.59215686270000001" alpha="0.12" colorSpace="custom" customColorSpace="sRGB"/>
                                    <constraints>
                                        <constraint firstAttribute="height" constant="1" id="vjX-FO-1Wf"/>
                                    </constraints>
                                </view>
                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="nRC-hW-ER0">
                                    <rect key="frame" x="272" y="9" width="82" 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.54117647058823526" green="0.68235294117647061" blue="0.396078431372549" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                    </state>
                                </button>
                            </subviews>
                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                            <constraints>
                                <constraint firstItem="Ck5-E9-RWu" firstAttribute="centerY" secondItem="gPc-VD-yQi" secondAttribute="centerY" id="GNG-q8-M0D"/>
                                <constraint firstItem="fdw-nZ-t66" firstAttribute="centerY" secondItem="gPc-VD-yQi" secondAttribute="centerY" id="Vw4-1H-gQm"/>
                                <constraint firstAttribute="trailing" secondItem="L5L-a9-Haw" secondAttribute="trailing" constant="10" id="bTq-xs-Fvk"/>
                                <constraint firstItem="nRC-hW-ER0" firstAttribute="centerY" secondItem="gPc-VD-yQi" secondAttribute="centerY" id="ekj-nJ-dSn"/>
                                <constraint firstItem="fdw-nZ-t66" firstAttribute="leading" secondItem="Ck5-E9-RWu" secondAttribute="trailing" constant="10" id="n3m-Qh-WAm"/>
                                <constraint firstItem="L5L-a9-Haw" firstAttribute="leading" secondItem="gPc-VD-yQi" secondAttribute="leading" constant="10" id="r07-QG-QgX"/>
                                <constraint firstItem="Ck5-E9-RWu" firstAttribute="leading" secondItem="gPc-VD-yQi" secondAttribute="leading" constant="10" id="tUx-5z-vbA"/>
                                <constraint firstAttribute="height" constant="50" id="tVH-vw-htB"/>
                                <constraint firstAttribute="trailing" secondItem="nRC-hW-ER0" secondAttribute="trailing" constant="11" id="wOu-ny-e5N"/>
                                <constraint firstAttribute="bottom" secondItem="L5L-a9-Haw" secondAttribute="bottom" id="yQY-Ki-v2J"/>
                            </constraints>
                        </view>
                    </subviews>
                    <userDefinedRuntimeAttributes>
                        <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/>
                        <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB">
                            <real key="value" value="10"/>
                        </userDefinedRuntimeAttribute>
                    </userDefinedRuntimeAttributes>
                </stackView>
                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Flq-AM-akx">
                    <rect key="frame" x="45" y="438" width="303" height="40"/>
                    <color key="backgroundColor" red="0.54117647059999996" green="0.68235294120000001" blue="0.39607843139999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                    <constraints>
                        <constraint firstAttribute="height" constant="40" id="NLW-rn-m10"/>
                    </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>
                </button>
            </subviews>
            <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/>
            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
            <constraints>
                <constraint firstItem="Flq-AM-akx" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="45" id="0pF-4v-xLY"/>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="fwC-BB-rdM" secondAttribute="trailing" constant="14" id="6qT-VQ-gTL"/>
                <constraint firstItem="07i-g0-s3b" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="14" id="IvV-YG-68g"/>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="07i-g0-s3b" secondAttribute="trailing" constant="14" id="JIg-m3-xhd"/>
                <constraint firstItem="07i-g0-s3b" firstAttribute="top" secondItem="fwC-BB-rdM" secondAttribute="bottom" constant="10" id="Yj2-X6-sib"/>
                <constraint firstItem="fwC-BB-rdM" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="14" id="ajJ-yi-V9w"/>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="Flq-AM-akx" secondAttribute="trailing" constant="45" id="bTt-f6-iGj"/>
                <constraint firstItem="Flq-AM-akx" firstAttribute="top" secondItem="07i-g0-s3b" secondAttribute="bottom" constant="59" id="dZF-EA-as7"/>
                <constraint firstItem="fwC-BB-rdM" firstAttribute="top" secondItem="fnl-2z-Ty3" secondAttribute="top" constant="10" id="y0n-oJ-ZZd"/>
            </constraints>
            <point key="canvasLocation" x="58.778625954198468" y="20.422535211267608"/>
        </view>
    </objects>
    <resources>
        <systemColor name="systemBackgroundColor">
            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
        </systemColor>
    </resources>
</document>
XQMuse/Root/Me/VC/BankWithdrawVC.swift
New file
@@ -0,0 +1,77 @@
//
//  BankWithdrawVC.swift
//  XQMuse
//
//  Created by 无故事王国 on 2024/8/21.
//
import UIKit
import QMUIKit
class BankWithdrawVC: BaseVC {
                @IBOutlet weak var tableView: UITableView!
                @IBOutlet weak var cons_height: NSLayoutConstraint!
                private var selectIndexPath = IndexPath(row: 0, section: 0)
                override func viewDidLoad() {
        super.viewDidLoad()
        title = "收益提现"
    }
                override func setUI() {
                                view.backgroundColor = UIColor(hexString: "f6f6f6")
                                tableView.delegate = self
                                tableView.dataSource = self
                                tableView.separatorStyle = .none
                                tableView.backgroundColor = .clear
                                tableView.register(UINib(nibName: "BankInfoTCell", bundle: nil), forCellReuseIdentifier: "_BankInfoTCell")
                                cons_height.constant = 84 * 2
                }
                @IBAction func addBankCardAction(_ sender: QMUIButton) {
                                let vc = AddBankInfoVC()
                                push(vc: vc)
                }
}
extension BankWithdrawVC:UITableViewDelegate & UITableViewDataSource{
                func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
                                selectIndexPath = indexPath
                                tableView.reloadData()
                }
                func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
                                let cell = tableView.dequeueReusableCell(withIdentifier: "_BankInfoTCell", for: indexPath) as! BankInfoTCell
                                cell.isSelect(indexPath == selectIndexPath)
                                return cell
                }
                func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
                                return true
                }
                func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
                                CommonAlertView.show(title: "提示", content: "是否删除此张银行卡?") { _ in
                                }
                }
                func tableView(_ tableView: UITableView, editingStyleForRowAt indexPath: IndexPath) -> UITableViewCell.EditingStyle {
                                return .delete
                }
                func tableView(_ tableView: UITableView, titleForDeleteConfirmationButtonForRowAt indexPath: IndexPath) -> String? {
                                return "删除"
                }
                func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
                                return 2
                }
                func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
                                return 84
                }
}
XQMuse/Root/Me/VC/BankWithdrawVC.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="BankWithdrawVC" customModule="XQMuse" customModuleProvider="target">
            <connections>
                <outlet property="cons_height" destination="JnR-vu-dbn" id="8dW-o7-cqk"/>
                <outlet property="tableView" destination="ANy-Y0-lhb" id="VHQ-LH-zK3"/>
                <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" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" translatesAutoresizingMaskIntoConstraints="NO" id="9BP-hx-1CV">
                    <rect key="frame" x="0.0" y="59" width="393" height="759"/>
                    <subviews>
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="GWM-A7-0N4">
                            <rect key="frame" x="0.0" y="0.0" width="393" height="800"/>
                            <subviews>
                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="5CF-zo-zBJ">
                                    <rect key="frame" x="14" y="10" width="365" height="40"/>
                                    <subviews>
                                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="e5j-K3-G1y" customClass="QMUIButton">
                                            <rect key="frame" x="126.66666666666666" y="9" width="112" height="22"/>
                                            <constraints>
                                                <constraint firstAttribute="height" constant="22" id="osq-rB-xnm"/>
                                            </constraints>
                                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                                            <state key="normal" title="添加银行卡" image="btn_add">
                                                <color key="titleColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="0.69999999999999996" colorSpace="custom" customColorSpace="sRGB"/>
                                            </state>
                                            <userDefinedRuntimeAttributes>
                                                <userDefinedRuntimeAttribute type="number" keyPath="spacingBetweenImageAndTitle">
                                                    <real key="value" value="11"/>
                                                </userDefinedRuntimeAttribute>
                                            </userDefinedRuntimeAttributes>
                                            <connections>
                                                <action selector="addBankCardAction:" destination="-1" eventType="touchUpInside" id="ciD-sJ-quM"/>
                                            </connections>
                                        </button>
                                    </subviews>
                                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                                    <constraints>
                                        <constraint firstAttribute="height" constant="40" id="aSk-4S-Kqh"/>
                                        <constraint firstItem="e5j-K3-G1y" firstAttribute="centerX" secondItem="5CF-zo-zBJ" secondAttribute="centerX" id="bwi-MC-8l1"/>
                                        <constraint firstItem="e5j-K3-G1y" firstAttribute="centerY" secondItem="5CF-zo-zBJ" secondAttribute="centerY" id="lfh-wL-VtQ"/>
                                    </constraints>
                                    <userDefinedRuntimeAttributes>
                                        <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/>
                                        <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB">
                                            <real key="value" value="4"/>
                                        </userDefinedRuntimeAttribute>
                                    </userDefinedRuntimeAttributes>
                                </view>
                                <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" scrollEnabled="NO" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="-1" estimatedSectionHeaderHeight="-1" sectionFooterHeight="-1" estimatedSectionFooterHeight="-1" translatesAutoresizingMaskIntoConstraints="NO" id="ANy-Y0-lhb">
                                    <rect key="frame" x="0.0" y="55" width="393" height="50"/>
                                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                                    <constraints>
                                        <constraint firstAttribute="height" constant="50" id="JnR-vu-dbn"/>
                                    </constraints>
                                </tableView>
                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="dzL-mF-fWd">
                                    <rect key="frame" x="14" y="119.99999999999999" width="365" height="198.66666666666663"/>
                                    <subviews>
                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="提现方式" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="V3v-rW-oAU">
                                            <rect key="frame" x="10" y="17" width="65.333333333333329" height="19.333333333333329"/>
                                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/>
                                            <nil key="textColor"/>
                                            <nil key="highlightedColor"/>
                                        </label>
                                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_more" translatesAutoresizingMaskIntoConstraints="NO" id="muW-hg-S26">
                                            <rect key="frame" x="349" y="21.333333333333343" width="6" height="10.666666666666664"/>
                                        </imageView>
                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="银行卡" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="cQl-FF-lcU">
                                            <rect key="frame" x="292" y="17" width="49" height="19.333333333333329"/>
                                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/>
                                            <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/>
                                            <nil key="highlightedColor"/>
                                        </label>
                                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_bankCard" translatesAutoresizingMaskIntoConstraints="NO" id="kNx-8Z-GFE">
                                            <rect key="frame" x="265" y="19.666666666666657" width="19" height="14"/>
                                        </imageView>
                                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="DVz-Aw-J8e">
                                            <rect key="frame" x="9" y="53.333333333333343" width="347" height="1"/>
                                            <color key="backgroundColor" red="0.59215686274509804" green="0.59215686274509804" blue="0.59215686274509804" alpha="0.14999999999999999" colorSpace="custom" customColorSpace="sRGB"/>
                                            <constraints>
                                                <constraint firstAttribute="height" constant="1" id="Bii-C8-47a"/>
                                            </constraints>
                                        </view>
                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="提现金额" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ROF-gy-jCH">
                                            <rect key="frame" x="10.000000000000004" y="67.333333333333343" width="57.333333333333343" height="20"/>
                                            <constraints>
                                                <constraint firstAttribute="height" constant="20" id="2sL-SB-1hq"/>
                                            </constraints>
                                            <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>
                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="¥" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="A8O-G3-C0r">
                                            <rect key="frame" x="10" y="105.33333333333331" width="15" height="33"/>
                                            <constraints>
                                                <constraint firstAttribute="height" constant="33" id="yEi-XF-quR"/>
                                            </constraints>
                                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="24"/>
                                            <nil key="textColor"/>
                                            <nil key="highlightedColor"/>
                                        </label>
                                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="cZL-OS-uGM">
                                            <rect key="frame" x="9" y="151.33333333333331" width="347" height="1"/>
                                            <color key="backgroundColor" red="0.59215686274509804" green="0.59215686274509804" blue="0.59215686274509804" alpha="0.14999999999999999" colorSpace="custom" customColorSpace="sRGB"/>
                                            <constraints>
                                                <constraint firstAttribute="height" constant="1" id="sjH-AP-Al1"/>
                                            </constraints>
                                        </view>
                                        <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入提现金额" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="40r-zA-9fv">
                                            <rect key="frame" x="55" y="110.33333333333331" width="280" height="23.333333333333343"/>
                                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="18"/>
                                            <textInputTraits key="textInputTraits" keyboardType="numberPad"/>
                                        </textField>
                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="可提现余额:¥0" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Jnw-DF-MrW">
                                            <rect key="frame" x="10" y="165.33333333333331" width="103.66666666666667" height="17"/>
                                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
                                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.68999999999999995" colorSpace="custom" customColorSpace="sRGB"/>
                                            <nil key="highlightedColor"/>
                                        </label>
                                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="qK8-WH-Xjd">
                                            <rect key="frame" x="297" y="159.33333333333331" width="58" height="29"/>
                                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
                                            <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.54117647058823526" green="0.68235294117647061" blue="0.396078431372549" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                            </state>
                                        </button>
                                    </subviews>
                                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                                    <constraints>
                                        <constraint firstAttribute="trailing" secondItem="qK8-WH-Xjd" secondAttribute="trailing" constant="10" id="4PB-at-tLO"/>
                                        <constraint firstItem="A8O-G3-C0r" firstAttribute="leading" secondItem="dzL-mF-fWd" secondAttribute="leading" constant="10" id="5g5-zJ-9E7"/>
                                        <constraint firstItem="ROF-gy-jCH" firstAttribute="top" secondItem="DVz-Aw-J8e" secondAttribute="bottom" constant="13" id="5sr-ir-FV5"/>
                                        <constraint firstItem="cZL-OS-uGM" firstAttribute="leading" secondItem="dzL-mF-fWd" secondAttribute="leading" constant="9" id="8kI-Mj-LPR"/>
                                        <constraint firstItem="Jnw-DF-MrW" firstAttribute="top" secondItem="cZL-OS-uGM" secondAttribute="bottom" constant="13" id="9C4-n2-sqB"/>
                                        <constraint firstItem="qK8-WH-Xjd" firstAttribute="centerY" secondItem="Jnw-DF-MrW" secondAttribute="centerY" id="9MZ-Z8-bwJ"/>
                                        <constraint firstAttribute="trailing" secondItem="40r-zA-9fv" secondAttribute="trailing" constant="30" id="FX3-U2-P4b"/>
                                        <constraint firstItem="kNx-8Z-GFE" firstAttribute="centerY" secondItem="V3v-rW-oAU" secondAttribute="centerY" id="Jsg-Xf-j9i"/>
                                        <constraint firstAttribute="trailing" secondItem="DVz-Aw-J8e" secondAttribute="trailing" constant="9" id="M4U-iB-viJ"/>
                                        <constraint firstItem="Jnw-DF-MrW" firstAttribute="leading" secondItem="dzL-mF-fWd" secondAttribute="leading" constant="10" id="OgS-UW-cuD"/>
                                        <constraint firstItem="A8O-G3-C0r" firstAttribute="top" secondItem="ROF-gy-jCH" secondAttribute="bottom" constant="18" id="PwR-Vh-i1P"/>
                                        <constraint firstItem="cZL-OS-uGM" firstAttribute="top" secondItem="A8O-G3-C0r" secondAttribute="bottom" constant="13" id="RE0-6e-840"/>
                                        <constraint firstItem="cQl-FF-lcU" firstAttribute="centerY" secondItem="V3v-rW-oAU" secondAttribute="centerY" id="SwL-Az-DCV"/>
                                        <constraint firstItem="DVz-Aw-J8e" firstAttribute="top" secondItem="V3v-rW-oAU" secondAttribute="bottom" constant="17" id="VEh-Gq-3ck"/>
                                        <constraint firstItem="muW-hg-S26" firstAttribute="centerY" secondItem="V3v-rW-oAU" secondAttribute="centerY" id="VqE-Cv-81X"/>
                                        <constraint firstItem="DVz-Aw-J8e" firstAttribute="leading" secondItem="dzL-mF-fWd" secondAttribute="leading" constant="9" id="WHG-l9-duf"/>
                                        <constraint firstItem="40r-zA-9fv" firstAttribute="centerY" secondItem="A8O-G3-C0r" secondAttribute="centerY" id="ZOU-0w-2J0"/>
                                        <constraint firstItem="V3v-rW-oAU" firstAttribute="top" secondItem="dzL-mF-fWd" secondAttribute="top" constant="17" id="Zlo-ze-8Ea"/>
                                        <constraint firstAttribute="width" secondItem="dzL-mF-fWd" secondAttribute="height" multiplier="1:0.5441" id="cGJ-Zi-mhl"/>
                                        <constraint firstItem="cQl-FF-lcU" firstAttribute="leading" secondItem="kNx-8Z-GFE" secondAttribute="trailing" constant="8" id="gNf-O9-HyR"/>
                                        <constraint firstAttribute="trailing" secondItem="cZL-OS-uGM" secondAttribute="trailing" constant="9" id="ghd-jZ-7DR"/>
                                        <constraint firstAttribute="trailing" secondItem="muW-hg-S26" secondAttribute="trailing" constant="10" id="jem-zh-J8u"/>
                                        <constraint firstItem="40r-zA-9fv" firstAttribute="leading" secondItem="A8O-G3-C0r" secondAttribute="trailing" constant="30" id="qB4-d3-9sD"/>
                                        <constraint firstItem="ROF-gy-jCH" firstAttribute="leading" secondItem="dzL-mF-fWd" secondAttribute="leading" constant="10" id="rZZ-R3-VgC"/>
                                        <constraint firstItem="V3v-rW-oAU" firstAttribute="leading" secondItem="dzL-mF-fWd" secondAttribute="leading" constant="10" id="uad-aM-2Sa"/>
                                        <constraint firstItem="muW-hg-S26" firstAttribute="leading" secondItem="cQl-FF-lcU" secondAttribute="trailing" constant="8" id="xxd-KS-nh6"/>
                                    </constraints>
                                    <userDefinedRuntimeAttributes>
                                        <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/>
                                        <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB">
                                            <real key="value" value="10"/>
                                        </userDefinedRuntimeAttribute>
                                    </userDefinedRuntimeAttributes>
                                </view>
                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="b5b-HD-xwQ">
                                    <rect key="frame" x="45" y="359.66666666666669" width="303" height="40"/>
                                    <color key="backgroundColor" red="0.54117647059999996" green="0.68235294120000001" blue="0.39607843139999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                    <constraints>
                                        <constraint firstAttribute="height" constant="40" id="K5B-2c-JFV"/>
                                    </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>
                                </button>
                            </subviews>
                            <constraints>
                                <constraint firstAttribute="trailing" secondItem="5CF-zo-zBJ" secondAttribute="trailing" constant="14" id="AtI-ag-4ub"/>
                                <constraint firstAttribute="trailing" secondItem="ANy-Y0-lhb" secondAttribute="trailing" id="H0V-oB-XGa"/>
                                <constraint firstItem="5CF-zo-zBJ" firstAttribute="leading" secondItem="GWM-A7-0N4" secondAttribute="leading" constant="14" id="IbU-p7-hiO"/>
                                <constraint firstItem="b5b-HD-xwQ" firstAttribute="leading" secondItem="GWM-A7-0N4" secondAttribute="leading" constant="45" id="KEd-wH-jhs"/>
                                <constraint firstAttribute="trailing" secondItem="dzL-mF-fWd" secondAttribute="trailing" constant="14" id="NDH-oM-eEj"/>
                                <constraint firstItem="ANy-Y0-lhb" firstAttribute="leading" secondItem="GWM-A7-0N4" secondAttribute="leading" id="RKG-cR-ugx"/>
                                <constraint firstAttribute="trailing" secondItem="b5b-HD-xwQ" secondAttribute="trailing" constant="45" id="TF8-SJ-usb"/>
                                <constraint firstItem="5CF-zo-zBJ" firstAttribute="top" secondItem="GWM-A7-0N4" secondAttribute="top" constant="10" id="V9t-TN-46v"/>
                                <constraint firstAttribute="height" constant="800" id="WYF-xC-zHB"/>
                                <constraint firstItem="dzL-mF-fWd" firstAttribute="leading" secondItem="GWM-A7-0N4" secondAttribute="leading" constant="14" id="XW0-P2-yxo"/>
                                <constraint firstItem="ANy-Y0-lhb" firstAttribute="top" secondItem="5CF-zo-zBJ" secondAttribute="bottom" constant="5" id="g0r-vN-Avk"/>
                                <constraint firstItem="b5b-HD-xwQ" firstAttribute="top" secondItem="dzL-mF-fWd" secondAttribute="bottom" constant="41" id="rDE-op-yQV"/>
                                <constraint firstItem="dzL-mF-fWd" firstAttribute="top" secondItem="ANy-Y0-lhb" secondAttribute="bottom" constant="15" id="vaj-30-Erp"/>
                            </constraints>
                        </view>
                    </subviews>
                    <constraints>
                        <constraint firstItem="GWM-A7-0N4" firstAttribute="centerX" secondItem="9BP-hx-1CV" secondAttribute="centerX" id="Mz0-X6-Oug"/>
                        <constraint firstAttribute="trailing" secondItem="GWM-A7-0N4" secondAttribute="trailing" id="OLu-a6-ngK"/>
                        <constraint firstItem="GWM-A7-0N4" firstAttribute="leading" secondItem="9BP-hx-1CV" secondAttribute="leading" id="Ygz-ZE-Gso"/>
                        <constraint firstItem="GWM-A7-0N4" firstAttribute="top" secondItem="9BP-hx-1CV" secondAttribute="top" id="dJO-AW-QYu"/>
                        <constraint firstAttribute="bottom" secondItem="GWM-A7-0N4" secondAttribute="bottom" id="qNO-cJ-QJ5"/>
                    </constraints>
                </scrollView>
            </subviews>
            <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/>
            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
            <constraints>
                <constraint firstItem="9BP-hx-1CV" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="5ZU-jQ-JWI"/>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="9BP-hx-1CV" secondAttribute="trailing" id="9vx-XO-21l"/>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="bottom" secondItem="9BP-hx-1CV" secondAttribute="bottom" id="E2O-eV-Ebm"/>
                <constraint firstItem="9BP-hx-1CV" firstAttribute="top" secondItem="fnl-2z-Ty3" secondAttribute="top" id="Xr9-dx-BFq"/>
            </constraints>
            <point key="canvasLocation" x="139.69465648854961" y="20.422535211267608"/>
        </view>
    </objects>
    <resources>
        <image name="btn_add" width="20" height="20"/>
        <image name="icon_bankCard" width="19" height="14"/>
        <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/BindAccountVC.swift
New file
@@ -0,0 +1,29 @@
//
//  BindAccountVC.swift
//  XQMuse
//
//  Created by 无故事王国 on 2024/8/21.
//
import UIKit
class BindAccountVC: BaseVC {
    override func viewDidLoad() {
        super.viewDidLoad()
                                title = "账号绑定"
    }
                @IBAction func bindPhoneAction(_ sender: Any) {
                                let vc = BindPhone_1_VC()
                                push(vc: vc)
                }
                @IBAction func updatePwdAction(_ sender: TapBtn) {
                                let vc = ForgotPasswordVC()
                                push(vc: vc)
                }
}
XQMuse/Root/Me/VC/BindAccountVC.xib
New file
@@ -0,0 +1,174 @@
<?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="BindAccountVC" 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="z7W-El-2DY">
                    <rect key="frame" x="0.0" y="59" width="393" height="153"/>
                    <subviews>
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Rux-UN-BCS" customClass="TapBtn" customModule="XQMuse" customModuleProvider="target">
                            <rect key="frame" x="0.0" y="0.0" width="393" height="51"/>
                            <subviews>
                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="zCt-fB-u6c">
                                    <rect key="frame" x="14" y="50.666666666666671" width="365" 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="z4A-ku-Jxb"/>
                                    </constraints>
                                </view>
                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="手机号码" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="TLZ-tC-0M2">
                                    <rect key="frame" x="14.000000000000004" y="17" width="57.333333333333343" height="17"/>
                                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.80000000000000004" 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="bbi-3y-aZs">
                                    <rect key="frame" x="374" y="20" width="6" height="11"/>
                                    <constraints>
                                        <constraint firstAttribute="width" constant="6" id="GGL-MB-Cch"/>
                                        <constraint firstAttribute="height" constant="10.67" id="vaM-hZ-qLV"/>
                                    </constraints>
                                </imageView>
                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="JiT-I4-fQb">
                                    <rect key="frame" x="353" y="17" width="13" height="17"/>
                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/>
                                    <nil key="highlightedColor"/>
                                </label>
                            </subviews>
                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                            <constraints>
                                <constraint firstAttribute="trailing" secondItem="zCt-fB-u6c" secondAttribute="trailing" constant="14" id="2PO-VT-v4Q"/>
                                <constraint firstItem="JiT-I4-fQb" firstAttribute="centerY" secondItem="Rux-UN-BCS" secondAttribute="centerY" id="5aF-Af-8fh"/>
                                <constraint firstItem="TLZ-tC-0M2" firstAttribute="leading" secondItem="Rux-UN-BCS" secondAttribute="leading" constant="14" id="CdU-03-5LI"/>
                                <constraint firstAttribute="bottom" secondItem="zCt-fB-u6c" secondAttribute="bottom" id="FmT-1y-ali"/>
                                <constraint firstItem="bbi-3y-aZs" firstAttribute="leading" secondItem="JiT-I4-fQb" secondAttribute="trailing" constant="8" id="Gwy-FM-tE3"/>
                                <constraint firstAttribute="height" constant="51" id="NT0-Qw-NTg"/>
                                <constraint firstItem="TLZ-tC-0M2" firstAttribute="centerY" secondItem="Rux-UN-BCS" secondAttribute="centerY" id="Pk0-Qa-tZE"/>
                                <constraint firstAttribute="trailing" secondItem="bbi-3y-aZs" secondAttribute="trailing" constant="13" id="Sa1-jh-63L"/>
                                <constraint firstItem="zCt-fB-u6c" firstAttribute="leading" secondItem="Rux-UN-BCS" secondAttribute="leading" constant="14" id="cBv-ef-eco"/>
                                <constraint firstItem="bbi-3y-aZs" firstAttribute="centerY" secondItem="Rux-UN-BCS" secondAttribute="centerY" id="w3i-fe-N3c"/>
                            </constraints>
                            <connections>
                                <action selector="bindPhoneAction:" destination="-1" eventType="touchUpInside" id="vA6-kW-W8G"/>
                            </connections>
                        </view>
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Wgk-EY-Mp1" customClass="TapBtn" customModule="XQMuse" customModuleProvider="target">
                            <rect key="frame" x="0.0" y="51" width="393" height="51"/>
                            <subviews>
                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="8Ba-ju-fm8">
                                    <rect key="frame" x="14" y="50.666666666666657" width="365" height="0.3333333333333357"/>
                                    <color key="backgroundColor" red="0.83137254900000002" green="0.83137254900000002" blue="0.83137254900000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                    <constraints>
                                        <constraint firstAttribute="height" constant="0.40000000000000002" id="JFE-h8-U72"/>
                                    </constraints>
                                </view>
                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="改绑微信" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="rnP-eo-8fV">
                                    <rect key="frame" x="14.000000000000004" y="17" width="57.333333333333343" height="17"/>
                                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.80000000000000004" 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="fr4-WS-o70">
                                    <rect key="frame" x="374" y="20" width="6" height="11"/>
                                    <constraints>
                                        <constraint firstAttribute="height" constant="10.67" id="Jla-7L-OzT"/>
                                        <constraint firstAttribute="width" constant="6" id="fqD-Dj-zAf"/>
                                    </constraints>
                                </imageView>
                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="未绑定" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="hyt-qR-dWk">
                                    <rect key="frame" x="323" y="17" width="43" height="17"/>
                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.34000000000000002" colorSpace="custom" customColorSpace="sRGB"/>
                                    <nil key="highlightedColor"/>
                                </label>
                            </subviews>
                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                            <constraints>
                                <constraint firstItem="hyt-qR-dWk" firstAttribute="centerY" secondItem="Wgk-EY-Mp1" secondAttribute="centerY" id="0Be-Rn-uqz"/>
                                <constraint firstAttribute="height" constant="51" id="3b3-2N-XI6"/>
                                <constraint firstAttribute="trailing" secondItem="fr4-WS-o70" secondAttribute="trailing" constant="13" id="82S-iA-Cr1"/>
                                <constraint firstItem="fr4-WS-o70" firstAttribute="centerY" secondItem="Wgk-EY-Mp1" secondAttribute="centerY" id="8IW-MK-8Dz"/>
                                <constraint firstItem="rnP-eo-8fV" firstAttribute="leading" secondItem="Wgk-EY-Mp1" secondAttribute="leading" constant="14" id="Cq6-dn-Qnw"/>
                                <constraint firstAttribute="trailing" secondItem="8Ba-ju-fm8" secondAttribute="trailing" constant="14" id="YSO-jc-8Er"/>
                                <constraint firstItem="8Ba-ju-fm8" firstAttribute="leading" secondItem="Wgk-EY-Mp1" secondAttribute="leading" constant="14" id="ane-sh-Ff6"/>
                                <constraint firstItem="fr4-WS-o70" firstAttribute="leading" secondItem="hyt-qR-dWk" secondAttribute="trailing" constant="8" id="sJF-Lb-iR9"/>
                                <constraint firstItem="rnP-eo-8fV" firstAttribute="centerY" secondItem="Wgk-EY-Mp1" secondAttribute="centerY" id="t59-mZ-wZl"/>
                                <constraint firstAttribute="bottom" secondItem="8Ba-ju-fm8" secondAttribute="bottom" id="zUS-gF-Qtl"/>
                            </constraints>
                        </view>
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Dao-ey-Pqx" customClass="TapBtn" customModule="XQMuse" customModuleProvider="target">
                            <rect key="frame" x="0.0" y="102" width="393" height="51"/>
                            <subviews>
                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="V7R-4l-l0I">
                                    <rect key="frame" x="14" y="50.666666666666657" width="365" height="0.3333333333333357"/>
                                    <color key="backgroundColor" red="0.83137254900000002" green="0.83137254900000002" blue="0.83137254900000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                    <constraints>
                                        <constraint firstAttribute="height" constant="0.40000000000000002" id="K1o-nT-Zvt"/>
                                    </constraints>
                                </view>
                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="修改密码" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Sff-Hx-7zu">
                                    <rect key="frame" x="14.000000000000004" y="17" width="57.333333333333343" height="17"/>
                                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.80000000000000004" 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="8vT-pO-Q5u">
                                    <rect key="frame" x="374" y="20" width="6" height="11"/>
                                    <constraints>
                                        <constraint firstAttribute="width" constant="6" id="EXD-r6-L6c"/>
                                        <constraint firstAttribute="height" constant="10.67" id="yvU-7J-R0s"/>
                                    </constraints>
                                </imageView>
                            </subviews>
                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                            <constraints>
                                <constraint firstAttribute="bottom" secondItem="V7R-4l-l0I" secondAttribute="bottom" id="IO9-zP-4VB"/>
                                <constraint firstAttribute="height" constant="51" id="Lob-1t-rvr"/>
                                <constraint firstItem="8vT-pO-Q5u" firstAttribute="centerY" secondItem="Dao-ey-Pqx" secondAttribute="centerY" id="SFa-FI-ccb"/>
                                <constraint firstItem="Sff-Hx-7zu" firstAttribute="centerY" secondItem="Dao-ey-Pqx" secondAttribute="centerY" id="U3s-8g-1mX"/>
                                <constraint firstItem="V7R-4l-l0I" firstAttribute="leading" secondItem="Dao-ey-Pqx" secondAttribute="leading" constant="14" id="WoK-jl-46Y"/>
                                <constraint firstAttribute="trailing" secondItem="V7R-4l-l0I" secondAttribute="trailing" constant="14" id="kex-sA-Tbn"/>
                                <constraint firstAttribute="trailing" secondItem="8vT-pO-Q5u" secondAttribute="trailing" constant="13" id="n8e-Hh-sgx"/>
                                <constraint firstItem="Sff-Hx-7zu" firstAttribute="leading" secondItem="Dao-ey-Pqx" secondAttribute="leading" constant="14" id="pua-If-x0h"/>
                            </constraints>
                            <connections>
                                <action selector="updatePwdAction:" destination="-1" eventType="touchUpInside" id="XKC-aw-6Bk"/>
                            </connections>
                        </view>
                    </subviews>
                </stackView>
            </subviews>
            <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/>
            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
            <constraints>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="z7W-El-2DY" secondAttribute="trailing" id="dWj-fy-Xt4"/>
                <constraint firstItem="z7W-El-2DY" firstAttribute="top" secondItem="fnl-2z-Ty3" secondAttribute="top" id="dt1-xB-HJp"/>
                <constraint firstItem="z7W-El-2DY" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="xau-pk-2q6"/>
            </constraints>
            <point key="canvasLocation" x="140" y="21"/>
        </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/BindPhone_1_VC.swift
New file
@@ -0,0 +1,30 @@
//
//  BindPhone_1_VC.swift
//  XQMuse
//
//  Created by 无故事王国 on 2024/8/21.
//
import UIKit
import JQTools
class BindPhone_1_VC: BaseVC {
                @IBOutlet weak var label_phone: UILabel!
                @IBOutlet weak var btn_update: UIButton!
                override func viewDidLoad() {
        super.viewDidLoad()
                                title = "绑定手机号"
    }
                override func viewDidLayoutSubviews() {
                                super.viewDidLayoutSubviews()
                                btn_update.jq_gradientNibColor(colorArr: [UIColor(hexStr: "#8EA47A").cgColor,UIColor(hexStr: "#AFCA98").cgColor], cornerRadius: 20)
                }
                @IBAction func bindPhoneAction(_ sender: UIButton) {
                                let vc = BindPhone_2_VC()
                                push(vc: vc)
                }
}
XQMuse/Root/Me/VC/BindPhone_1_VC.xib
New file
@@ -0,0 +1,78 @@
<?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="BindPhone_1_VC" customModule="XQMuse" customModuleProvider="target">
            <connections>
                <outlet property="btn_update" destination="1A9-pa-hcM" id="6E1-dI-8Xg"/>
                <outlet property="label_phone" destination="LGd-E7-43k" id="O3i-TM-0V9"/>
                <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>
                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="你绑定的手机号码为:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="PLa-ym-FHY">
                    <rect key="frame" x="128.66666666666666" y="110" width="135.99999999999997" height="17"/>
                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
                    <nil key="textColor"/>
                    <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="LGd-E7-43k">
                    <rect key="frame" x="186" y="138" width="21.333333333333343" height="33"/>
                    <constraints>
                        <constraint firstAttribute="height" constant="33" id="veT-MN-uJs"/>
                    </constraints>
                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="24"/>
                    <color key="textColor" red="0.68235294117647061" green="0.78823529411764703" blue="0.59215686274509804" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                    <nil key="highlightedColor"/>
                </label>
                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="1A9-pa-hcM">
                    <rect key="frame" x="44" y="328" width="305" height="40"/>
                    <color key="backgroundColor" red="0.68235294120000001" green="0.78823529410000004" blue="0.59215686270000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                    <constraints>
                        <constraint firstAttribute="height" constant="40" id="Vhn-mT-ufj"/>
                    </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="bindPhoneAction:" destination="-1" eventType="touchUpInside" id="4VL-VF-8uV"/>
                    </connections>
                </button>
            </subviews>
            <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/>
            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
            <constraints>
                <constraint firstItem="LGd-E7-43k" firstAttribute="top" secondItem="PLa-ym-FHY" secondAttribute="bottom" constant="11" id="6qe-CM-XXB"/>
                <constraint firstItem="PLa-ym-FHY" firstAttribute="top" secondItem="fnl-2z-Ty3" secondAttribute="top" constant="51" id="6tY-QF-wGJ"/>
                <constraint firstItem="PLa-ym-FHY" firstAttribute="centerX" secondItem="fnl-2z-Ty3" secondAttribute="centerX" id="EoZ-se-DpA"/>
                <constraint firstItem="1A9-pa-hcM" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="44" id="LEh-7P-Hu3"/>
                <constraint firstItem="1A9-pa-hcM" firstAttribute="top" secondItem="LGd-E7-43k" secondAttribute="bottom" constant="157" id="MyD-wA-lfI"/>
                <constraint firstItem="LGd-E7-43k" firstAttribute="centerX" secondItem="PLa-ym-FHY" secondAttribute="centerX" id="acY-rL-eD7"/>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="1A9-pa-hcM" secondAttribute="trailing" constant="44" id="mwu-yW-Rmx"/>
            </constraints>
            <point key="canvasLocation" x="138" y="21"/>
        </view>
    </objects>
    <resources>
        <systemColor name="systemBackgroundColor">
            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
        </systemColor>
    </resources>
</document>
XQMuse/Root/Me/VC/BindPhone_2_VC.swift
New file
@@ -0,0 +1,38 @@
//
//  BindPhone_2_VC.swift
//  XQMuse
//
//  Created by 无故事王国 on 2024/8/21.
//
import UIKit
import JQTools
import QMUIKit
class BindPhone_2_VC: BaseVC {
                @IBOutlet weak var tf_phone: QMUITextField!
                @IBOutlet weak var tf_code: QMUITextField!
                @IBOutlet weak var btn_complete: UIButton!
                override func viewDidLoad() {
        super.viewDidLoad()
                                title = "更改绑定手机"
    }
                @IBAction func sendCodeAction(_ sender: UIButton) {
                }
                @IBAction func completeAction(_ sender: UIButton) {
                                let vc = BindPhone_3_VC()
                                vc.modalPresentationStyle = .fullScreen
                                present(vc, animated: true)
                }
                override func viewDidLayoutSubviews() {
                                super.viewDidLayoutSubviews()
                                btn_complete.jq_gradientNibColor(colorArr: [UIColor(hexStr: "#8EA47A").cgColor,UIColor(hexStr: "#AFCA98").cgColor], cornerRadius: 20)
                }
}
XQMuse/Root/Me/VC/BindPhone_2_VC.xib
New file
@@ -0,0 +1,177 @@
<?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="BindPhone_2_VC" customModule="XQMuse" customModuleProvider="target">
            <connections>
                <outlet property="btn_complete" destination="5Y1-Lh-YrS" id="Utj-IN-Rhv"/>
                <outlet property="tf_code" destination="fSc-90-mQd" id="wZE-kb-7Kp"/>
                <outlet property="tf_phone" destination="iVY-a7-Dza" id="efZ-wY-YFa"/>
                <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>
                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="更换绑定手机号" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="hYd-rC-GZY">
                    <rect key="frame" x="44" y="128" width="149.66666666666666" height="29"/>
                    <constraints>
                        <constraint firstAttribute="height" constant="29" id="n37-Dg-3xA"/>
                    </constraints>
                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="21"/>
                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.81000000000000005" 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="7LE-go-AsO">
                    <rect key="frame" x="44" y="164" width="86" height="14"/>
                    <constraints>
                        <constraint firstAttribute="height" constant="14" id="zfh-eC-uuc"/>
                    </constraints>
                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
                    <color key="textColor" red="0.59215686274509804" green="0.59215686274509804" blue="0.59215686274509804" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                    <nil key="highlightedColor"/>
                </label>
                <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="0mo-0P-B1S">
                    <rect key="frame" x="45" y="218" width="303" height="124"/>
                    <subviews>
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="TCO-QE-qOb">
                            <rect key="frame" x="0.0" y="0.0" width="303" height="62"/>
                            <subviews>
                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Be0-Ub-wt1">
                                    <rect key="frame" x="0.0" y="61.333333333333314" width="303" height="0.6666666666666643"/>
                                    <color key="backgroundColor" red="0.96470588239999999" green="0.94901960780000005" blue="0.94901960780000005" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                    <constraints>
                                        <constraint firstAttribute="height" constant="0.63" id="TcT-Ix-T8r"/>
                                    </constraints>
                                </view>
                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="CtF-TA-Wqg">
                                    <rect key="frame" x="0.0" y="15" width="30" height="32"/>
                                    <fontDescription key="fontDescription" type="system" pointSize="16"/>
                                    <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                                    <state key="normal" title="+86">
                                        <color key="titleColor" red="0.0" green="0.0" blue="0.0" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/>
                                    </state>
                                </button>
                                <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入手机号" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="iVY-a7-Dza" customClass="QMUITextField">
                                    <rect key="frame" x="57" y="21.666666666666657" width="219" height="18.666666666666671"/>
                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
                                    <textInputTraits key="textInputTraits" keyboardType="numberPad"/>
                                    <userDefinedRuntimeAttributes>
                                        <userDefinedRuntimeAttribute type="number" keyPath="maximumTextLength">
                                            <integer key="value" value="11"/>
                                        </userDefinedRuntimeAttribute>
                                    </userDefinedRuntimeAttributes>
                                </textField>
                            </subviews>
                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                            <constraints>
                                <constraint firstItem="CtF-TA-Wqg" firstAttribute="leading" secondItem="TCO-QE-qOb" secondAttribute="leading" id="0n6-Gp-vi8"/>
                                <constraint firstItem="Be0-Ub-wt1" firstAttribute="leading" secondItem="TCO-QE-qOb" secondAttribute="leading" id="2jl-od-m7X"/>
                                <constraint firstAttribute="height" constant="62" id="B8f-My-kaP"/>
                                <constraint firstAttribute="bottom" secondItem="Be0-Ub-wt1" secondAttribute="bottom" id="CYE-lE-HfD"/>
                                <constraint firstItem="iVY-a7-Dza" firstAttribute="centerY" secondItem="CtF-TA-Wqg" secondAttribute="centerY" id="NsU-e6-LIH"/>
                                <constraint firstItem="iVY-a7-Dza" firstAttribute="leading" secondItem="TCO-QE-qOb" secondAttribute="leading" constant="57" id="QfN-aw-swP"/>
                                <constraint firstAttribute="trailing" secondItem="iVY-a7-Dza" secondAttribute="trailing" constant="27" id="VkS-BT-Jbd"/>
                                <constraint firstItem="CtF-TA-Wqg" firstAttribute="centerY" secondItem="TCO-QE-qOb" secondAttribute="centerY" id="ddu-Nc-jYk"/>
                                <constraint firstAttribute="trailing" secondItem="Be0-Ub-wt1" secondAttribute="trailing" id="uI5-1z-bEF"/>
                            </constraints>
                        </view>
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="gkf-Nv-DjZ">
                            <rect key="frame" x="0.0" y="62" width="303" height="62"/>
                            <subviews>
                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ZAk-6O-CpK">
                                    <rect key="frame" x="0.0" y="61.333333333333314" width="303" height="0.6666666666666643"/>
                                    <color key="backgroundColor" red="0.96470588239999999" green="0.94901960780000005" blue="0.94901960780000005" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                    <constraints>
                                        <constraint firstAttribute="height" constant="0.63" id="xqp-RA-A7k"/>
                                    </constraints>
                                </view>
                                <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请填写验证码" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="fSc-90-mQd" customClass="QMUITextField">
                                    <rect key="frame" x="0.0" y="21.666666666666686" width="183" height="18.666666666666671"/>
                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
                                    <textInputTraits key="textInputTraits" keyboardType="numberPad"/>
                                    <userDefinedRuntimeAttributes>
                                        <userDefinedRuntimeAttribute type="number" keyPath="maximumTextLength">
                                            <integer key="value" value="6"/>
                                        </userDefinedRuntimeAttribute>
                                    </userDefinedRuntimeAttributes>
                                </textField>
                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Wb8-hi-sEB">
                                    <rect key="frame" x="231" y="16.666666666666686" width="72" height="29"/>
                                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
                                    <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.58823529409999997" green="0.67843137249999996" blue="0.50588235290000005" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                    </state>
                                    <connections>
                                        <action selector="sendCodeAction:" destination="-1" eventType="touchUpInside" id="VlK-D1-7Vq"/>
                                    </connections>
                                </button>
                            </subviews>
                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                            <constraints>
                                <constraint firstAttribute="trailing" secondItem="fSc-90-mQd" secondAttribute="trailing" constant="120" id="4nl-xb-GY5"/>
                                <constraint firstAttribute="trailing" secondItem="Wb8-hi-sEB" secondAttribute="trailing" id="80v-dZ-00f"/>
                                <constraint firstAttribute="bottom" secondItem="ZAk-6O-CpK" secondAttribute="bottom" id="AdJ-bm-lcT"/>
                                <constraint firstAttribute="height" constant="62" id="UGu-Ay-AEl"/>
                                <constraint firstAttribute="trailing" secondItem="ZAk-6O-CpK" secondAttribute="trailing" id="nwM-yC-zKU"/>
                                <constraint firstItem="ZAk-6O-CpK" firstAttribute="leading" secondItem="gkf-Nv-DjZ" secondAttribute="leading" id="p58-xf-Fze"/>
                                <constraint firstItem="fSc-90-mQd" firstAttribute="centerY" secondItem="gkf-Nv-DjZ" secondAttribute="centerY" id="v84-bT-yWM"/>
                                <constraint firstItem="Wb8-hi-sEB" firstAttribute="centerY" secondItem="gkf-Nv-DjZ" secondAttribute="centerY" id="voX-At-6yY"/>
                                <constraint firstItem="fSc-90-mQd" firstAttribute="leading" secondItem="gkf-Nv-DjZ" secondAttribute="leading" id="vr8-WN-xI2"/>
                            </constraints>
                        </view>
                    </subviews>
                </stackView>
                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="5Y1-Lh-YrS">
                    <rect key="frame" x="45" y="420" width="303" height="40"/>
                    <color key="backgroundColor" red="0.68235294120000001" green="0.78823529410000004" blue="0.59215686270000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                    <constraints>
                        <constraint firstAttribute="height" constant="40" id="Zje-3l-M6v"/>
                    </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="-1" eventType="touchUpInside" id="kwp-7z-f9n"/>
                    </connections>
                </button>
            </subviews>
            <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/>
            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
            <constraints>
                <constraint firstItem="5Y1-Lh-YrS" firstAttribute="top" secondItem="0mo-0P-B1S" secondAttribute="bottom" constant="78" id="Ahg-rU-GVr"/>
                <constraint firstItem="hYd-rC-GZY" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="44" id="BCe-5F-qAa"/>
                <constraint firstItem="hYd-rC-GZY" firstAttribute="top" secondItem="fnl-2z-Ty3" secondAttribute="top" constant="69" id="Gmb-vm-MGU"/>
                <constraint firstItem="5Y1-Lh-YrS" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="45" id="HFb-FR-XR1"/>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="5Y1-Lh-YrS" secondAttribute="trailing" constant="45" id="MLM-u9-W4P"/>
                <constraint firstItem="7LE-go-AsO" firstAttribute="top" secondItem="hYd-rC-GZY" secondAttribute="bottom" constant="7" id="P6X-WN-jU2"/>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="0mo-0P-B1S" secondAttribute="trailing" constant="45" id="b57-pT-w04"/>
                <constraint firstItem="0mo-0P-B1S" firstAttribute="top" secondItem="7LE-go-AsO" secondAttribute="bottom" constant="40" id="jwq-Kl-Mkl"/>
                <constraint firstItem="0mo-0P-B1S" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="45" id="ocw-Wx-IVl"/>
                <constraint firstItem="7LE-go-AsO" firstAttribute="leading" secondItem="hYd-rC-GZY" secondAttribute="leading" id="r6I-JA-ULp"/>
            </constraints>
            <point key="canvasLocation" x="59" y="21"/>
        </view>
    </objects>
    <resources>
        <systemColor name="systemBackgroundColor">
            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
        </systemColor>
    </resources>
</document>
XQMuse/Root/Me/VC/BindPhone_3_VC.swift
New file
@@ -0,0 +1,25 @@
//
//  BindPhone_3_VC.swift
//  XQMuse
//
//  Created by 无故事王国 on 2024/8/21.
//
import UIKit
import JQTools
class BindPhone_3_VC: BaseVC {
                @IBOutlet weak var btn_relogin: UIButton!
                override func viewDidLoad() {
        super.viewDidLoad()
                                title = "更换绑定手机"
    }
                override func viewDidLayoutSubviews() {
                                super.viewDidLayoutSubviews()
                                btn_relogin.jq_gradientNibColor(colorArr: [UIColor(hexStr: "#8EA47A").cgColor,UIColor(hexStr: "#AFCA98").cgColor], cornerRadius: 20)
                }
}
XQMuse/Root/Me/VC/BindPhone_3_VC.xib
New file
@@ -0,0 +1,81 @@
<?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="BindPhone_3_VC" customModule="XQMuse" customModuleProvider="target">
            <connections>
                <outlet property="btn_relogin" destination="YgJ-ux-dDT" id="C8C-ys-L8b"/>
                <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="icon_success_full" translatesAutoresizingMaskIntoConstraints="NO" id="nqJ-La-ruG">
                    <rect key="frame" x="176.66666666666666" y="108" width="40" height="40"/>
                    <constraints>
                        <constraint firstAttribute="height" constant="40" id="NDG-Rz-PsT"/>
                        <constraint firstAttribute="width" constant="40" id="QlB-Hj-ebH"/>
                    </constraints>
                </imageView>
                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="操作成功" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="g7h-c0-TSN">
                    <rect key="frame" x="168" y="168" width="57.333333333333343" height="17"/>
                    <fontDescription key="fontDescription" type="system" weight="medium" 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>
                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="您已成功更换绑定手机号,请重新登录" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3ci-c0-6LV">
                    <rect key="frame" x="75" y="194" width="243" height="17"/>
                    <fontDescription key="fontDescription" type="system" weight="medium" 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>
                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="YgJ-ux-dDT">
                    <rect key="frame" x="45" y="323" width="303" height="40"/>
                    <color key="backgroundColor" red="0.68235294120000001" green="0.78823529410000004" blue="0.59215686270000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                    <constraints>
                        <constraint firstAttribute="height" constant="40" id="Dvz-OC-mKg"/>
                    </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>
                </button>
            </subviews>
            <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/>
            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
            <constraints>
                <constraint firstItem="nqJ-La-ruG" firstAttribute="top" secondItem="fnl-2z-Ty3" secondAttribute="top" constant="49" id="0F9-1L-9rf"/>
                <constraint firstItem="3ci-c0-6LV" firstAttribute="centerX" secondItem="g7h-c0-TSN" secondAttribute="centerX" id="BYN-K3-JQV"/>
                <constraint firstItem="g7h-c0-TSN" firstAttribute="top" secondItem="nqJ-La-ruG" secondAttribute="bottom" constant="20" id="EKx-Gh-l57"/>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="YgJ-ux-dDT" secondAttribute="trailing" constant="45" id="J6c-Ss-HeF"/>
                <constraint firstItem="g7h-c0-TSN" firstAttribute="centerX" secondItem="nqJ-La-ruG" secondAttribute="centerX" id="JVz-3Z-Pux"/>
                <constraint firstItem="3ci-c0-6LV" firstAttribute="top" secondItem="g7h-c0-TSN" secondAttribute="bottom" constant="9" id="XWL-TE-lSl"/>
                <constraint firstItem="YgJ-ux-dDT" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="45" id="a4l-PB-xSy"/>
                <constraint firstItem="nqJ-La-ruG" firstAttribute="centerX" secondItem="fnl-2z-Ty3" secondAttribute="centerX" id="lTs-gl-PNY"/>
                <constraint firstItem="YgJ-ux-dDT" firstAttribute="top" secondItem="3ci-c0-6LV" secondAttribute="bottom" constant="112" id="vUI-Xs-mzB"/>
            </constraints>
            <point key="canvasLocation" x="59" y="21"/>
        </view>
    </objects>
    <resources>
        <image name="icon_success_full" width="40" height="40"/>
        <systemColor name="systemBackgroundColor">
            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
        </systemColor>
    </resources>
</document>
XQMuse/Root/Me/VC/HelpCenterVC.swift
New file
@@ -0,0 +1,177 @@
//
//  HelpCenterVC.swift
//  XQMuse
//
//  Created by 无故事王国 on 2024/8/21.
//
import UIKit
import SPPageMenu
import FFPage
import JQTools
class HelpCenterVC: BaseVC {
                @IBOutlet weak var view_content: UIView!
                private(set) var pageMenu:SPPageMenu = {
                                let pageMenu = SPPageMenu(frame: .zero, trackerStyle: .line)
                                // 追踪线
                                pageMenu.trackerWidth = 12
                                pageMenu.setTrackerHeight(2, cornerRadius:1)
                                pageMenu.trackerFollowingMode = .always
                                pageMenu.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: 5, right: 0)
                                pageMenu.setItems(["切换账号","改绑手机号","改绑微信"], selectedItemIndex: 0)
                                pageMenu.backgroundColor = UIColor(hexString: "#F0F0F0")
                                pageMenu.tracker.backgroundColor = .white
                                pageMenu.backgroundColor = .white
                                // 分割线
                                pageMenu.dividingLine.backgroundColor = .clear
                                pageMenu.dividingLineHeight = 0.0
                                // item
                                pageMenu.permutationWay = .notScrollAdaptContent
                                // 字体
                                pageMenu.selectedItemTitleFont = UIFont.systemFont(ofSize: 18, weight: .semibold)
                                pageMenu.unSelectedItemTitleFont = UIFont.systemFont(ofSize: 15, weight: .semibold)
                                // 颜色
                                pageMenu.selectedItemTitleColor = UIColor(hexStr: "#282828")
                                pageMenu.unSelectedItemTitleColor = UIColor(hexStr: "#C3C3C2")
                                return pageMenu
                }()
                lazy var pageViewController:FFPageViewController = {
                                let pageVC = FFPageViewController()
                                pageVC.view.backgroundColor = .clear
                                pageVC.scrollview.backgroundColor = .clear
                                pageVC.scrollview.bounces = false
                                return pageVC
                }()
                override func viewDidLoad() {
        super.viewDidLoad()
                                title = "帮助中心"
    }
                override func setUI() {
                                super.setUI()
                                pageMenu.delegate = self
                                view_content.addSubview(pageMenu)
                                pageMenu.snp.makeConstraints { make in
                                                make.left.right.equalToSuperview()
                                                make.height.equalTo(52.5)
                                                make.top.equalTo(17.5)
                                }
                                let lineView = UIView()
                                lineView.backgroundColor = UIColor(hexString: "#D0D0D0")
                                view_content.addSubview(lineView)
                                lineView.snp.makeConstraints { make in
                                                make.top.equalTo(pageMenu.snp.bottom)
                                                make.left.equalTo(20)
                                                make.right.equalTo(-20)
                                                make.height.equalTo(0.5)
                                }
                                view.addSubview(pageViewController.view)
                                pageViewController.view.backgroundColor = .clear
                                pageViewController.delegate = self
                                pageViewController.view.snp.makeConstraints { make in
                                                make.top.equalTo(lineView.snp.bottom)
                                                make.left.right.bottom.equalToSuperview()
                                }
                }
}
extension HelpCenterVC:SPPageMenuDelegate{
                func pageMenu(_ pageMenu: SPPageMenu, itemSelectedAt index: Int) {
                                pageViewController.scroll(toPage: index, animation: true)
                }
}
extension HelpCenterVC:FFPageViewControllerDelegate{
                func pageViewController(_ pageViewController: FFPageViewController, currentPageChanged currentPage: Int) {
                                pageMenu.selectedItemIndex = currentPage
                }
                func totalPagesOfpageViewController(_ pageViewConteoller: FFPageViewController) -> UInt {
                                return pageMenu.numberOfItems
                }
                func pageViewController(_ pageViewConteoller: FFPageViewController, controllerForPage page: Int) -> UIViewController {
                                return HelpCenterDetailVC(page: page)
                }
}
class HelpCenterDetailVC:BaseVC{
                private var page:Int!
                private var label_content:UILabel!
                private var btn_handle:UIButton!
                init(page:Int) {
                                super.init(nibName: nil, bundle: nil)
                                self.page = page
                }
                override func setUI() {
                                label_content = UILabel()
                                label_content.numberOfLines = 0
                                view.addSubview(label_content)
                                label_content.snp.makeConstraints { make in
                                                make.top.equalTo(24)
                                                make.left.equalTo(20.5)
                                                make.right.equalTo(-20.5)
                                }
                                btn_handle = UIButton(type: .custom)
                                btn_handle.backgroundColor = UIColor(hexString: "#8AAE65")
                                btn_handle.jq_cornerRadius = 21.25
                                btn_handle.titleLabel?.font = UIFont.systemFont(ofSize: 15, weight: .medium)
                                btn_handle.addTarget(self, action: #selector(exchangeAction), for: .touchUpInside)
                                view.addSubview(btn_handle)
                                btn_handle.snp.makeConstraints { make in
                                                make.top.equalTo(label_content.snp.bottom).offset(69.5)
                                                make.left.equalTo(51.5)
                                                make.right.equalTo(-51.5)
                                                make.height.equalTo(42.5)
                                }
                                let attribute = AttributedStringbuilder.build()
                                switch page {
                                                case 0:
                                                                attribute.add(string: "如你当前登录心泉·疗愈的手机号码不是购买课程时填写的手机号码,请点击下方按钮,使用购买课程的手机号码登录即可。", withFont: .systemFont(ofSize: 13), withColor: UIColor(hexString:"#282828")!, indent: 0, lineSpace: 5)
                                                                btn_handle.setTitle("换个手机号码登录", for: .normal)
                                                case 1:
                                                                attribute.add(string: "如你希望变更心泉·疗愈的手机号码,请点击下方按钮,根据页面提示录入新的手机号码。", withFont: .systemFont(ofSize: 13), withColor: UIColor(hexString:"#282828")!, indent: 0, lineSpace: 5)
                                                                btn_handle.setTitle("前往改绑手机号", for: .normal)
                                                case 2:
                                                                attribute.add(string: "如你希望变更心泉·疗愈的微信号,请点击下方按钮,根据页面提示授权登录其他微信号。", withFont: .systemFont(ofSize: 13), withColor: UIColor(hexString:"#282828")!, indent: 0, lineSpace: 5)
                                                                btn_handle.setTitle("前往改绑微信号", for: .normal)
                                                default:break
                                }
                                label_content.attributedText = attribute.mutableAttributedString
                }
                @objc func exchangeAction(){
                                if page == 0{
                                                sceneDelegate?.needLogin()
                                }else{
                                                JQ_currentNavigationController().pushViewController(BindAccountVC(), animated: true)
                                }
                }
                required init?(coder: NSCoder) {
                                fatalError("init(coder:) has not been implemented")
                }
}
XQMuse/Root/Me/VC/HelpCenterVC.xib
New file
@@ -0,0 +1,88 @@
<?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="HelpCenterVC" customModule="XQMuse" customModuleProvider="target">
            <connections>
                <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
                <outlet property="view_content" destination="xML-KV-XeH" id="9bv-3x-iwM"/>
            </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="top" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="bg_help" translatesAutoresizingMaskIntoConstraints="NO" id="pAC-sr-W8M">
                    <rect key="frame" x="0.0" y="0.0" width="393" height="461"/>
                    <constraints>
                        <constraint firstAttribute="width" secondItem="pAC-sr-W8M" secondAttribute="height" multiplier="1:1.173" id="jHB-RH-JlI"/>
                    </constraints>
                </imageView>
                <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="w5R-wz-EoA">
                    <rect key="frame" x="21.666666666666657" y="230.33333333333334" width="350" height="28.666666666666657"/>
                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/>
                    <color key="textColor" red="0.12156862745098039" green="0.12156862745098039" blue="0.12156862745098039" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                    <nil key="highlightedColor"/>
                </label>
                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Qa7-7e-0dj">
                    <rect key="frame" x="21" y="142" width="184" height="57.333333333333343"/>
                    <string key="text">找不到
已购课程怎么办?</string>
                    <fontDescription key="fontDescription" type="system" weight="heavy" pointSize="24"/>
                    <color key="textColor" red="0.54117647058823526" green="0.68235294117647061" blue="0.396078431372549" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                    <nil key="highlightedColor"/>
                </label>
                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="dEu-an-YSc">
                    <rect key="frame" x="0.0" y="461" width="393" height="357"/>
                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                </view>
                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="xML-KV-XeH">
                    <rect key="frame" x="0.0" y="294" width="393" height="524"/>
                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                    <userDefinedRuntimeAttributes>
                        <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/>
                        <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB">
                            <real key="value" value="20"/>
                        </userDefinedRuntimeAttribute>
                    </userDefinedRuntimeAttributes>
                </view>
            </subviews>
            <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/>
            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
            <constraints>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="bottom" secondItem="dEu-an-YSc" secondAttribute="bottom" id="0gd-hG-ZpU"/>
                <constraint firstAttribute="trailing" secondItem="w5R-wz-EoA" secondAttribute="trailing" constant="21.5" id="4p7-pm-y3M"/>
                <constraint firstItem="dEu-an-YSc" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="DAF-Fs-TWW"/>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="dEu-an-YSc" secondAttribute="trailing" id="FcC-Z3-JLu"/>
                <constraint firstItem="pAC-sr-W8M" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" id="Mg9-tJ-uOW"/>
                <constraint firstItem="pAC-sr-W8M" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="POx-rJ-5a8"/>
                <constraint firstItem="w5R-wz-EoA" firstAttribute="centerX" secondItem="pAC-sr-W8M" secondAttribute="centerX" id="UOa-Td-Ybt"/>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="bottom" secondItem="xML-KV-XeH" secondAttribute="bottom" id="Wqj-5J-rSc"/>
                <constraint firstItem="w5R-wz-EoA" firstAttribute="bottom" secondItem="pAC-sr-W8M" secondAttribute="bottom" constant="-202" id="csA-GR-ldD"/>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="xML-KV-XeH" secondAttribute="trailing" id="dDM-rl-jM1"/>
                <constraint firstItem="xML-KV-XeH" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="e6X-3Y-4Fq"/>
                <constraint firstItem="xML-KV-XeH" firstAttribute="top" secondItem="w5R-wz-EoA" secondAttribute="bottom" constant="35" id="fQR-Zl-po0"/>
                <constraint firstItem="w5R-wz-EoA" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="21.5" id="gdW-lE-qmG"/>
                <constraint firstItem="dEu-an-YSc" firstAttribute="top" secondItem="pAC-sr-W8M" secondAttribute="bottom" id="oVX-Y1-Y68"/>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="pAC-sr-W8M" secondAttribute="trailing" id="tn6-ej-Iab"/>
                <constraint firstItem="w5R-wz-EoA" firstAttribute="top" secondItem="Qa7-7e-0dj" secondAttribute="bottom" constant="31" id="wdH-CC-k2K"/>
                <constraint firstItem="Qa7-7e-0dj" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="21" id="ygw-Ur-T4V"/>
            </constraints>
            <point key="canvasLocation" x="139.69465648854961" y="20.422535211267608"/>
        </view>
    </objects>
    <resources>
        <image name="bg_help" width="390" height="844"/>
        <systemColor name="systemBackgroundColor">
            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
        </systemColor>
    </resources>
</document>
XQMuse/Root/Me/VC/LevelVC.swift
New file
@@ -0,0 +1,21 @@
//
//  LevelVC.swift
//  XQMuse
//
//  Created by 无故事王国 on 2024/8/21.
//
import UIKit
class LevelVC: BaseVC {
                @IBOutlet weak var progressView: UIProgressView!
                override func viewDidLoad() {
        super.viewDidLoad()
                                title = "当前等级"
                                DispatchQueue.main.asyncAfter(delay: 2.0) {
                                                self.progressView.setProgress(0.9, animated: true)
                                }
    }
}
XQMuse/Root/Me/VC/LevelVC.xib
New file
@@ -0,0 +1,128 @@
<?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" customClass="LevelVC" customModule="XQMuse" customModuleProvider="target">
            <connections>
                <outlet property="progressView" destination="vEE-PO-MmZ" id="bFu-HY-IeG"/>
                <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="5yn-MP-rMe">
                    <rect key="frame" x="0.0" y="0.0" width="393" height="297"/>
                </imageView>
                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="P4c-hh-W7E">
                    <rect key="frame" x="14.666666666666657" y="113.66666666666666" width="364" height="113.66666666666666"/>
                    <subviews>
                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="bg_level" translatesAutoresizingMaskIntoConstraints="NO" id="wUb-cZ-2ur">
                            <rect key="frame" x="0.0" y="0.0" width="364" height="113.66666666666667"/>
                        </imageView>
                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_vip_level" translatesAutoresizingMaskIntoConstraints="NO" id="h9t-tx-RMl">
                            <rect key="frame" x="11" y="18.333333333333329" width="95.666666666666671" height="27.666666666666671"/>
                        </imageView>
                        <progressView opaque="NO" contentMode="scaleToFill" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="vEE-PO-MmZ">
                            <rect key="frame" x="14.333333333333343" y="63.666666666666671" width="335" height="6"/>
                            <constraints>
                                <constraint firstAttribute="height" constant="6" id="jDs-ZU-Qbj"/>
                            </constraints>
                            <color key="progressTintColor" red="0.99215686274509807" green="0.792156862745098" blue="0.5607843137254902" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                            <color key="trackTintColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                            <userDefinedRuntimeAttributes>
                                <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/>
                                <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB">
                                    <real key="value" value="3"/>
                                </userDefinedRuntimeAttribute>
                            </userDefinedRuntimeAttributes>
                        </progressView>
                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="当前等级 0/0" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="7JM-Vh-SUj">
                            <rect key="frame" x="15" y="83.999999999999986" width="71.666666666666671" height="14.333333333333329"/>
                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/>
                            <color key="textColor" red="0.039215686274509803" green="0.25882352941176467" blue="0.074509803921568626" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                            <nil key="highlightedColor"/>
                        </label>
                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="你离下一等级还差0经验值,加油!" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ZIY-z8-gex">
                            <rect key="frame" x="178.66666666666669" y="83.999999999999986" width="170.66666666666669" height="14.333333333333329"/>
                            <fontDescription key="fontDescription" type="system" pointSize="11"/>
                            <color key="textColor" red="0.039215686274509803" green="0.25882352941176467" blue="0.074509803921568626" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                            <nil key="highlightedColor"/>
                        </label>
                    </subviews>
                    <constraints>
                        <constraint firstItem="h9t-tx-RMl" firstAttribute="leading" secondItem="P4c-hh-W7E" secondAttribute="leading" constant="11" id="1QC-LM-DoB"/>
                        <constraint firstAttribute="trailing" secondItem="vEE-PO-MmZ" secondAttribute="trailing" constant="14.5" id="7xC-zh-Wmf"/>
                        <constraint firstItem="vEE-PO-MmZ" firstAttribute="top" secondItem="h9t-tx-RMl" secondAttribute="bottom" constant="17.5" id="9TW-se-ADa"/>
                        <constraint firstAttribute="trailing" secondItem="ZIY-z8-gex" secondAttribute="trailing" constant="14.5" id="Db1-Os-Fjo"/>
                        <constraint firstItem="7JM-Vh-SUj" firstAttribute="top" secondItem="vEE-PO-MmZ" secondAttribute="bottom" constant="14.5" id="Lyh-6U-58X"/>
                        <constraint firstAttribute="trailing" secondItem="wUb-cZ-2ur" secondAttribute="trailing" id="VAf-J2-9JC"/>
                        <constraint firstItem="wUb-cZ-2ur" firstAttribute="top" secondItem="P4c-hh-W7E" secondAttribute="top" id="aOD-mc-m5C"/>
                        <constraint firstItem="ZIY-z8-gex" firstAttribute="centerY" secondItem="7JM-Vh-SUj" secondAttribute="centerY" id="ee8-h4-Qg7"/>
                        <constraint firstItem="h9t-tx-RMl" firstAttribute="top" secondItem="P4c-hh-W7E" secondAttribute="top" constant="18.5" id="iNg-Q3-9f7"/>
                        <constraint firstItem="vEE-PO-MmZ" firstAttribute="leading" secondItem="P4c-hh-W7E" secondAttribute="leading" constant="14.5" id="k3a-AG-bT8"/>
                        <constraint firstAttribute="bottom" secondItem="wUb-cZ-2ur" secondAttribute="bottom" id="qQW-Bf-Nml"/>
                        <constraint firstItem="wUb-cZ-2ur" firstAttribute="leading" secondItem="P4c-hh-W7E" secondAttribute="leading" id="t6a-E5-S4B"/>
                        <constraint firstItem="7JM-Vh-SUj" firstAttribute="leading" secondItem="P4c-hh-W7E" secondAttribute="leading" constant="15" id="tha-dL-QzA"/>
                    </constraints>
                </view>
                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="心泉・疗愈 升级规则" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="jLq-af-gey">
                    <rect key="frame" x="46.666666666666657" y="250.66666666666663" width="300" height="40"/>
                    <color key="backgroundColor" red="0.54117647058823526" green="0.68235294117647061" blue="0.396078431372549" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                    <constraints>
                        <constraint firstAttribute="height" constant="40" id="mdp-S2-3Cy"/>
                    </constraints>
                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
                    <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                    <nil key="highlightedColor"/>
                    <userDefinedRuntimeAttributes>
                        <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/>
                        <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB">
                            <real key="value" value="20"/>
                        </userDefinedRuntimeAttribute>
                    </userDefinedRuntimeAttributes>
                </label>
                <wkWebView contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="fXz-og-D6V">
                    <rect key="frame" x="0.0" y="300.66666666666674" width="393" height="507.33333333333326"/>
                    <wkWebViewConfiguration key="configuration">
                        <audiovisualMediaTypes key="mediaTypesRequiringUserActionForPlayback" none="YES"/>
                        <wkPreferences key="preferences"/>
                    </wkWebViewConfiguration>
                </wkWebView>
            </subviews>
            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
            <constraints>
                <constraint firstAttribute="trailing" secondItem="P4c-hh-W7E" secondAttribute="trailing" constant="14.5" id="40G-KJ-cEI"/>
                <constraint firstAttribute="trailing" secondItem="5yn-MP-rMe" secondAttribute="trailing" id="89h-ub-Wk6"/>
                <constraint firstItem="P4c-hh-W7E" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="14.5" id="BsI-8v-PZe"/>
                <constraint firstItem="jLq-af-gey" firstAttribute="top" secondItem="P4c-hh-W7E" secondAttribute="bottom" constant="23.5" id="E1H-kd-i3z"/>
                <constraint firstItem="fXz-og-D6V" firstAttribute="top" secondItem="jLq-af-gey" secondAttribute="bottom" constant="10" id="G1c-2H-jZe"/>
                <constraint firstItem="fXz-og-D6V" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="JF7-VG-Xhi"/>
                <constraint firstItem="P4c-hh-W7E" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="topMargin" constant="54.5" id="TMT-qk-cwP"/>
                <constraint firstItem="5yn-MP-rMe" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="UtB-W3-Lc9"/>
                <constraint firstAttribute="bottomMargin" secondItem="fXz-og-D6V" secondAttribute="bottom" constant="10" id="Zdh-W8-f9z"/>
                <constraint firstAttribute="trailing" secondItem="jLq-af-gey" secondAttribute="trailing" constant="46.5" id="aat-cU-8q6"/>
                <constraint firstItem="5yn-MP-rMe" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" id="bYl-Ew-VbE"/>
                <constraint firstItem="jLq-af-gey" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="46.5" id="uTL-51-fFy"/>
                <constraint firstAttribute="trailing" secondItem="fXz-og-D6V" secondAttribute="trailing" id="yTZ-l3-NYg"/>
            </constraints>
            <point key="canvasLocation" x="139.69465648854961" y="20.422535211267608"/>
        </view>
    </objects>
    <resources>
        <image name="bg_level" width="364.66665649414062" height="113.66666412353516"/>
        <image name="bg_voice_top" width="390" height="297"/>
        <image name="icon_vip_level" width="95.666664123535156" height="27.666666030883789"/>
        <systemColor name="systemBackgroundColor">
            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
        </systemColor>
    </resources>
</document>
XQMuse/Root/Me/VC/LogoutAccountVC.swift
New file
@@ -0,0 +1,30 @@
//
//  LogoutAccountVC.swift
//  XQMuse
//
//  Created by 无故事王国 on 2024/8/21.
//
import UIKit
import JQTools
class LogoutAccountVC: BaseVC {
                @IBOutlet weak var btn_logout: UIButton!
                override func viewDidLoad() {
        super.viewDidLoad()
                                title = "注销账号"
    }
                @IBAction func completeAction(_ sender: UIButton) {
                                CommonAlertView.show(title: "提示", content: "已提交注销申请,请耐心等待平台审核", cancelStr: nil, completeStr: "确定", isSingle: true) { _ in
                                }
                }
                override func viewDidLayoutSubviews() {
                                super.viewDidLayoutSubviews()
                                btn_logout.jq_gradientNibColor(colorArr: [UIColor(hexStr: "#8EA47A").cgColor,UIColor(hexStr: "#AFCA98").cgColor], cornerRadius: 20)
                }
}
XQMuse/Root/Me/VC/LogoutAccountVC.xib
New file
@@ -0,0 +1,96 @@
<?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="LogoutAccountVC" customModule="XQMuse" customModuleProvider="target">
            <connections>
                <outlet property="btn_logout" destination="4Xo-o1-mrz" id="DZ9-rg-p9P"/>
                <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" distribution="fillEqually" spacing="28" translatesAutoresizingMaskIntoConstraints="NO" id="YEr-fo-buB">
                    <rect key="frame" x="40" y="773" width="313" height="40"/>
                    <subviews>
                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="r2b-7N-5dL">
                            <rect key="frame" x="0.0" y="0.0" width="142.66666666666666" height="40"/>
                            <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
                            <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.54117647058823526" green="0.68235294117647061" blue="0.396078431372549" 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="20"/>
                                </userDefinedRuntimeAttribute>
                                <userDefinedRuntimeAttribute type="number" keyPath="ld_borderWidthXIB">
                                    <real key="value" value="1"/>
                                </userDefinedRuntimeAttribute>
                                <userDefinedRuntimeAttribute type="color" keyPath="ld_borderColorXIB">
                                    <color key="value" red="0.54117647058823526" green="0.68235294117647061" blue="0.396078431372549" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                </userDefinedRuntimeAttribute>
                            </userDefinedRuntimeAttributes>
                        </button>
                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="4Xo-o1-mrz">
                            <rect key="frame" x="170.66666666666663" y="0.0" width="142.33333333333337" height="40"/>
                            <color key="backgroundColor" red="0.54117647059999996" green="0.68235294120000001" blue="0.39607843139999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
                            <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="-1" eventType="touchUpInside" id="ufB-XW-gDW"/>
                            </connections>
                        </button>
                    </subviews>
                    <constraints>
                        <constraint firstAttribute="height" constant="40" id="QVf-5k-qpm"/>
                    </constraints>
                </stackView>
                <wkWebView contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="d3j-kz-WXp">
                    <rect key="frame" x="0.0" y="69" width="393" height="694"/>
                    <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                    <wkWebViewConfiguration key="configuration">
                        <audiovisualMediaTypes key="mediaTypesRequiringUserActionForPlayback" none="YES"/>
                        <wkPreferences key="preferences"/>
                    </wkWebViewConfiguration>
                </wkWebView>
            </subviews>
            <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/>
            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
            <constraints>
                <constraint firstItem="d3j-kz-WXp" firstAttribute="top" secondItem="fnl-2z-Ty3" secondAttribute="top" constant="10" id="9Zc-hc-sWZ"/>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="bottom" secondItem="YEr-fo-buB" secondAttribute="bottom" constant="5" id="LiR-gK-AIq"/>
                <constraint firstItem="YEr-fo-buB" firstAttribute="top" secondItem="d3j-kz-WXp" secondAttribute="bottom" constant="10" id="OGD-qQ-2HX"/>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="d3j-kz-WXp" secondAttribute="trailing" id="ddL-19-v1S"/>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="YEr-fo-buB" secondAttribute="trailing" constant="40" id="lW9-H0-t1K"/>
                <constraint firstItem="YEr-fo-buB" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="40" id="lid-pq-M31"/>
                <constraint firstItem="d3j-kz-WXp" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="ueU-mZ-xe5"/>
            </constraints>
            <point key="canvasLocation" x="59" y="21"/>
        </view>
    </objects>
    <resources>
        <systemColor name="systemBackgroundColor">
            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
        </systemColor>
    </resources>
</document>
XQMuse/Root/Me/VC/SettingVC.swift
@@ -19,4 +19,37 @@
                                super.setUI()
                                view.backgroundColor = UIColor(hexString: "#fafafa")
                }
                @IBAction func bindPhoneAction(_ sender: TapBtn) {
                                let vc = BindAccountVC()
                                push(vc: vc)
                }
                @IBAction func cancelCacheAction(_ sender: TapBtn) {
                                alertSuccess(msg: "清理成功")
                }
                @IBAction func aboutUsAction(_ sender: TapBtn) {
                                let vc = WebVC()
                                vc.title = "关于心泉"
                                push(vc: vc)
                }
                @IBAction func logoutAction(_ sender: TapBtn) {
                                let vc = LogoutAccountVC()
                                push(vc: vc)
                }
                @IBAction func treatyAction(_ sender: TapBtn) {
                                 let vc = TreatyVC()
                                push(vc: vc)
                }
                @IBAction func exchangeAccountAction(_ sender: UIButton) {
                }
                @IBAction func quitAccountAction(_ sender: UIButton) {
                }
}
XQMuse/Root/Me/VC/SettingVC.xib
@@ -22,7 +22,7 @@
                <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">
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="F30-OV-73c" customClass="TapBtn" customModule="XQMuse" customModuleProvider="target">
                            <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">
@@ -53,8 +53,11 @@
                                <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>
                            <connections>
                                <action selector="bindPhoneAction:" destination="-1" eventType="touchUpInside" id="U00-og-alQ"/>
                            </connections>
                        </view>
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="2Hy-q7-hsc">
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="2Hy-q7-hsc" customClass="TapBtn" customModule="XQMuse" customModuleProvider="target">
                            <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">
@@ -85,8 +88,11 @@
                                <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>
                            <connections>
                                <action selector="cancelCacheAction:" destination="-1" eventType="touchUpInside" id="fNQ-Hs-6a1"/>
                            </connections>
                        </view>
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="kId-7a-TaC">
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="kId-7a-TaC" customClass="TapBtn" customModule="XQMuse" customModuleProvider="target">
                            <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">
@@ -117,8 +123,11 @@
                                <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>
                            <connections>
                                <action selector="aboutUsAction:" destination="-1" eventType="touchUpInside" id="N3z-Cr-91f"/>
                            </connections>
                        </view>
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ta8-pP-aEf">
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ta8-pP-aEf" customClass="TapBtn" customModule="XQMuse" customModuleProvider="target">
                            <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">
@@ -149,8 +158,11 @@
                                <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>
                            <connections>
                                <action selector="logoutAction:" destination="-1" eventType="touchUpInside" id="coX-0d-mP8"/>
                            </connections>
                        </view>
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="UKx-wx-JbB">
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="UKx-wx-JbB" customClass="TapBtn" customModule="XQMuse" customModuleProvider="target">
                            <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">
@@ -171,6 +183,9 @@
                                <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>
                            <connections>
                                <action selector="treatyAction:" destination="-1" eventType="touchUpInside" id="g6x-Bw-JIQ"/>
                            </connections>
                        </view>
                    </subviews>
                    <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
@@ -198,6 +213,9 @@
                            <real key="value" value="24.75"/>
                        </userDefinedRuntimeAttribute>
                    </userDefinedRuntimeAttributes>
                    <connections>
                        <action selector="exchangeAccountAction:" destination="-1" eventType="touchUpInside" id="wQ2-q4-WUK"/>
                    </connections>
                </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"/>
@@ -216,6 +234,9 @@
                            <real key="value" value="24.75"/>
                        </userDefinedRuntimeAttribute>
                    </userDefinedRuntimeAttributes>
                    <connections>
                        <action selector="quitAccountAction:" destination="-1" eventType="touchUpInside" id="1BR-gv-y36"/>
                    </connections>
                </button>
            </subviews>
            <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/>
XQMuse/Root/Me/VC/StudyListVC.swift
@@ -30,7 +30,8 @@
                }
                @IBAction func questionAction(_ sender: QMUIButton) {
                                let vc = HelpCenterVC()
                                push(vc: vc)
                }
}
XQMuse/Root/Me/VC/TreatyVC.swift
New file
@@ -0,0 +1,98 @@
//
//  TreatyVC.swift
//  XQMuse
//
//  Created by 无故事王国 on 2024/8/21.
//
import UIKit
import SPPageMenu
import FFPage
class TreatyVC: BaseVC {
                private(set) var pageMenu:SPPageMenu = {
                                let pageMenu = SPPageMenu(frame: .zero, trackerStyle: .line)
                                // 追踪线
                                pageMenu.trackerWidth = 12
                                pageMenu.setTrackerHeight(2, cornerRadius:1)
                                pageMenu.trackerFollowingMode = .always
                                pageMenu.contentInset = UIEdgeInsets(top: 0, left: 19.5, bottom: 5, right: 19.5)
                                pageMenu.setItems(["用户注册协议","APP隐私协议"], selectedItemIndex: 0)
                                pageMenu.backgroundColor = UIColor(hexString: "#F0F0F0")
                                pageMenu.tracker.backgroundColor = UIColor(hexString: "#8AAE65")
                                pageMenu.backgroundColor = .white
                                // 分割线
                                pageMenu.dividingLine.backgroundColor = UIColor(hexString: "#D4D4D4")
                                pageMenu.dividingLineHeight = 0.4
                                // item
                                pageMenu.spacing = 27.0
                                pageMenu.permutationWay = .notScrollAdaptContent
                                // 字体
                                pageMenu.selectedItemTitleFont = Def_SourceHanSansCN_Regular(fontSize: 14)
                                pageMenu.unSelectedItemTitleFont = Def_SourceHanSansCN_Regular(fontSize: 14)
                                // 颜色
                                pageMenu.selectedItemTitleColor = UIColor(hexStr: "#8AAE65")
                                pageMenu.unSelectedItemTitleColor = .black.withAlphaComponent(0.6)
                                return pageMenu
                }()
                lazy var pageViewController:FFPageViewController = {
                                let pageVC = FFPageViewController()
                                pageVC.view.backgroundColor = .clear
                                pageVC.scrollview.backgroundColor = .clear
                                pageVC.scrollview.bounces = false
                                return pageVC
                }()
    override func viewDidLoad() {
        super.viewDidLoad()
                                title = "协议政策"
    }
                override func setUI() {
                                super.setUI()
                                pageMenu.delegate = self
                                view.addSubview(pageMenu)
                                pageMenu.snp.makeConstraints { make in
                                                make.left.right.equalToSuperview()
                                                make.height.equalTo(44)
                                                make.top.equalTo(self.view.safeAreaLayoutGuide.snp.top)
                                }
                                view.addSubview(pageViewController.view)
                                pageViewController.view.backgroundColor = .clear
                                pageViewController.delegate = self
                                pageViewController.view.snp.makeConstraints { make in
                                                make.top.equalTo(pageMenu.snp.bottom)
                                                make.left.right.bottom.equalToSuperview()
                                }
                }
}
extension TreatyVC:SPPageMenuDelegate{
                func pageMenu(_ pageMenu: SPPageMenu, itemSelectedAt index: Int) {
                                pageViewController.scroll(toPage: index, animation: true)
                }
}
extension TreatyVC:FFPageViewControllerDelegate{
                func pageViewController(_ pageViewController: FFPageViewController, currentPageChanged currentPage: Int) {
                                pageMenu.selectedItemIndex = currentPage
                }
                func totalPagesOfpageViewController(_ pageViewConteoller: FFPageViewController) -> UInt {
                                return 2
                }
                func pageViewController(_ pageViewConteoller: FFPageViewController, controllerForPage page: Int) -> UIViewController {
                                return WebVC(url: "https://www.baidu.com")
                }
}
XQMuse/Root/Me/VC/WalletRechargeVC.swift
New file
@@ -0,0 +1,24 @@
//
//  WalletRechargeVC.swift
//  XQMuse
//
//  Created by 无故事王国 on 2024/8/21.
//
import UIKit
class WalletRechargeVC: BaseVC {
                @IBOutlet weak var btn_handle: UIButton!
                override func viewDidLoad() {
        super.viewDidLoad()
                                title = "冥愈币充值"
    }
                override func setUI() {
                                view.backgroundColor = UIColor(hexString: "f6f6f6")
                                btn_handle.localGradientColor(cornerRadius: 20)
                }
}
XQMuse/Root/Me/VC/WalletRechargeVC.xib
New file
@@ -0,0 +1,97 @@
<?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="WalletRechargeVC" customModule="XQMuse" customModuleProvider="target">
            <connections>
                <outlet property="btn_handle" destination="dho-ek-UFQ" id="iQC-VU-0Zr"/>
                <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="Ok4-Yz-gOY">
                    <rect key="frame" x="14" y="68" width="365" height="141"/>
                    <subviews>
                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="充值金额" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="nAx-8V-3yC">
                            <rect key="frame" x="10.000000000000004" y="13" width="57.333333333333343" height="17"/>
                            <fontDescription key="fontDescription" type="system" weight="medium" 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>
                        <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" dataMode="none" translatesAutoresizingMaskIntoConstraints="NO" id="dtD-pA-jk2">
                            <rect key="frame" x="0.0" y="58" width="365" height="50"/>
                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                            <constraints>
                                <constraint firstAttribute="height" constant="50" id="bd9-0q-BAP"/>
                            </constraints>
                            <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="10" minimumInteritemSpacing="10" id="Cco-HP-q4Y">
                                <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>
                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                    <constraints>
                        <constraint firstItem="nAx-8V-3yC" firstAttribute="leading" secondItem="Ok4-Yz-gOY" secondAttribute="leading" constant="10" id="1Dh-E8-vyT"/>
                        <constraint firstItem="dtD-pA-jk2" firstAttribute="top" secondItem="nAx-8V-3yC" secondAttribute="bottom" constant="28" id="4E4-or-gJ7"/>
                        <constraint firstAttribute="bottom" secondItem="dtD-pA-jk2" secondAttribute="bottom" constant="33" id="Ndh-eA-Y0R"/>
                        <constraint firstItem="nAx-8V-3yC" firstAttribute="top" secondItem="Ok4-Yz-gOY" secondAttribute="top" constant="13" id="WYJ-dl-1sf"/>
                        <constraint firstAttribute="trailing" secondItem="dtD-pA-jk2" secondAttribute="trailing" id="nvj-jM-GAI"/>
                        <constraint firstItem="dtD-pA-jk2" firstAttribute="leading" secondItem="Ok4-Yz-gOY" secondAttribute="leading" id="tIv-aS-XcX"/>
                    </constraints>
                    <userDefinedRuntimeAttributes>
                        <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/>
                        <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB">
                            <real key="value" value="10"/>
                        </userDefinedRuntimeAttribute>
                    </userDefinedRuntimeAttributes>
                </view>
                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="dho-ek-UFQ">
                    <rect key="frame" x="45" y="269" width="303" height="40"/>
                    <color key="backgroundColor" red="0.54117647059999996" green="0.68235294120000001" blue="0.39607843139999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                    <constraints>
                        <constraint firstAttribute="height" constant="40" id="4UX-8H-LKn"/>
                    </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>
                </button>
            </subviews>
            <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/>
            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
            <constraints>
                <constraint firstItem="Ok4-Yz-gOY" firstAttribute="top" secondItem="fnl-2z-Ty3" secondAttribute="top" constant="9" id="10y-6E-fB3"/>
                <constraint firstItem="dho-ek-UFQ" firstAttribute="top" secondItem="Ok4-Yz-gOY" secondAttribute="bottom" constant="60" id="9fP-sd-mfR"/>
                <constraint firstItem="Ok4-Yz-gOY" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="14" id="FPS-mE-2rl"/>
                <constraint firstItem="dho-ek-UFQ" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="45" id="QJ6-pf-eSf"/>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="dho-ek-UFQ" secondAttribute="trailing" constant="45" id="azm-t3-fHr"/>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="Ok4-Yz-gOY" secondAttribute="trailing" constant="14" id="zDh-wQ-hh2"/>
            </constraints>
            <point key="canvasLocation" x="58.778625954198468" y="20.422535211267608"/>
        </view>
    </objects>
    <resources>
        <systemColor name="systemBackgroundColor">
            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
        </systemColor>
    </resources>
</document>
XQMuse/Root/Me/VC/WalletVC.swift
New file
@@ -0,0 +1,29 @@
//
//  WalletVC.swift
//  XQMuse
//
//  Created by 无故事王国 on 2024/8/21.
//
import UIKit
class WalletVC: BaseVC {
    override func viewDidLoad() {
        super.viewDidLoad()
                                title = "钱包"
    }
                override func setUI() {
                                view.backgroundColor = UIColor(hexString: "#fafafa")
                }
                @IBAction func withdrawAction(_ sender: UIButton) {
                                let vc = BankWithdrawVC()
                                push(vc: vc)
                }
                @IBAction func recharegeAction(_ sender: UIButton) {
                                let vc = WalletRechargeVC()
                                push(vc: vc)
                }
}
XQMuse/Root/Me/VC/WalletVC.xib
New file
@@ -0,0 +1,287 @@
<?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="WalletVC" 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>
                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="bg_voice_top" translatesAutoresizingMaskIntoConstraints="NO" id="YLf-DI-Qac">
                    <rect key="frame" x="0.0" y="0.0" width="393" height="297"/>
                </imageView>
                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="KW9-Cu-mZr">
                    <rect key="frame" x="0.0" y="114" width="393" height="260"/>
                    <subviews>
                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="bg_wallet" translatesAutoresizingMaskIntoConstraints="NO" id="Mnw-W1-t6B">
                            <rect key="frame" x="0.0" y="0.0" width="393" height="260"/>
                        </imageView>
                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="可用余额(元)" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="1hb-Gu-i11">
                            <rect key="frame" x="45.000000000000007" y="27.000000000000004" width="95.666666666666686" height="14.666666666666668"/>
                            <constraints>
                                <constraint firstAttribute="height" constant="14.5" id="RjS-4t-g8T"/>
                            </constraints>
                            <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>
                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ytR-o7-C2p">
                            <rect key="frame" x="45" y="61" width="26.666666666666671" height="30"/>
                            <constraints>
                                <constraint firstAttribute="height" constant="30" id="xUB-51-NIU"/>
                            </constraints>
                            <fontDescription key="fontDescription" type="boldSystem" pointSize="40"/>
                            <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="充值(冥愈币)" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="bTT-6A-oeC">
                            <rect key="frame" x="44.999999999999993" y="123.00000000000001" width="76.333333333333314" height="11.666666666666671"/>
                            <constraints>
                                <constraint firstAttribute="height" constant="11.5" id="yb2-0Y-fpK"/>
                            </constraints>
                            <fontDescription key="fontDescription" type="system" pointSize="12"/>
                            <nil key="textColor"/>
                            <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="2Wj-Qo-uKd">
                            <rect key="frame" x="228.33333333333334" y="123.00000000000001" width="51.666666666666657" height="11.666666666666671"/>
                            <constraints>
                                <constraint firstAttribute="height" constant="11.5" id="WAM-OA-pHr"/>
                            </constraints>
                            <fontDescription key="fontDescription" type="system" pointSize="12"/>
                            <nil key="textColor"/>
                            <nil key="highlightedColor"/>
                        </label>
                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="RPE-c0-yYK">
                            <rect key="frame" x="45" y="143.66666666666669" width="16" height="28.666666666666657"/>
                            <fontDescription key="fontDescription" type="boldSystem" pointSize="24"/>
                            <nil key="textColor"/>
                            <nil key="highlightedColor"/>
                        </label>
                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="0xP-OZ-ZWR">
                            <rect key="frame" x="228.33333333333334" y="143.66666666666669" width="16" height="28.666666666666657"/>
                            <fontDescription key="fontDescription" type="boldSystem" pointSize="24"/>
                            <nil key="textColor"/>
                            <nil key="highlightedColor"/>
                        </label>
                        <stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" spacing="12.5" translatesAutoresizingMaskIntoConstraints="NO" id="ZnL-wn-1sN">
                            <rect key="frame" x="28" y="189" width="337" height="49"/>
                            <subviews>
                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="1fa-be-bVw">
                                    <rect key="frame" x="0.0" y="0.0" width="162.33333333333334" height="49"/>
                                    <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="18"/>
                                    <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.5"/>
                                        </userDefinedRuntimeAttribute>
                                    </userDefinedRuntimeAttributes>
                                    <connections>
                                        <action selector="withdrawAction:" destination="-1" eventType="touchUpInside" id="Tk2-iT-wdF"/>
                                    </connections>
                                </button>
                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="HHE-qz-hlk">
                                    <rect key="frame" x="175" y="0.0" width="162" height="49"/>
                                    <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="18"/>
                                    <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.5"/>
                                        </userDefinedRuntimeAttribute>
                                    </userDefinedRuntimeAttributes>
                                    <connections>
                                        <action selector="recharegeAction:" destination="-1" eventType="touchUpInside" id="Bgj-IC-kFc"/>
                                    </connections>
                                </button>
                            </subviews>
                            <constraints>
                                <constraint firstAttribute="height" constant="49" id="vFY-rp-CZS"/>
                            </constraints>
                        </stackView>
                    </subviews>
                    <constraints>
                        <constraint firstItem="RPE-c0-yYK" firstAttribute="leading" secondItem="bTT-6A-oeC" secondAttribute="leading" id="1Eh-CW-81b"/>
                        <constraint firstAttribute="bottom" secondItem="ZnL-wn-1sN" secondAttribute="bottom" constant="22" id="2YD-3d-ezA"/>
                        <constraint firstItem="bTT-6A-oeC" firstAttribute="leading" secondItem="1hb-Gu-i11" secondAttribute="leading" id="6Za-ai-Z8R"/>
                        <constraint firstItem="0xP-OZ-ZWR" firstAttribute="leading" secondItem="2Wj-Qo-uKd" secondAttribute="leading" id="72f-tZ-utq"/>
                        <constraint firstItem="1hb-Gu-i11" firstAttribute="leading" secondItem="KW9-Cu-mZr" secondAttribute="leading" constant="45" id="8NB-M1-U1K"/>
                        <constraint firstAttribute="trailing" secondItem="Mnw-W1-t6B" secondAttribute="trailing" id="FXZ-Jy-cvW"/>
                        <constraint firstItem="bTT-6A-oeC" firstAttribute="top" secondItem="ytR-o7-C2p" secondAttribute="bottom" constant="32" id="GMQ-8T-uug"/>
                        <constraint firstAttribute="bottom" secondItem="Mnw-W1-t6B" secondAttribute="bottom" id="PcJ-m8-Jlz"/>
                        <constraint firstItem="ytR-o7-C2p" firstAttribute="leading" secondItem="KW9-Cu-mZr" secondAttribute="leading" constant="45" id="Qri-Sl-Foa"/>
                        <constraint firstAttribute="trailing" secondItem="ZnL-wn-1sN" secondAttribute="trailing" constant="28" id="V81-n1-Bbn"/>
                        <constraint firstItem="RPE-c0-yYK" firstAttribute="top" secondItem="bTT-6A-oeC" secondAttribute="bottom" constant="9" id="XVg-Cc-huj"/>
                        <constraint firstItem="Mnw-W1-t6B" firstAttribute="leading" secondItem="KW9-Cu-mZr" secondAttribute="leading" id="YOr-VI-K7v"/>
                        <constraint firstItem="ZnL-wn-1sN" firstAttribute="leading" secondItem="KW9-Cu-mZr" secondAttribute="leading" constant="28" id="Ysd-wz-AY4"/>
                        <constraint firstItem="Mnw-W1-t6B" firstAttribute="top" secondItem="KW9-Cu-mZr" secondAttribute="top" id="ccW-W7-2rs"/>
                        <constraint firstItem="0xP-OZ-ZWR" firstAttribute="centerY" secondItem="RPE-c0-yYK" secondAttribute="centerY" id="ds8-AI-N3a"/>
                        <constraint firstItem="ytR-o7-C2p" firstAttribute="top" secondItem="1hb-Gu-i11" secondAttribute="bottom" constant="19.5" id="eL8-lf-wW1"/>
                        <constraint firstItem="2Wj-Qo-uKd" firstAttribute="centerY" secondItem="bTT-6A-oeC" secondAttribute="centerY" id="nt7-iQ-KM7"/>
                        <constraint firstAttribute="trailing" secondItem="2Wj-Qo-uKd" secondAttribute="trailing" constant="113" id="vDo-cj-vR3"/>
                        <constraint firstItem="1hb-Gu-i11" firstAttribute="top" secondItem="KW9-Cu-mZr" secondAttribute="top" constant="27" id="wjx-0a-bgI"/>
                    </constraints>
                </view>
                <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="d4r-tq-ZJ0">
                    <rect key="frame" x="16" y="382" width="361" height="102"/>
                    <subviews>
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="n8v-Zl-Su5">
                            <rect key="frame" x="0.0" y="0.0" width="361" height="51"/>
                            <subviews>
                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="CTT-vC-tUN">
                                    <rect key="frame" x="0.0" y="50.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="X1M-Na-Jo4"/>
                                    </constraints>
                                </view>
                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_coin" translatesAutoresizingMaskIntoConstraints="NO" id="vao-0m-YYq">
                                    <rect key="frame" x="16" y="17.666666666666686" width="15.666666666666664" height="15.666666666666664"/>
                                </imageView>
                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="余额明细" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Irv-xl-Q2e">
                                    <rect key="frame" x="41.666666666666657" y="17.666666666666686" width="53.333333333333343" height="15.666666666666664"/>
                                    <fontDescription key="fontDescription" type="system" pointSize="13"/>
                                    <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="ENG-Pn-f6h">
                                    <rect key="frame" x="336" y="20.333333333333314" width="6" height="10.666666666666664"/>
                                </imageView>
                            </subviews>
                            <constraints>
                                <constraint firstItem="CTT-vC-tUN" firstAttribute="leading" secondItem="n8v-Zl-Su5" secondAttribute="leading" id="4xI-Pt-g3V"/>
                                <constraint firstAttribute="height" constant="51" id="8OS-KN-Iq7"/>
                                <constraint firstAttribute="trailing" secondItem="CTT-vC-tUN" secondAttribute="trailing" id="OX7-bc-DUo"/>
                                <constraint firstItem="vao-0m-YYq" firstAttribute="centerY" secondItem="n8v-Zl-Su5" secondAttribute="centerY" id="Pum-YL-H5q"/>
                                <constraint firstItem="vao-0m-YYq" firstAttribute="leading" secondItem="n8v-Zl-Su5" secondAttribute="leading" constant="16" id="j9F-fC-kw2"/>
                                <constraint firstAttribute="bottom" secondItem="CTT-vC-tUN" secondAttribute="bottom" id="jMC-mI-kF3"/>
                                <constraint firstItem="Irv-xl-Q2e" firstAttribute="centerY" secondItem="vao-0m-YYq" secondAttribute="centerY" id="kfr-Nb-t2D"/>
                                <constraint firstAttribute="trailing" secondItem="ENG-Pn-f6h" secondAttribute="trailing" constant="19" id="scM-YB-3iJ"/>
                                <constraint firstItem="ENG-Pn-f6h" firstAttribute="centerY" secondItem="n8v-Zl-Su5" secondAttribute="centerY" id="xls-qW-7T6"/>
                                <constraint firstItem="Irv-xl-Q2e" firstAttribute="leading" secondItem="vao-0m-YYq" secondAttribute="trailing" constant="10" id="yDc-Lz-o7V"/>
                            </constraints>
                        </view>
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="qMJ-nq-nHL">
                            <rect key="frame" x="0.0" y="51" width="361" height="51"/>
                            <subviews>
                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="phv-ve-Q3R">
                                    <rect key="frame" x="0.0" y="50.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="sSZ-oa-ZN3"/>
                                    </constraints>
                                </view>
                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_like" translatesAutoresizingMaskIntoConstraints="NO" id="J7r-og-biD">
                                    <rect key="frame" x="16" y="18.666666666666686" width="14.666666666666664" height="13.666666666666664"/>
                                </imageView>
                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="推荐名单" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ibw-8k-fbD">
                                    <rect key="frame" x="40.666666666666657" y="17.666666666666686" width="53.333333333333343" height="15.666666666666664"/>
                                    <fontDescription key="fontDescription" type="system" pointSize="13"/>
                                    <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="VLy-d2-kWx">
                                    <rect key="frame" x="336" y="20.333333333333314" width="6" height="10.666666666666664"/>
                                </imageView>
                            </subviews>
                            <constraints>
                                <constraint firstItem="J7r-og-biD" firstAttribute="leading" secondItem="qMJ-nq-nHL" secondAttribute="leading" constant="16" id="3cQ-eG-kD9"/>
                                <constraint firstItem="ibw-8k-fbD" firstAttribute="leading" secondItem="J7r-og-biD" secondAttribute="trailing" constant="10" id="3pk-Oz-TRG"/>
                                <constraint firstAttribute="height" constant="51" id="4lX-LV-EgP"/>
                                <constraint firstItem="phv-ve-Q3R" firstAttribute="leading" secondItem="qMJ-nq-nHL" secondAttribute="leading" id="OAQ-pI-vdb"/>
                                <constraint firstItem="ibw-8k-fbD" firstAttribute="centerY" secondItem="J7r-og-biD" secondAttribute="centerY" id="Td2-uz-YwG"/>
                                <constraint firstAttribute="trailing" secondItem="VLy-d2-kWx" secondAttribute="trailing" constant="19" id="U0t-yy-ID3"/>
                                <constraint firstAttribute="bottom" secondItem="phv-ve-Q3R" secondAttribute="bottom" id="XAe-Ze-bP7"/>
                                <constraint firstItem="VLy-d2-kWx" firstAttribute="centerY" secondItem="qMJ-nq-nHL" secondAttribute="centerY" id="ZgT-J8-R9N"/>
                                <constraint firstAttribute="trailing" secondItem="phv-ve-Q3R" secondAttribute="trailing" id="eTh-bT-tcn"/>
                                <constraint firstItem="J7r-og-biD" firstAttribute="centerY" secondItem="qMJ-nq-nHL" secondAttribute="centerY" id="l80-3F-Xjw"/>
                            </constraints>
                        </view>
                    </subviews>
                </stackView>
                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="rlo-Ro-eiy">
                    <rect key="frame" x="14.666666666666657" y="519.66666666666663" width="364" height="66.333333333333371"/>
                    <subviews>
                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="推荐心泉疗愈给好友" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="XgZ-h6-scF">
                            <rect key="frame" x="9.3333333333333357" y="25.333333333333375" width="119.66666666666666" height="15.666666666666668"/>
                            <fontDescription key="fontDescription" type="system" pointSize="13"/>
                            <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="btn_sendGift" translatesAutoresizingMaskIntoConstraints="NO" id="qXC-0b-5WY">
                            <rect key="frame" x="313.33333333333331" y="21.333333333333371" width="20.666666666666686" height="23.666666666666671"/>
                        </imageView>
                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_more" translatesAutoresizingMaskIntoConstraints="NO" id="ob5-NP-f5y">
                            <rect key="frame" x="349" y="27.666666666666746" width="6" height="10.666666666666668"/>
                        </imageView>
                    </subviews>
                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                    <constraints>
                        <constraint firstItem="XgZ-h6-scF" firstAttribute="centerY" secondItem="rlo-Ro-eiy" secondAttribute="centerY" id="3qd-yK-9zs"/>
                        <constraint firstAttribute="trailing" secondItem="ob5-NP-f5y" secondAttribute="trailing" constant="9" id="Anp-wU-2jN"/>
                        <constraint firstItem="ob5-NP-f5y" firstAttribute="centerY" secondItem="rlo-Ro-eiy" secondAttribute="centerY" id="GSL-J5-uWI"/>
                        <constraint firstItem="qXC-0b-5WY" firstAttribute="centerY" secondItem="rlo-Ro-eiy" secondAttribute="centerY" id="Iuy-dN-KLr"/>
                        <constraint firstItem="XgZ-h6-scF" firstAttribute="leading" secondItem="rlo-Ro-eiy" secondAttribute="leading" constant="9.5" id="WEu-Jt-kap"/>
                        <constraint firstAttribute="height" constant="66.5" id="qNs-wV-K5C"/>
                        <constraint firstAttribute="trailing" secondItem="qXC-0b-5WY" secondAttribute="trailing" constant="30" id="sbG-Hl-kN3"/>
                    </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>
            <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/>
            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
            <constraints>
                <constraint firstItem="d4r-tq-ZJ0" firstAttribute="top" secondItem="KW9-Cu-mZr" secondAttribute="bottom" constant="8" id="0eh-F9-8Gk"/>
                <constraint firstItem="YLf-DI-Qac" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="8fh-Bk-03T"/>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="rlo-Ro-eiy" secondAttribute="trailing" constant="14.5" id="8yy-8k-olj"/>
                <constraint firstItem="YLf-DI-Qac" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" id="EAo-wz-7IC"/>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="KW9-Cu-mZr" secondAttribute="trailing" id="PcZ-V2-diT"/>
                <constraint firstItem="rlo-Ro-eiy" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="14.5" id="enX-zD-hrJ"/>
                <constraint firstItem="KW9-Cu-mZr" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="lj7-Da-LR3"/>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="YLf-DI-Qac" secondAttribute="trailing" id="nJw-8K-jzB"/>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="d4r-tq-ZJ0" secondAttribute="trailing" constant="16" id="ock-wG-9ur"/>
                <constraint firstItem="rlo-Ro-eiy" firstAttribute="top" secondItem="d4r-tq-ZJ0" secondAttribute="bottom" constant="35.5" id="srM-0i-jqr"/>
                <constraint firstItem="d4r-tq-ZJ0" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="16" id="uwW-4R-9mn"/>
                <constraint firstItem="KW9-Cu-mZr" firstAttribute="top" secondItem="fnl-2z-Ty3" secondAttribute="top" constant="55" id="yvr-8T-ZHb"/>
            </constraints>
            <point key="canvasLocation" x="139.69465648854961" y="20.422535211267608"/>
        </view>
    </objects>
    <resources>
        <image name="bg_voice_top" width="390" height="297"/>
        <image name="bg_wallet" width="364.66665649414062" height="260"/>
        <image name="btn_sendGift" width="20.666666030883789" height="23.666666030883789"/>
        <image name="icon_coin" width="15.666666984558105" height="15.666666984558105"/>
        <image name="icon_like" width="14.666666984558105" height="13.666666984558105"/>
        <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/Other/View/CommonAlertView.swift
New file
@@ -0,0 +1,101 @@
//
//  CommonAlertView.swift
//  WanPai
//
//  Created by 杨锴 on 2023/6/7.
//
import UIKit
import JQTools
class CommonAlertView: UIView,JQNibView{
                @IBOutlet weak var view_container: UIView!
                @IBOutlet weak var label_title: UILabel!
                @IBOutlet weak var label_content: UILabel!
                @IBOutlet weak var btn_cancel: UIButton!
                @IBOutlet weak var btn_complete: UIButton!
                private var title:String!
                private var content:String!
                private var clouse:((Bool)->Void)!
                override func awakeFromNib() {
                                super.awakeFromNib()
                                view_container.transform = .init(scaleX: 0.1, y: 0.1)
                                alpha = 0
                                layoutIfNeeded()
                }
                static func show(title:String,content:String,cancelStr:String? = nil,completeStr:String? = nil,isSingle:Bool = false, clouse:@escaping (Bool)->Void){
                                let alertView = CommonAlertView.jq_loadNibView()
                                alertView.label_title.text = title
                                alertView.label_content.text = content
                                alertView.btn_cancel.isHidden = isSingle
                                if cancelStr != nil{
                                                alertView.btn_cancel.setTitle(cancelStr!, for: .normal)
                                }
                                if completeStr != nil{
                                                alertView.btn_complete.setTitle(completeStr!, for: .normal)
                                }
                                alertView.clouse = clouse
                                alertView.frame = sceneDelegate?.window?.frame ?? .zero
                                sceneDelegate?.window?.addSubview(alertView)
                                UIView.animate(withDuration: 0.4) {
                                                alertView.view_container.transform = .init(scaleX: 1.0, y: 1.0)
                                                alertView.alpha = 1
                                }
                                alertView.layoutSubviews()
                }
                static func show(title:String,attribute:NSMutableAttributedString,isSingle:Bool = false, clouse:@escaping (Bool)->Void){
                                let alertView = CommonAlertView.jq_loadNibView()
                                alertView.label_title.text = title
                                alertView.btn_cancel.isHidden = isSingle
                                alertView.label_content.attributedText = attribute
                                alertView.clouse = clouse
                                alertView.frame = sceneDelegate?.window?.frame ?? .zero
                                sceneDelegate?.window?.addSubview(alertView)
                                UIView.animate(withDuration: 0.4) {
                                                alertView.view_container.transform = .init(scaleX: 1.0, y: 1.0)
                                                alertView.alpha = 1
                                }
                                alertView.layoutSubviews()
                }
                override func layoutSubviews() {
                                super.layoutSubviews()
                                btn_complete.jq_gradientNibColor(colorArr:  [UIColor(hexStr: "#8EA47A").cgColor,UIColor(hexStr: "#AFCA98").cgColor], cornerRadius: 20)
//                                btn_complete.localGradientColor(cornerRadius: 20)
                }
                @IBAction func closeAction(_ sender: UIButton) {
                                UIView.animate(withDuration: 0.4) {
                                                self.view_container.transform = .init(scaleX: 0.1, y: 0.1)
                                                self.alpha = 0
                                }completion: { _ in
                                                self.clouse!(false)
                                                self.removeFromSuperview()
                                }
                }
                @IBAction func completeAction(_ sender: UIButton) {
                                UIView.animate(withDuration: 0.4) {
                                                self.view_container.transform = .init(scaleX: 0.1, y: 0.1)
                                                self.alpha = 0
                                }completion: { _ in
                                                self.clouse!(true)
                                                self.removeFromSuperview()
                                }
                }
}
XQMuse/Root/Other/View/CommonAlertView.xib
New file
@@ -0,0 +1,128 @@
<?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="CommonAlertView" customModule="XQMuse" 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="MnH-T0-9ye">
                    <rect key="frame" x="45" y="328.66666666666669" width="303" height="220.00000000000006"/>
                    <subviews>
                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="8x2-bB-pNn">
                            <rect key="frame" x="143.33333333333334" y="24" width="16.333333333333343" height="18"/>
                            <constraints>
                                <constraint firstAttribute="height" constant="18" id="l8v-Dr-xT5"/>
                            </constraints>
                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="18"/>
                            <nil key="textColor"/>
                            <nil key="highlightedColor"/>
                        </label>
                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="raL-bN-qOz">
                            <rect key="frame" x="30" y="85" width="243" height="20"/>
                            <constraints>
                                <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="20" id="hYQ-ML-EmM"/>
                            </constraints>
                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.58999999999999997" colorSpace="custom" customColorSpace="calibratedRGB"/>
                            <nil key="highlightedColor"/>
                        </label>
                        <stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="fy8-sq-PJ2">
                            <rect key="frame" x="40" y="160" width="223" height="40"/>
                            <subviews>
                                <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="x3p-KY-6M2">
                                    <rect key="frame" x="0.0" y="0.0" width="0.0" height="40"/>
                                    <color key="backgroundColor" red="0.75294117647058822" green="0.75294117647058822" blue="0.75294117647058822" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                    <constraints>
                                        <constraint firstAttribute="height" constant="40" id="OWJ-IA-1NL"/>
                                    </constraints>
                                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
                                    <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                                    <state key="normal" title="取消"/>
                                    <userDefinedRuntimeAttributes>
                                        <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB">
                                            <real key="value" value="20"/>
                                        </userDefinedRuntimeAttribute>
                                        <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/>
                                    </userDefinedRuntimeAttributes>
                                    <connections>
                                        <action selector="closeAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="qjm-NM-7gd"/>
                                    </connections>
                                </button>
                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="LFA-NB-5g9">
                                    <rect key="frame" x="0.0" y="0.0" width="223" height="40"/>
                                    <color key="backgroundColor" red="0.54117647059999996" green="0.68235294120000001" blue="0.39607843139999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                    <constraints>
                                        <constraint firstAttribute="height" constant="40" id="GQ8-9x-bGQ"/>
                                    </constraints>
                                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
                                    <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                                    <state key="normal" title="确认"/>
                                    <userDefinedRuntimeAttributes>
                                        <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB">
                                            <real key="value" value="20"/>
                                        </userDefinedRuntimeAttribute>
                                        <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/>
                                    </userDefinedRuntimeAttributes>
                                    <connections>
                                        <action selector="completeAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="dBQ-CY-qOk"/>
                                    </connections>
                                </button>
                            </subviews>
                        </stackView>
                    </subviews>
                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                    <constraints>
                        <constraint firstItem="fy8-sq-PJ2" firstAttribute="centerX" secondItem="MnH-T0-9ye" secondAttribute="centerX" id="1Hg-jW-kxR"/>
                        <constraint firstAttribute="bottom" secondItem="fy8-sq-PJ2" secondAttribute="bottom" constant="20" id="A10-oV-IHK"/>
                        <constraint firstItem="fy8-sq-PJ2" firstAttribute="top" secondItem="raL-bN-qOz" secondAttribute="bottom" constant="55" id="Ar9-mL-jBv"/>
                        <constraint firstAttribute="trailing" secondItem="fy8-sq-PJ2" secondAttribute="trailing" constant="40" id="CKl-pv-K77"/>
                        <constraint firstAttribute="trailing" secondItem="raL-bN-qOz" secondAttribute="trailing" constant="30" id="T4d-qj-pFi"/>
                        <constraint firstItem="8x2-bB-pNn" firstAttribute="centerX" secondItem="MnH-T0-9ye" secondAttribute="centerX" id="cVP-So-X9I"/>
                        <constraint firstItem="raL-bN-qOz" firstAttribute="leading" secondItem="MnH-T0-9ye" secondAttribute="leading" constant="30" id="lDV-JW-sCh"/>
                        <constraint firstItem="8x2-bB-pNn" firstAttribute="top" secondItem="MnH-T0-9ye" secondAttribute="top" constant="24" id="mGE-YB-U7v"/>
                        <constraint firstItem="raL-bN-qOz" firstAttribute="top" secondItem="8x2-bB-pNn" secondAttribute="bottom" constant="43" id="oSb-O8-R6D"/>
                        <constraint firstItem="fy8-sq-PJ2" firstAttribute="leading" secondItem="MnH-T0-9ye" secondAttribute="leading" constant="40" id="yKt-aE-ake"/>
                        <constraint firstItem="raL-bN-qOz" firstAttribute="centerX" secondItem="MnH-T0-9ye" secondAttribute="centerX" id="ycu-Gg-hDl"/>
                    </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>
            <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="MnH-T0-9ye" firstAttribute="leading" secondItem="vUN-kp-3ea" secondAttribute="leading" constant="45" id="ABS-et-C1Y"/>
                <constraint firstItem="vUN-kp-3ea" firstAttribute="trailing" secondItem="MnH-T0-9ye" secondAttribute="trailing" constant="45" id="bFi-tH-mLF"/>
                <constraint firstItem="MnH-T0-9ye" firstAttribute="centerY" secondItem="vUN-kp-3ea" secondAttribute="centerY" id="nfR-kN-8UJ"/>
                <constraint firstItem="MnH-T0-9ye" firstAttribute="centerX" secondItem="vUN-kp-3ea" secondAttribute="centerX" id="yAL-tj-KsX"/>
            </constraints>
            <connections>
                <outlet property="btn_cancel" destination="x3p-KY-6M2" id="w1r-K8-3Ep"/>
                <outlet property="btn_complete" destination="LFA-NB-5g9" id="ac1-Fq-hJo"/>
                <outlet property="label_content" destination="raL-bN-qOz" id="Q9R-w7-I7r"/>
                <outlet property="label_title" destination="8x2-bB-pNn" id="HQr-lE-rhB"/>
                <outlet property="view_container" destination="MnH-T0-9ye" id="6dr-Ul-VK3"/>
            </connections>
            <point key="canvasLocation" x="-28.244274809160306" 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/IdCardView.swift
New file
@@ -0,0 +1,128 @@
//
//  IdCardView.swift
//  XQMuse
//
//  Created by 无故事王国 on 2024/8/21.
//
import UIKit
class IDCardView: UIView {
                var box:Box<String>!
                private let VIEW_HEIGHT:Double = 200
                private let SafeInserts =  UIApplication.shared.keyWindow?.safeAreaInsets ?? .zero
                private var screenW = UIScreen.main.bounds.size.width
                private var avgCellW:Double!
                private var avgCellH:Double!
                private var cellItems = ["1","2","3","4","5","6","7","8","9","X","0","Del"]
                private var content:String = ""
                private var btn_X:UIButton!
                private var btn_Del:UIButton!
                override init(frame: CGRect) {
                                super.init(frame: frame)
                                setUI()
                                box = Box()
                }
                private func setUI(){
                                avgCellW = screenW / 3.0
                                avgCellH = VIEW_HEIGHT / 4.0
                                frame = CGRect(center: .zero, size: CGSize(width: screenW, height: VIEW_HEIGHT + SafeInserts.bottom))
                                backgroundColor = .white
                                for (index,item) in cellItems.enumerated() {
                                                let i = Double(index).truncatingRemainder(dividingBy: 3.0)
                                                let j = floor(Double(index) / 3.0)
                                                let btn = createButton(text: item, indexTag: index)
                                                btn.frame = CGRect(x: i * avgCellW, y: j * avgCellH, width: avgCellW, height: avgCellH)
                                                btn.layer.borderColor = UIColor.gray.withAlphaComponent(0.2).cgColor
                                                btn.layer.borderWidth = 0.5
                                                btn.setTitleColor(.gray.withAlphaComponent(0.2), for: .disabled)
                                                addSubview(btn)
                                }
                }
                private func createButton(text:String,indexTag:Int)->UIButton{
                                let btn = UIButton(type: .roundedRect)
                                if text == "Del"{
                                                if #available(iOS 13.0, *) {
                                                                btn.setImage(UIImage(systemName: "delete.left")?.withTintColor(.black), for: .normal)
                                                } else {
                                                                btn.setTitle("Del", for: .normal)
                                                }
                                }else{
                                                btn.setTitle(text, for: .normal)
                                }
                                btn.tag = 10 + indexTag
                                btn.titleLabel?.font = UIFont.systemFont(ofSize: 20, weight: .medium)
                                btn.setTitleColor(.black, for: .normal)
                                btn.addTarget(self, action: #selector(tapAction(_:)), for: .touchUpInside)
                                btn.setTitleColor(.gray, for: .highlighted)
                                if  text == "X"{
                                                btn_X = btn;btn_X.isEnabled = false
                                }
                                if text == "Del"{
                                                btn_Del = btn
                                                let longGesture = UILongPressGestureRecognizer(target: self, action: #selector(longGesture))
                                                btn_Del.addGestureRecognizer(longGesture)
                                }
                                return btn
                }
                @objc private  func tapAction(_ btn:UIButton){
                                guard let text = btn.titleLabel?.text else {
                                                if !content.isEmpty{content.removeLast()}
                                                box.value = content
                                                btn_X.isEnabled = content.count == 17
                                                return
                                }
                                if content.count <= 17{
                                                content.append(text)
                                }
                                btn_X.isEnabled = content.count == 17
                                box.value = content
                }
                @objc private func longGesture(_ gesture:UILongPressGestureRecognizer){
                                if content.count > 0{
                                                content.removeLast()
                                                box.value = content
                                }
                }
                required init?(coder: NSCoder) {
                                fatalError("init(coder:) has not been implemented")
                }
}
final class Box<T> {
                // 声明一个别名
                typealias Listener = (T) -> Void
                var listener: Listener?
                var value: T? {
                                didSet {
                                                guard let v = value else { return }
                                                listener?(v)
                                }
                }
                init(_ value: T? = nil){
                                self.value = value
                }
                func bind(listener: Listener?) {
                                self.listener = listener
                                guard let v = value else { return }
                                listener?(v)
                }
}
XQMuse/SceneDelegate.swift
@@ -42,6 +42,10 @@
                    }
    }
                func needLogin(){
                }
    func sceneDidDisconnect(_ scene: UIScene) {
        // Called as the scene is being released by the system.
        // This occurs shortly after the scene enters the background, or when its session is discarded.