New file |
| | |
| | | // !$*UTF8*$! |
| | | { |
| | | archiveVersion = 1; |
| | | classes = { |
| | | }; |
| | | objectVersion = 56; |
| | | objects = { |
| | | |
| | | /* Begin PBXBuildFile section */ |
| | | 1302782A2BFD957100DDCE81 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 130278292BFD957100DDCE81 /* AppDelegate.swift */; }; |
| | | 1302782C2BFD957100DDCE81 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1302782B2BFD957100DDCE81 /* SceneDelegate.swift */; }; |
| | | 130278312BFD957100DDCE81 /* Base in Resources */ = {isa = PBXBuildFile; fileRef = 130278302BFD957100DDCE81 /* Base */; }; |
| | | 130278332BFD957300DDCE81 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 130278322BFD957300DDCE81 /* Assets.xcassets */; }; |
| | | 130278362BFD957300DDCE81 /* Base in Resources */ = {isa = PBXBuildFile; fileRef = 130278352BFD957300DDCE81 /* Base */; }; |
| | | 130278412BFD978900DDCE81 /* Config.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1302783E2BFD978900DDCE81 /* Config.swift */; }; |
| | | 130278422BFD978900DDCE81 /* Enums.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1302783F2BFD978900DDCE81 /* Enums.swift */; }; |
| | | 130278482BFD979200DDCE81 /* BaseNav.swift in Sources */ = {isa = PBXBuildFile; fileRef = 130278432BFD979200DDCE81 /* BaseNav.swift */; }; |
| | | 130278492BFD979200DDCE81 /* BaseTabBarVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 130278442BFD979200DDCE81 /* BaseTabBarVC.swift */; }; |
| | | 1302784A2BFD979200DDCE81 /* BaseVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 130278452BFD979200DDCE81 /* BaseVC.swift */; }; |
| | | 1302784B2BFD979200DDCE81 /* TapBtn.swift in Sources */ = {isa = PBXBuildFile; fileRef = 130278462BFD979200DDCE81 /* TapBtn.swift */; }; |
| | | 130278592BFD985E00DDCE81 /* BitrhdayPickerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 130278512BFD985E00DDCE81 /* BitrhdayPickerView.swift */; }; |
| | | 1302785A2BFD985E00DDCE81 /* CommonAlertView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 130278522BFD985E00DDCE81 /* CommonAlertView.swift */; }; |
| | | 1302785B2BFD985E00DDCE81 /* CommonAlertView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 130278532BFD985E00DDCE81 /* CommonAlertView.xib */; }; |
| | | 1302785C2BFD985E00DDCE81 /* CommonInputView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 130278542BFD985E00DDCE81 /* CommonInputView.swift */; }; |
| | | 1302785D2BFD985E00DDCE81 /* CommonInputView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 130278552BFD985E00DDCE81 /* CommonInputView.xib */; }; |
| | | 1302785E2BFD985E00DDCE81 /* CommonWebVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 130278572BFD985E00DDCE81 /* CommonWebVC.swift */; }; |
| | | 130278612BFD999200DDCE81 /* LoginVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 130278602BFD999200DDCE81 /* LoginVC.xib */; }; |
| | | 130278622BFD999200DDCE81 /* LoginVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1302785F2BFD999200DDCE81 /* LoginVC.swift */; }; |
| | | 130278662BFD9E8C00DDCE81 /* HomeVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 130278652BFD9E8C00DDCE81 /* HomeVC.xib */; }; |
| | | 130278672BFD9E8C00DDCE81 /* HomeVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 130278642BFD9E8C00DDCE81 /* HomeVC.swift */; }; |
| | | 130278762BFD9ED600DDCE81 /* MarketCCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1302786A2BFD9ED600DDCE81 /* MarketCCell.swift */; }; |
| | | 130278772BFD9ED600DDCE81 /* MarketCCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1302786B2BFD9ED600DDCE81 /* MarketCCell.xib */; }; |
| | | 130278782BFD9ED600DDCE81 /* MarketVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1302786D2BFD9ED600DDCE81 /* MarketVC.swift */; }; |
| | | 130278792BFD9ED600DDCE81 /* ExchangeResultVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1302786E2BFD9ED600DDCE81 /* ExchangeResultVC.swift */; }; |
| | | 1302787A2BFD9ED600DDCE81 /* ExchangeResultVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1302786F2BFD9ED600DDCE81 /* ExchangeResultVC.xib */; }; |
| | | 1302787B2BFD9ED600DDCE81 /* MarketContentVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 130278702BFD9ED600DDCE81 /* MarketContentVC.swift */; }; |
| | | 1302787C2BFD9ED600DDCE81 /* MarketContentVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 130278712BFD9ED600DDCE81 /* MarketContentVC.xib */; }; |
| | | 1302787D2BFD9ED600DDCE81 /* MarketExchangeVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 130278722BFD9ED600DDCE81 /* MarketExchangeVC.swift */; }; |
| | | 1302787E2BFD9ED600DDCE81 /* MarketExchangeVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 130278732BFD9ED600DDCE81 /* MarketExchangeVC.xib */; }; |
| | | 1302787F2BFD9ED600DDCE81 /* MarketVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 130278752BFD9ED600DDCE81 /* MarketVC.xib */; }; |
| | | 130278822BFD9F0700DDCE81 /* MeVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 130278812BFD9F0700DDCE81 /* MeVC.xib */; }; |
| | | 130278832BFD9F0700DDCE81 /* MeVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 130278802BFD9F0700DDCE81 /* MeVC.swift */; }; |
| | | 130278872BFD9F2A00DDCE81 /* AddressManageHandleVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 130278842BFD9F2A00DDCE81 /* AddressManageHandleVC.swift */; }; |
| | | 130278882BFD9F2A00DDCE81 /* AddressManageHandleVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 130278852BFD9F2A00DDCE81 /* AddressManageHandleVC.xib */; }; |
| | | 130278892BFD9F2A00DDCE81 /* AddressManageVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 130278862BFD9F2A00DDCE81 /* AddressManageVC.swift */; }; |
| | | 1302788D2BFD9F4200DDCE81 /* CoinRecordHistoryVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1302788B2BFD9F4200DDCE81 /* CoinRecordHistoryVC.swift */; }; |
| | | 1302788E2BFD9F4200DDCE81 /* CoinRecordHistoryVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1302788C2BFD9F4200DDCE81 /* CoinRecordHistoryVC.xib */; }; |
| | | 130278962BFD9FBF00DDCE81 /* Home_1_TCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 130278902BFD9FBF00DDCE81 /* Home_1_TCell.xib */; }; |
| | | 130278972BFD9FBF00DDCE81 /* AddressManageTCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 130278912BFD9FBF00DDCE81 /* AddressManageTCell.xib */; }; |
| | | 130278982BFD9FBF00DDCE81 /* GoodsItemTCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 130278922BFD9FBF00DDCE81 /* GoodsItemTCell.xib */; }; |
| | | 130278992BFD9FBF00DDCE81 /* Home_1_TCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 130278932BFD9FBF00DDCE81 /* Home_1_TCell.swift */; }; |
| | | 1302789A2BFD9FBF00DDCE81 /* AddressManageTCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 130278942BFD9FBF00DDCE81 /* AddressManageTCell.swift */; }; |
| | | 1302789B2BFD9FBF00DDCE81 /* GoodsItemTCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 130278952BFD9FBF00DDCE81 /* GoodsItemTCell.swift */; }; |
| | | 138964002BFDF98200AEDCD9 /* StudyVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 138963FE2BFDF98200AEDCD9 /* StudyVC.swift */; }; |
| | | 138964012BFDF98200AEDCD9 /* StudyVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 138963FF2BFDF98200AEDCD9 /* StudyVC.xib */; }; |
| | | 13E07DF12BFDF1E600B7F5FB /* ExchangeRecordHistoryVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13E07DF02BFDF1E600B7F5FB /* ExchangeRecordHistoryVC.swift */; }; |
| | | 13EEB8912BFED3F3002996FC /* AwardListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13EEB8902BFED3F3002996FC /* AwardListView.swift */; }; |
| | | 13EEB8932BFED3FA002996FC /* AwardListView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13EEB8922BFED3FA002996FC /* AwardListView.xib */; }; |
| | | 13EEB8972BFF1531002996FC /* AwardListCCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13EEB8952BFF1531002996FC /* AwardListCCell.swift */; }; |
| | | 13EEB8982BFF1531002996FC /* AwardListCCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13EEB8962BFF1531002996FC /* AwardListCCell.xib */; }; |
| | | 13EEB89C2BFF1C35002996FC /* HomeListenMenuVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13EEB89A2BFF1C35002996FC /* HomeListenMenuVC.swift */; }; |
| | | 13EEB89D2BFF1C35002996FC /* HomeListenMenuVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13EEB89B2BFF1C35002996FC /* HomeListenMenuVC.xib */; }; |
| | | 13EEB8A02BFF28A7002996FC /* HomeListenVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13EEB89F2BFF28A7002996FC /* HomeListenVC.swift */; }; |
| | | 13EEB8A42BFF353C002996FC /* HomeListen_process_TCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13EEB8A22BFF353C002996FC /* HomeListen_process_TCell.swift */; }; |
| | | 13EEB8A52BFF353C002996FC /* HomeListen_process_TCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13EEB8A32BFF353C002996FC /* HomeListen_process_TCell.xib */; }; |
| | | 13EEB8A82BFF354B002996FC /* HomeListen_item_TCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13EEB8A62BFF354B002996FC /* HomeListen_item_TCell.swift */; }; |
| | | 13EEB8A92BFF354B002996FC /* HomeListen_item_TCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13EEB8A72BFF354B002996FC /* HomeListen_item_TCell.xib */; }; |
| | | 13EEB8AB2BFF36E0002996FC /* HomeListenSubVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13EEB8AA2BFF36E0002996FC /* HomeListenSubVC.swift */; }; |
| | | AABBA9CFF928AFAC4A01F16D /* Pods_DolphinEnglishLearnStudent.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EA21DA5F8583B67AC7D13D0A /* Pods_DolphinEnglishLearnStudent.framework */; }; |
| | | /* End PBXBuildFile section */ |
| | | |
| | | /* Begin PBXFileReference section */ |
| | | 0A4D4E7CA7617F7B03C7FDFB /* Pods-DolphinEnglishLearnStudent.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-DolphinEnglishLearnStudent.release.xcconfig"; path = "Target Support Files/Pods-DolphinEnglishLearnStudent/Pods-DolphinEnglishLearnStudent.release.xcconfig"; sourceTree = "<group>"; }; |
| | | 130278262BFD957100DDCE81 /* DolphinEnglishLearnStudent.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = DolphinEnglishLearnStudent.app; sourceTree = BUILT_PRODUCTS_DIR; }; |
| | | 130278292BFD957100DDCE81 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; }; |
| | | 1302782B2BFD957100DDCE81 /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = "<group>"; }; |
| | | 130278302BFD957100DDCE81 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; }; |
| | | 130278322BFD957300DDCE81 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; }; |
| | | 130278352BFD957300DDCE81 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; }; |
| | | 130278372BFD957300DDCE81 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; |
| | | 1302783E2BFD978900DDCE81 /* Config.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Config.swift; sourceTree = "<group>"; }; |
| | | 1302783F2BFD978900DDCE81 /* Enums.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Enums.swift; sourceTree = "<group>"; }; |
| | | 130278432BFD979200DDCE81 /* BaseNav.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseNav.swift; sourceTree = "<group>"; }; |
| | | 130278442BFD979200DDCE81 /* BaseTabBarVC.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseTabBarVC.swift; sourceTree = "<group>"; }; |
| | | 130278452BFD979200DDCE81 /* BaseVC.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseVC.swift; sourceTree = "<group>"; }; |
| | | 130278462BFD979200DDCE81 /* TapBtn.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TapBtn.swift; sourceTree = "<group>"; }; |
| | | 130278512BFD985E00DDCE81 /* BitrhdayPickerView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BitrhdayPickerView.swift; sourceTree = "<group>"; }; |
| | | 130278522BFD985E00DDCE81 /* CommonAlertView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CommonAlertView.swift; sourceTree = "<group>"; }; |
| | | 130278532BFD985E00DDCE81 /* CommonAlertView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CommonAlertView.xib; sourceTree = "<group>"; }; |
| | | 130278542BFD985E00DDCE81 /* CommonInputView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CommonInputView.swift; sourceTree = "<group>"; }; |
| | | 130278552BFD985E00DDCE81 /* CommonInputView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CommonInputView.xib; sourceTree = "<group>"; }; |
| | | 130278572BFD985E00DDCE81 /* CommonWebVC.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CommonWebVC.swift; sourceTree = "<group>"; }; |
| | | 1302785F2BFD999200DDCE81 /* LoginVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginVC.swift; sourceTree = "<group>"; }; |
| | | 130278602BFD999200DDCE81 /* LoginVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = LoginVC.xib; sourceTree = "<group>"; }; |
| | | 130278642BFD9E8C00DDCE81 /* HomeVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeVC.swift; sourceTree = "<group>"; }; |
| | | 130278652BFD9E8C00DDCE81 /* HomeVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = HomeVC.xib; sourceTree = "<group>"; }; |
| | | 1302786A2BFD9ED600DDCE81 /* MarketCCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MarketCCell.swift; sourceTree = "<group>"; }; |
| | | 1302786B2BFD9ED600DDCE81 /* MarketCCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MarketCCell.xib; sourceTree = "<group>"; }; |
| | | 1302786D2BFD9ED600DDCE81 /* MarketVC.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MarketVC.swift; sourceTree = "<group>"; }; |
| | | 1302786E2BFD9ED600DDCE81 /* ExchangeResultVC.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExchangeResultVC.swift; sourceTree = "<group>"; }; |
| | | 1302786F2BFD9ED600DDCE81 /* ExchangeResultVC.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ExchangeResultVC.xib; sourceTree = "<group>"; }; |
| | | 130278702BFD9ED600DDCE81 /* MarketContentVC.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MarketContentVC.swift; sourceTree = "<group>"; }; |
| | | 130278712BFD9ED600DDCE81 /* MarketContentVC.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MarketContentVC.xib; sourceTree = "<group>"; }; |
| | | 130278722BFD9ED600DDCE81 /* MarketExchangeVC.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MarketExchangeVC.swift; sourceTree = "<group>"; }; |
| | | 130278732BFD9ED600DDCE81 /* MarketExchangeVC.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MarketExchangeVC.xib; sourceTree = "<group>"; }; |
| | | 130278752BFD9ED600DDCE81 /* MarketVC.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MarketVC.xib; sourceTree = "<group>"; }; |
| | | 130278802BFD9F0700DDCE81 /* MeVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MeVC.swift; sourceTree = "<group>"; }; |
| | | 130278812BFD9F0700DDCE81 /* MeVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MeVC.xib; sourceTree = "<group>"; }; |
| | | 130278842BFD9F2A00DDCE81 /* AddressManageHandleVC.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AddressManageHandleVC.swift; sourceTree = "<group>"; }; |
| | | 130278852BFD9F2A00DDCE81 /* AddressManageHandleVC.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = AddressManageHandleVC.xib; sourceTree = "<group>"; }; |
| | | 130278862BFD9F2A00DDCE81 /* AddressManageVC.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AddressManageVC.swift; sourceTree = "<group>"; }; |
| | | 1302788B2BFD9F4200DDCE81 /* CoinRecordHistoryVC.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CoinRecordHistoryVC.swift; sourceTree = "<group>"; }; |
| | | 1302788C2BFD9F4200DDCE81 /* CoinRecordHistoryVC.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CoinRecordHistoryVC.xib; sourceTree = "<group>"; }; |
| | | 130278902BFD9FBF00DDCE81 /* Home_1_TCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = Home_1_TCell.xib; sourceTree = "<group>"; }; |
| | | 130278912BFD9FBF00DDCE81 /* AddressManageTCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = AddressManageTCell.xib; sourceTree = "<group>"; }; |
| | | 130278922BFD9FBF00DDCE81 /* GoodsItemTCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = GoodsItemTCell.xib; sourceTree = "<group>"; }; |
| | | 130278932BFD9FBF00DDCE81 /* Home_1_TCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Home_1_TCell.swift; sourceTree = "<group>"; }; |
| | | 130278942BFD9FBF00DDCE81 /* AddressManageTCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AddressManageTCell.swift; sourceTree = "<group>"; }; |
| | | 130278952BFD9FBF00DDCE81 /* GoodsItemTCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GoodsItemTCell.swift; sourceTree = "<group>"; }; |
| | | 138963FE2BFDF98200AEDCD9 /* StudyVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StudyVC.swift; sourceTree = "<group>"; }; |
| | | 138963FF2BFDF98200AEDCD9 /* StudyVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = StudyVC.xib; sourceTree = "<group>"; }; |
| | | 13E07DF02BFDF1E600B7F5FB /* ExchangeRecordHistoryVC.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExchangeRecordHistoryVC.swift; sourceTree = "<group>"; }; |
| | | 13EEB8902BFED3F3002996FC /* AwardListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AwardListView.swift; sourceTree = "<group>"; }; |
| | | 13EEB8922BFED3FA002996FC /* AwardListView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = AwardListView.xib; sourceTree = "<group>"; }; |
| | | 13EEB8952BFF1531002996FC /* AwardListCCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AwardListCCell.swift; sourceTree = "<group>"; }; |
| | | 13EEB8962BFF1531002996FC /* AwardListCCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = AwardListCCell.xib; sourceTree = "<group>"; }; |
| | | 13EEB89A2BFF1C35002996FC /* HomeListenMenuVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeListenMenuVC.swift; sourceTree = "<group>"; }; |
| | | 13EEB89B2BFF1C35002996FC /* HomeListenMenuVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = HomeListenMenuVC.xib; sourceTree = "<group>"; }; |
| | | 13EEB89F2BFF28A7002996FC /* HomeListenVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeListenVC.swift; sourceTree = "<group>"; }; |
| | | 13EEB8A22BFF353C002996FC /* HomeListen_process_TCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeListen_process_TCell.swift; sourceTree = "<group>"; }; |
| | | 13EEB8A32BFF353C002996FC /* HomeListen_process_TCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = HomeListen_process_TCell.xib; sourceTree = "<group>"; }; |
| | | 13EEB8A62BFF354B002996FC /* HomeListen_item_TCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeListen_item_TCell.swift; sourceTree = "<group>"; }; |
| | | 13EEB8A72BFF354B002996FC /* HomeListen_item_TCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = HomeListen_item_TCell.xib; sourceTree = "<group>"; }; |
| | | 13EEB8AA2BFF36E0002996FC /* HomeListenSubVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeListenSubVC.swift; sourceTree = "<group>"; }; |
| | | E76DEF4767EBA86DA360D0D8 /* Pods-DolphinEnglishLearnStudent.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-DolphinEnglishLearnStudent.debug.xcconfig"; path = "Target Support Files/Pods-DolphinEnglishLearnStudent/Pods-DolphinEnglishLearnStudent.debug.xcconfig"; sourceTree = "<group>"; }; |
| | | EA21DA5F8583B67AC7D13D0A /* Pods_DolphinEnglishLearnStudent.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_DolphinEnglishLearnStudent.framework; sourceTree = BUILT_PRODUCTS_DIR; }; |
| | | /* End PBXFileReference section */ |
| | | |
| | | /* Begin PBXFrameworksBuildPhase section */ |
| | | 130278232BFD957100DDCE81 /* Frameworks */ = { |
| | | isa = PBXFrameworksBuildPhase; |
| | | buildActionMask = 2147483647; |
| | | files = ( |
| | | AABBA9CFF928AFAC4A01F16D /* Pods_DolphinEnglishLearnStudent.framework in Frameworks */, |
| | | ); |
| | | runOnlyForDeploymentPostprocessing = 0; |
| | | }; |
| | | /* End PBXFrameworksBuildPhase section */ |
| | | |
| | | /* Begin PBXGroup section */ |
| | | 1302781D2BFD957100DDCE81 = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 130278282BFD957100DDCE81 /* DolphinEnglishLearnStudent */, |
| | | 130278272BFD957100DDCE81 /* Products */, |
| | | 3CD7B950C551024F77E6409B /* Pods */, |
| | | 3D5EBB90520C09A33C6F0890 /* Frameworks */, |
| | | ); |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 130278272BFD957100DDCE81 /* Products */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 130278262BFD957100DDCE81 /* DolphinEnglishLearnStudent.app */, |
| | | ); |
| | | name = Products; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 130278282BFD957100DDCE81 /* DolphinEnglishLearnStudent */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 130278632BFD9E5D00DDCE81 /* Moudle */, |
| | | 130278582BFD985E00DDCE81 /* Other */, |
| | | 1302784E2BFD97EF00DDCE81 /* Login */, |
| | | 130278472BFD979200DDCE81 /* Base */, |
| | | 130278402BFD978900DDCE81 /* Config */, |
| | | 130278292BFD957100DDCE81 /* AppDelegate.swift */, |
| | | 1302782B2BFD957100DDCE81 /* SceneDelegate.swift */, |
| | | 1302782F2BFD957100DDCE81 /* Main.storyboard */, |
| | | 130278322BFD957300DDCE81 /* Assets.xcassets */, |
| | | 130278342BFD957300DDCE81 /* LaunchScreen.storyboard */, |
| | | 130278372BFD957300DDCE81 /* Info.plist */, |
| | | ); |
| | | path = DolphinEnglishLearnStudent; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 1302783D2BFD973F00DDCE81 /* Home */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 13EEB89E2BFF2853002996FC /* Listen */, |
| | | 13EEB8942BFF1519002996FC /* CCell */, |
| | | 13EEB88F2BFED3C6002996FC /* View */, |
| | | 130278642BFD9E8C00DDCE81 /* HomeVC.swift */, |
| | | 130278652BFD9E8C00DDCE81 /* HomeVC.xib */, |
| | | ); |
| | | path = Home; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 130278402BFD978900DDCE81 /* Config */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 1302783E2BFD978900DDCE81 /* Config.swift */, |
| | | 1302783F2BFD978900DDCE81 /* Enums.swift */, |
| | | ); |
| | | path = Config; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 130278472BFD979200DDCE81 /* Base */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 130278432BFD979200DDCE81 /* BaseNav.swift */, |
| | | 130278442BFD979200DDCE81 /* BaseTabBarVC.swift */, |
| | | 130278452BFD979200DDCE81 /* BaseVC.swift */, |
| | | 130278462BFD979200DDCE81 /* TapBtn.swift */, |
| | | ); |
| | | path = Base; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 1302784E2BFD97EF00DDCE81 /* Login */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 1302785F2BFD999200DDCE81 /* LoginVC.swift */, |
| | | 130278602BFD999200DDCE81 /* LoginVC.xib */, |
| | | ); |
| | | path = Login; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 130278562BFD985E00DDCE81 /* UIView */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 130278512BFD985E00DDCE81 /* BitrhdayPickerView.swift */, |
| | | 130278522BFD985E00DDCE81 /* CommonAlertView.swift */, |
| | | 130278532BFD985E00DDCE81 /* CommonAlertView.xib */, |
| | | 130278542BFD985E00DDCE81 /* CommonInputView.swift */, |
| | | 130278552BFD985E00DDCE81 /* CommonInputView.xib */, |
| | | ); |
| | | path = UIView; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 130278582BFD985E00DDCE81 /* Other */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 130278562BFD985E00DDCE81 /* UIView */, |
| | | 130278572BFD985E00DDCE81 /* CommonWebVC.swift */, |
| | | ); |
| | | path = Other; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 130278632BFD9E5D00DDCE81 /* Moudle */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 130278692BFD9EA700DDCE81 /* Me */, |
| | | 130278682BFD9E9D00DDCE81 /* Market */, |
| | | 1302783D2BFD973F00DDCE81 /* Home */, |
| | | ); |
| | | path = Moudle; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 130278682BFD9E9D00DDCE81 /* Market */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 1302786C2BFD9ED600DDCE81 /* CCell */, |
| | | 1302786D2BFD9ED600DDCE81 /* MarketVC.swift */, |
| | | 130278752BFD9ED600DDCE81 /* MarketVC.xib */, |
| | | 130278742BFD9ED600DDCE81 /* VC */, |
| | | ); |
| | | path = Market; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 130278692BFD9EA700DDCE81 /* Me */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 1302788F2BFD9FA100DDCE81 /* TCell */, |
| | | 1302788A2BFD9F2C00DDCE81 /* VC */, |
| | | 130278802BFD9F0700DDCE81 /* MeVC.swift */, |
| | | 130278812BFD9F0700DDCE81 /* MeVC.xib */, |
| | | ); |
| | | path = Me; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 1302786C2BFD9ED600DDCE81 /* CCell */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 1302786A2BFD9ED600DDCE81 /* MarketCCell.swift */, |
| | | 1302786B2BFD9ED600DDCE81 /* MarketCCell.xib */, |
| | | ); |
| | | path = CCell; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 130278742BFD9ED600DDCE81 /* VC */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 1302786E2BFD9ED600DDCE81 /* ExchangeResultVC.swift */, |
| | | 1302786F2BFD9ED600DDCE81 /* ExchangeResultVC.xib */, |
| | | 130278702BFD9ED600DDCE81 /* MarketContentVC.swift */, |
| | | 130278712BFD9ED600DDCE81 /* MarketContentVC.xib */, |
| | | 130278722BFD9ED600DDCE81 /* MarketExchangeVC.swift */, |
| | | 130278732BFD9ED600DDCE81 /* MarketExchangeVC.xib */, |
| | | ); |
| | | path = VC; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 1302788A2BFD9F2C00DDCE81 /* VC */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 13E07DF02BFDF1E600B7F5FB /* ExchangeRecordHistoryVC.swift */, |
| | | 138963FE2BFDF98200AEDCD9 /* StudyVC.swift */, |
| | | 138963FF2BFDF98200AEDCD9 /* StudyVC.xib */, |
| | | 1302788B2BFD9F4200DDCE81 /* CoinRecordHistoryVC.swift */, |
| | | 1302788C2BFD9F4200DDCE81 /* CoinRecordHistoryVC.xib */, |
| | | 130278842BFD9F2A00DDCE81 /* AddressManageHandleVC.swift */, |
| | | 130278852BFD9F2A00DDCE81 /* AddressManageHandleVC.xib */, |
| | | 130278862BFD9F2A00DDCE81 /* AddressManageVC.swift */, |
| | | ); |
| | | path = VC; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 1302788F2BFD9FA100DDCE81 /* TCell */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 130278942BFD9FBF00DDCE81 /* AddressManageTCell.swift */, |
| | | 130278912BFD9FBF00DDCE81 /* AddressManageTCell.xib */, |
| | | 130278952BFD9FBF00DDCE81 /* GoodsItemTCell.swift */, |
| | | 130278922BFD9FBF00DDCE81 /* GoodsItemTCell.xib */, |
| | | 130278932BFD9FBF00DDCE81 /* Home_1_TCell.swift */, |
| | | 130278902BFD9FBF00DDCE81 /* Home_1_TCell.xib */, |
| | | ); |
| | | path = TCell; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 13EEB88F2BFED3C6002996FC /* View */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 13EEB8902BFED3F3002996FC /* AwardListView.swift */, |
| | | 13EEB8922BFED3FA002996FC /* AwardListView.xib */, |
| | | ); |
| | | path = View; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 13EEB8942BFF1519002996FC /* CCell */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 13EEB8952BFF1531002996FC /* AwardListCCell.swift */, |
| | | 13EEB8962BFF1531002996FC /* AwardListCCell.xib */, |
| | | ); |
| | | path = CCell; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 13EEB89E2BFF2853002996FC /* Listen */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 13EEB8A12BFF3507002996FC /* TCell */, |
| | | 13EEB89A2BFF1C35002996FC /* HomeListenMenuVC.swift */, |
| | | 13EEB89B2BFF1C35002996FC /* HomeListenMenuVC.xib */, |
| | | 13EEB89F2BFF28A7002996FC /* HomeListenVC.swift */, |
| | | 13EEB8AA2BFF36E0002996FC /* HomeListenSubVC.swift */, |
| | | ); |
| | | path = Listen; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 13EEB8A12BFF3507002996FC /* TCell */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 13EEB8A22BFF353C002996FC /* HomeListen_process_TCell.swift */, |
| | | 13EEB8A32BFF353C002996FC /* HomeListen_process_TCell.xib */, |
| | | 13EEB8A62BFF354B002996FC /* HomeListen_item_TCell.swift */, |
| | | 13EEB8A72BFF354B002996FC /* HomeListen_item_TCell.xib */, |
| | | ); |
| | | path = TCell; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 3CD7B950C551024F77E6409B /* Pods */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | E76DEF4767EBA86DA360D0D8 /* Pods-DolphinEnglishLearnStudent.debug.xcconfig */, |
| | | 0A4D4E7CA7617F7B03C7FDFB /* Pods-DolphinEnglishLearnStudent.release.xcconfig */, |
| | | ); |
| | | path = Pods; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 3D5EBB90520C09A33C6F0890 /* Frameworks */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | EA21DA5F8583B67AC7D13D0A /* Pods_DolphinEnglishLearnStudent.framework */, |
| | | ); |
| | | name = Frameworks; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | /* End PBXGroup section */ |
| | | |
| | | /* Begin PBXNativeTarget section */ |
| | | 130278252BFD957100DDCE81 /* DolphinEnglishLearnStudent */ = { |
| | | isa = PBXNativeTarget; |
| | | buildConfigurationList = 1302783A2BFD957300DDCE81 /* Build configuration list for PBXNativeTarget "DolphinEnglishLearnStudent" */; |
| | | buildPhases = ( |
| | | 0E935194E5A417137779DCB1 /* [CP] Check Pods Manifest.lock */, |
| | | 130278222BFD957100DDCE81 /* Sources */, |
| | | 130278232BFD957100DDCE81 /* Frameworks */, |
| | | 130278242BFD957100DDCE81 /* Resources */, |
| | | B937A368B14626E12927F5FE /* [CP] Embed Pods Frameworks */, |
| | | ); |
| | | buildRules = ( |
| | | ); |
| | | dependencies = ( |
| | | ); |
| | | name = DolphinEnglishLearnStudent; |
| | | productName = DolphinEnglishLearnStudent; |
| | | productReference = 130278262BFD957100DDCE81 /* DolphinEnglishLearnStudent.app */; |
| | | productType = "com.apple.product-type.application"; |
| | | }; |
| | | /* End PBXNativeTarget section */ |
| | | |
| | | /* Begin PBXProject section */ |
| | | 1302781E2BFD957100DDCE81 /* Project object */ = { |
| | | isa = PBXProject; |
| | | attributes = { |
| | | BuildIndependentTargetsInParallel = 1; |
| | | LastSwiftUpdateCheck = 1530; |
| | | LastUpgradeCheck = 1530; |
| | | TargetAttributes = { |
| | | 130278252BFD957100DDCE81 = { |
| | | CreatedOnToolsVersion = 15.3; |
| | | }; |
| | | }; |
| | | }; |
| | | buildConfigurationList = 130278212BFD957100DDCE81 /* Build configuration list for PBXProject "DolphinEnglishLearnStudent" */; |
| | | compatibilityVersion = "Xcode 14.0"; |
| | | developmentRegion = en; |
| | | hasScannedForEncodings = 0; |
| | | knownRegions = ( |
| | | en, |
| | | Base, |
| | | ); |
| | | mainGroup = 1302781D2BFD957100DDCE81; |
| | | productRefGroup = 130278272BFD957100DDCE81 /* Products */; |
| | | projectDirPath = ""; |
| | | projectRoot = ""; |
| | | targets = ( |
| | | 130278252BFD957100DDCE81 /* DolphinEnglishLearnStudent */, |
| | | ); |
| | | }; |
| | | /* End PBXProject section */ |
| | | |
| | | /* Begin PBXResourcesBuildPhase section */ |
| | | 130278242BFD957100DDCE81 /* Resources */ = { |
| | | isa = PBXResourcesBuildPhase; |
| | | buildActionMask = 2147483647; |
| | | files = ( |
| | | 13EEB8932BFED3FA002996FC /* AwardListView.xib in Resources */, |
| | | 13EEB89D2BFF1C35002996FC /* HomeListenMenuVC.xib in Resources */, |
| | | 130278882BFD9F2A00DDCE81 /* AddressManageHandleVC.xib in Resources */, |
| | | 130278612BFD999200DDCE81 /* LoginVC.xib in Resources */, |
| | | 13EEB8982BFF1531002996FC /* AwardListCCell.xib in Resources */, |
| | | 1302785B2BFD985E00DDCE81 /* CommonAlertView.xib in Resources */, |
| | | 130278972BFD9FBF00DDCE81 /* AddressManageTCell.xib in Resources */, |
| | | 1302787C2BFD9ED600DDCE81 /* MarketContentVC.xib in Resources */, |
| | | 130278332BFD957300DDCE81 /* Assets.xcassets in Resources */, |
| | | 130278822BFD9F0700DDCE81 /* MeVC.xib in Resources */, |
| | | 13EEB8A52BFF353C002996FC /* HomeListen_process_TCell.xib in Resources */, |
| | | 1302785D2BFD985E00DDCE81 /* CommonInputView.xib in Resources */, |
| | | 1302787A2BFD9ED600DDCE81 /* ExchangeResultVC.xib in Resources */, |
| | | 130278362BFD957300DDCE81 /* Base in Resources */, |
| | | 1302788E2BFD9F4200DDCE81 /* CoinRecordHistoryVC.xib in Resources */, |
| | | 130278312BFD957100DDCE81 /* Base in Resources */, |
| | | 138964012BFDF98200AEDCD9 /* StudyVC.xib in Resources */, |
| | | 130278662BFD9E8C00DDCE81 /* HomeVC.xib in Resources */, |
| | | 130278772BFD9ED600DDCE81 /* MarketCCell.xib in Resources */, |
| | | 13EEB8A92BFF354B002996FC /* HomeListen_item_TCell.xib in Resources */, |
| | | 130278982BFD9FBF00DDCE81 /* GoodsItemTCell.xib in Resources */, |
| | | 130278962BFD9FBF00DDCE81 /* Home_1_TCell.xib in Resources */, |
| | | 1302787F2BFD9ED600DDCE81 /* MarketVC.xib in Resources */, |
| | | 1302787E2BFD9ED600DDCE81 /* MarketExchangeVC.xib in Resources */, |
| | | ); |
| | | runOnlyForDeploymentPostprocessing = 0; |
| | | }; |
| | | /* End PBXResourcesBuildPhase section */ |
| | | |
| | | /* Begin PBXShellScriptBuildPhase section */ |
| | | 0E935194E5A417137779DCB1 /* [CP] Check Pods Manifest.lock */ = { |
| | | isa = PBXShellScriptBuildPhase; |
| | | buildActionMask = 2147483647; |
| | | files = ( |
| | | ); |
| | | inputFileListPaths = ( |
| | | ); |
| | | inputPaths = ( |
| | | "${PODS_PODFILE_DIR_PATH}/Podfile.lock", |
| | | "${PODS_ROOT}/Manifest.lock", |
| | | ); |
| | | name = "[CP] Check Pods Manifest.lock"; |
| | | outputFileListPaths = ( |
| | | ); |
| | | outputPaths = ( |
| | | "$(DERIVED_FILE_DIR)/Pods-DolphinEnglishLearnStudent-checkManifestLockResult.txt", |
| | | ); |
| | | runOnlyForDeploymentPostprocessing = 0; |
| | | shellPath = /bin/sh; |
| | | shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; |
| | | showEnvVarsInLog = 0; |
| | | }; |
| | | B937A368B14626E12927F5FE /* [CP] Embed Pods Frameworks */ = { |
| | | isa = PBXShellScriptBuildPhase; |
| | | buildActionMask = 2147483647; |
| | | files = ( |
| | | ); |
| | | inputFileListPaths = ( |
| | | "${PODS_ROOT}/Target Support Files/Pods-DolphinEnglishLearnStudent/Pods-DolphinEnglishLearnStudent-frameworks-${CONFIGURATION}-input-files.xcfilelist", |
| | | ); |
| | | name = "[CP] Embed Pods Frameworks"; |
| | | outputFileListPaths = ( |
| | | "${PODS_ROOT}/Target Support Files/Pods-DolphinEnglishLearnStudent/Pods-DolphinEnglishLearnStudent-frameworks-${CONFIGURATION}-output-files.xcfilelist", |
| | | ); |
| | | runOnlyForDeploymentPostprocessing = 0; |
| | | shellPath = /bin/sh; |
| | | shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-DolphinEnglishLearnStudent/Pods-DolphinEnglishLearnStudent-frameworks.sh\"\n"; |
| | | showEnvVarsInLog = 0; |
| | | }; |
| | | /* End PBXShellScriptBuildPhase section */ |
| | | |
| | | /* Begin PBXSourcesBuildPhase section */ |
| | | 130278222BFD957100DDCE81 /* Sources */ = { |
| | | isa = PBXSourcesBuildPhase; |
| | | buildActionMask = 2147483647; |
| | | files = ( |
| | | 130278832BFD9F0700DDCE81 /* MeVC.swift in Sources */, |
| | | 130278992BFD9FBF00DDCE81 /* Home_1_TCell.swift in Sources */, |
| | | 1302784B2BFD979200DDCE81 /* TapBtn.swift in Sources */, |
| | | 13EEB8A82BFF354B002996FC /* HomeListen_item_TCell.swift in Sources */, |
| | | 130278672BFD9E8C00DDCE81 /* HomeVC.swift in Sources */, |
| | | 130278482BFD979200DDCE81 /* BaseNav.swift in Sources */, |
| | | 130278622BFD999200DDCE81 /* LoginVC.swift in Sources */, |
| | | 13EEB89C2BFF1C35002996FC /* HomeListenMenuVC.swift in Sources */, |
| | | 138964002BFDF98200AEDCD9 /* StudyVC.swift in Sources */, |
| | | 13EEB8972BFF1531002996FC /* AwardListCCell.swift in Sources */, |
| | | 1302782A2BFD957100DDCE81 /* AppDelegate.swift in Sources */, |
| | | 130278762BFD9ED600DDCE81 /* MarketCCell.swift in Sources */, |
| | | 13EEB8A42BFF353C002996FC /* HomeListen_process_TCell.swift in Sources */, |
| | | 130278782BFD9ED600DDCE81 /* MarketVC.swift in Sources */, |
| | | 1302785E2BFD985E00DDCE81 /* CommonWebVC.swift in Sources */, |
| | | 13EEB8AB2BFF36E0002996FC /* HomeListenSubVC.swift in Sources */, |
| | | 1302789B2BFD9FBF00DDCE81 /* GoodsItemTCell.swift in Sources */, |
| | | 13E07DF12BFDF1E600B7F5FB /* ExchangeRecordHistoryVC.swift in Sources */, |
| | | 130278872BFD9F2A00DDCE81 /* AddressManageHandleVC.swift in Sources */, |
| | | 130278892BFD9F2A00DDCE81 /* AddressManageVC.swift in Sources */, |
| | | 1302785C2BFD985E00DDCE81 /* CommonInputView.swift in Sources */, |
| | | 130278792BFD9ED600DDCE81 /* ExchangeResultVC.swift in Sources */, |
| | | 1302788D2BFD9F4200DDCE81 /* CoinRecordHistoryVC.swift in Sources */, |
| | | 1302785A2BFD985E00DDCE81 /* CommonAlertView.swift in Sources */, |
| | | 1302782C2BFD957100DDCE81 /* SceneDelegate.swift in Sources */, |
| | | 1302787D2BFD9ED600DDCE81 /* MarketExchangeVC.swift in Sources */, |
| | | 1302789A2BFD9FBF00DDCE81 /* AddressManageTCell.swift in Sources */, |
| | | 130278422BFD978900DDCE81 /* Enums.swift in Sources */, |
| | | 13EEB8912BFED3F3002996FC /* AwardListView.swift in Sources */, |
| | | 130278412BFD978900DDCE81 /* Config.swift in Sources */, |
| | | 1302784A2BFD979200DDCE81 /* BaseVC.swift in Sources */, |
| | | 130278592BFD985E00DDCE81 /* BitrhdayPickerView.swift in Sources */, |
| | | 1302787B2BFD9ED600DDCE81 /* MarketContentVC.swift in Sources */, |
| | | 13EEB8A02BFF28A7002996FC /* HomeListenVC.swift in Sources */, |
| | | 130278492BFD979200DDCE81 /* BaseTabBarVC.swift in Sources */, |
| | | ); |
| | | runOnlyForDeploymentPostprocessing = 0; |
| | | }; |
| | | /* End PBXSourcesBuildPhase section */ |
| | | |
| | | /* Begin PBXVariantGroup section */ |
| | | 1302782F2BFD957100DDCE81 /* Main.storyboard */ = { |
| | | isa = PBXVariantGroup; |
| | | children = ( |
| | | 130278302BFD957100DDCE81 /* Base */, |
| | | ); |
| | | name = Main.storyboard; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 130278342BFD957300DDCE81 /* LaunchScreen.storyboard */ = { |
| | | isa = PBXVariantGroup; |
| | | children = ( |
| | | 130278352BFD957300DDCE81 /* Base */, |
| | | ); |
| | | name = LaunchScreen.storyboard; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | /* End PBXVariantGroup section */ |
| | | |
| | | /* Begin XCBuildConfiguration section */ |
| | | 130278382BFD957300DDCE81 /* Debug */ = { |
| | | isa = XCBuildConfiguration; |
| | | buildSettings = { |
| | | ALWAYS_SEARCH_USER_PATHS = NO; |
| | | ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; |
| | | CLANG_ANALYZER_NONNULL = YES; |
| | | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; |
| | | CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; |
| | | CLANG_ENABLE_MODULES = YES; |
| | | CLANG_ENABLE_OBJC_ARC = YES; |
| | | CLANG_ENABLE_OBJC_WEAK = YES; |
| | | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; |
| | | CLANG_WARN_BOOL_CONVERSION = YES; |
| | | CLANG_WARN_COMMA = YES; |
| | | CLANG_WARN_CONSTANT_CONVERSION = YES; |
| | | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; |
| | | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; |
| | | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; |
| | | CLANG_WARN_EMPTY_BODY = YES; |
| | | CLANG_WARN_ENUM_CONVERSION = YES; |
| | | CLANG_WARN_INFINITE_RECURSION = YES; |
| | | CLANG_WARN_INT_CONVERSION = YES; |
| | | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; |
| | | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; |
| | | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; |
| | | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; |
| | | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; |
| | | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; |
| | | CLANG_WARN_STRICT_PROTOTYPES = YES; |
| | | CLANG_WARN_SUSPICIOUS_MOVE = YES; |
| | | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; |
| | | CLANG_WARN_UNREACHABLE_CODE = YES; |
| | | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; |
| | | COPY_PHASE_STRIP = NO; |
| | | DEBUG_INFORMATION_FORMAT = dwarf; |
| | | ENABLE_STRICT_OBJC_MSGSEND = YES; |
| | | ENABLE_TESTABILITY = YES; |
| | | ENABLE_USER_SCRIPT_SANDBOXING = YES; |
| | | GCC_C_LANGUAGE_STANDARD = gnu17; |
| | | GCC_DYNAMIC_NO_PIC = NO; |
| | | GCC_NO_COMMON_BLOCKS = YES; |
| | | GCC_OPTIMIZATION_LEVEL = 0; |
| | | GCC_PREPROCESSOR_DEFINITIONS = ( |
| | | "DEBUG=1", |
| | | "$(inherited)", |
| | | ); |
| | | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; |
| | | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; |
| | | GCC_WARN_UNDECLARED_SELECTOR = YES; |
| | | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; |
| | | GCC_WARN_UNUSED_FUNCTION = YES; |
| | | GCC_WARN_UNUSED_VARIABLE = YES; |
| | | IPHONEOS_DEPLOYMENT_TARGET = 17.4; |
| | | LOCALIZATION_PREFERS_STRING_CATALOGS = YES; |
| | | MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; |
| | | MTL_FAST_MATH = YES; |
| | | ONLY_ACTIVE_ARCH = YES; |
| | | SDKROOT = iphoneos; |
| | | SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; |
| | | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; |
| | | }; |
| | | name = Debug; |
| | | }; |
| | | 130278392BFD957300DDCE81 /* Release */ = { |
| | | isa = XCBuildConfiguration; |
| | | buildSettings = { |
| | | ALWAYS_SEARCH_USER_PATHS = NO; |
| | | ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; |
| | | CLANG_ANALYZER_NONNULL = YES; |
| | | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; |
| | | CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; |
| | | CLANG_ENABLE_MODULES = YES; |
| | | CLANG_ENABLE_OBJC_ARC = YES; |
| | | CLANG_ENABLE_OBJC_WEAK = YES; |
| | | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; |
| | | CLANG_WARN_BOOL_CONVERSION = YES; |
| | | CLANG_WARN_COMMA = YES; |
| | | CLANG_WARN_CONSTANT_CONVERSION = YES; |
| | | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; |
| | | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; |
| | | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; |
| | | CLANG_WARN_EMPTY_BODY = YES; |
| | | CLANG_WARN_ENUM_CONVERSION = YES; |
| | | CLANG_WARN_INFINITE_RECURSION = YES; |
| | | CLANG_WARN_INT_CONVERSION = YES; |
| | | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; |
| | | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; |
| | | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; |
| | | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; |
| | | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; |
| | | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; |
| | | CLANG_WARN_STRICT_PROTOTYPES = YES; |
| | | CLANG_WARN_SUSPICIOUS_MOVE = YES; |
| | | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; |
| | | CLANG_WARN_UNREACHABLE_CODE = YES; |
| | | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; |
| | | COPY_PHASE_STRIP = NO; |
| | | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; |
| | | ENABLE_NS_ASSERTIONS = NO; |
| | | ENABLE_STRICT_OBJC_MSGSEND = YES; |
| | | ENABLE_USER_SCRIPT_SANDBOXING = YES; |
| | | GCC_C_LANGUAGE_STANDARD = gnu17; |
| | | GCC_NO_COMMON_BLOCKS = YES; |
| | | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; |
| | | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; |
| | | GCC_WARN_UNDECLARED_SELECTOR = YES; |
| | | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; |
| | | GCC_WARN_UNUSED_FUNCTION = YES; |
| | | GCC_WARN_UNUSED_VARIABLE = YES; |
| | | IPHONEOS_DEPLOYMENT_TARGET = 17.4; |
| | | LOCALIZATION_PREFERS_STRING_CATALOGS = YES; |
| | | MTL_ENABLE_DEBUG_INFO = NO; |
| | | MTL_FAST_MATH = YES; |
| | | SDKROOT = iphoneos; |
| | | SWIFT_COMPILATION_MODE = wholemodule; |
| | | VALIDATE_PRODUCT = YES; |
| | | }; |
| | | name = Release; |
| | | }; |
| | | 1302783B2BFD957300DDCE81 /* Debug */ = { |
| | | isa = XCBuildConfiguration; |
| | | baseConfigurationReference = E76DEF4767EBA86DA360D0D8 /* Pods-DolphinEnglishLearnStudent.debug.xcconfig */; |
| | | buildSettings = { |
| | | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; |
| | | ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; |
| | | CODE_SIGN_STYLE = Manual; |
| | | CURRENT_PROJECT_VERSION = 1; |
| | | DEVELOPMENT_TEAM = ""; |
| | | ENABLE_USER_SCRIPT_SANDBOXING = NO; |
| | | GENERATE_INFOPLIST_FILE = YES; |
| | | INFOPLIST_FILE = DolphinEnglishLearnStudent/Info.plist; |
| | | INFOPLIST_KEY_CFBundleDisplayName = "海豚英语"; |
| | | INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; |
| | | INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen; |
| | | INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait; |
| | | INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; |
| | | IPHONEOS_DEPLOYMENT_TARGET = 13.0; |
| | | LD_RUNPATH_SEARCH_PATHS = ( |
| | | "$(inherited)", |
| | | "@executable_path/Frameworks", |
| | | ); |
| | | MARKETING_VERSION = 1.0; |
| | | PRODUCT_BUNDLE_IDENTIFIER = com.sinata.dolphinEnLearn.student.DolphinEnglishLearnStudent; |
| | | PRODUCT_NAME = "$(TARGET_NAME)"; |
| | | PROVISIONING_PROFILE_SPECIFIER = ""; |
| | | SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; |
| | | SUPPORTS_MACCATALYST = NO; |
| | | SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; |
| | | SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; |
| | | SWIFT_EMIT_LOC_STRINGS = YES; |
| | | SWIFT_VERSION = 5.0; |
| | | TARGETED_DEVICE_FAMILY = 2; |
| | | }; |
| | | name = Debug; |
| | | }; |
| | | 1302783C2BFD957300DDCE81 /* Release */ = { |
| | | isa = XCBuildConfiguration; |
| | | baseConfigurationReference = 0A4D4E7CA7617F7B03C7FDFB /* Pods-DolphinEnglishLearnStudent.release.xcconfig */; |
| | | buildSettings = { |
| | | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; |
| | | ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; |
| | | CODE_SIGN_STYLE = Manual; |
| | | CURRENT_PROJECT_VERSION = 1; |
| | | DEVELOPMENT_TEAM = ""; |
| | | ENABLE_USER_SCRIPT_SANDBOXING = NO; |
| | | GENERATE_INFOPLIST_FILE = YES; |
| | | INFOPLIST_FILE = DolphinEnglishLearnStudent/Info.plist; |
| | | INFOPLIST_KEY_CFBundleDisplayName = "海豚英语"; |
| | | INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; |
| | | INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen; |
| | | INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait; |
| | | INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; |
| | | IPHONEOS_DEPLOYMENT_TARGET = 13.0; |
| | | LD_RUNPATH_SEARCH_PATHS = ( |
| | | "$(inherited)", |
| | | "@executable_path/Frameworks", |
| | | ); |
| | | MARKETING_VERSION = 1.0; |
| | | PRODUCT_BUNDLE_IDENTIFIER = com.sinata.dolphinEnLearn.student.DolphinEnglishLearnStudent; |
| | | PRODUCT_NAME = "$(TARGET_NAME)"; |
| | | PROVISIONING_PROFILE_SPECIFIER = ""; |
| | | SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; |
| | | SUPPORTS_MACCATALYST = NO; |
| | | SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; |
| | | SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; |
| | | SWIFT_EMIT_LOC_STRINGS = YES; |
| | | SWIFT_VERSION = 5.0; |
| | | TARGETED_DEVICE_FAMILY = 2; |
| | | }; |
| | | name = Release; |
| | | }; |
| | | /* End XCBuildConfiguration section */ |
| | | |
| | | /* Begin XCConfigurationList section */ |
| | | 130278212BFD957100DDCE81 /* Build configuration list for PBXProject "DolphinEnglishLearnStudent" */ = { |
| | | isa = XCConfigurationList; |
| | | buildConfigurations = ( |
| | | 130278382BFD957300DDCE81 /* Debug */, |
| | | 130278392BFD957300DDCE81 /* Release */, |
| | | ); |
| | | defaultConfigurationIsVisible = 0; |
| | | defaultConfigurationName = Release; |
| | | }; |
| | | 1302783A2BFD957300DDCE81 /* Build configuration list for PBXNativeTarget "DolphinEnglishLearnStudent" */ = { |
| | | isa = XCConfigurationList; |
| | | buildConfigurations = ( |
| | | 1302783B2BFD957300DDCE81 /* Debug */, |
| | | 1302783C2BFD957300DDCE81 /* Release */, |
| | | ); |
| | | defaultConfigurationIsVisible = 0; |
| | | defaultConfigurationName = Release; |
| | | }; |
| | | /* End XCConfigurationList section */ |
| | | }; |
| | | rootObject = 1302781E2BFD957100DDCE81 /* Project object */; |
| | | } |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <Workspace |
| | | version = "1.0"> |
| | | <FileRef |
| | | location = "self:"> |
| | | </FileRef> |
| | | </Workspace> |
New file |
| | |
| | | // |
| | | // AppDelegate.swift |
| | | // DolphinEnglishLearnStudent |
| | | // |
| | | // Created by 无故事王国 on 2024/5/22. |
| | | // |
| | | |
| | | import UIKit |
| | | |
| | | @main |
| | | class AppDelegate: UIResponder, UIApplicationDelegate { |
| | | |
| | | var window: UIWindow? |
| | | |
| | | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { |
| | | // Override point for customization after application launch. |
| | | return true |
| | | } |
| | | |
| | | // MARK: UISceneSession Lifecycle |
| | | |
| | | func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration { |
| | | // Called when a new scene session is being created. |
| | | // Use this method to select a configuration to create the new scene with. |
| | | return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role) |
| | | } |
| | | |
| | | func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set<UISceneSession>) { |
| | | // Called when the user discards a scene session. |
| | | // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions. |
| | | // Use this method to release any resources that were specific to the discarded scenes, as they will not return. |
| | | } |
| | | |
| | | |
| | | } |
| | | |
New file |
| | |
| | | { |
| | | "colors" : [ |
| | | { |
| | | "idiom" : "universal" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "platform" : "ios", |
| | | "size" : "1024x1024" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "filename" : "bg_login.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "bg_login@2x.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "2x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "filename" : "logo.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "logo@2x.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "2x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "filename" : "btn_add.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "btn_add@2x.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "2x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "filename" : "btn_add_un.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "btn_add_un@2x.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "2x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "filename" : "btn_back.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "btn_back@2x.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "2x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "filename" : "btn_choose.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "btn_choose@2x.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "2x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "filename" : "btn_choose_u.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "btn_choose_u@2x.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "2x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "filename" : "btn_close_circle.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "btn_close_circle@2x.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "2x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "filename" : "btn_delete.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "btn_delete@2x.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "2x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "filename" : "btn_edit.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "btn_edit@2x.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "2x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "filename" : "btn_edit.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "btn_edit@2x.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "2x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "filename" : "btn_photo_placeholder.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "btn_photo_placeholder@2x.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "2x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "filename" : "btn_reduce.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "btn_reduce@2x.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "2x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "filename" : "btn_reduce_un.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "btn_reduce_un@2x.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "2x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "filename" : "btn_refresh.png", |
| | | "idiom" : "universal", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "btn_refresh@2x.png", |
| | | "idiom" : "universal", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "filename" : "home_arrow_up.png", |
| | | "idiom" : "universal", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "home_arrow_up@2x.png", |
| | | "idiom" : "universal", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "filename" : "home_culture.png", |
| | | "idiom" : "universal", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "home_culture@2x.png", |
| | | "idiom" : "universal", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "filename" : "home_listen.png", |
| | | "idiom" : "universal", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "home_listen@2x.png", |
| | | "idiom" : "universal", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "filename" : "home_read.png", |
| | | "idiom" : "universal", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "home_read@2x.png", |
| | | "idiom" : "universal", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "filename" : "home_read_1.png", |
| | | "idiom" : "universal", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "home_read_1@2x.png", |
| | | "idiom" : "universal", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "filename" : "home_write.png", |
| | | "idiom" : "universal", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "home_write@2x.png", |
| | | "idiom" : "universal", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "filename" : "dingweiweizhi.png", |
| | | "idiom" : "iphone", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "dingweiweizhi@2x.png", |
| | | "idiom" : "iphone", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "filename" : "dingweiweizhi@3x.png", |
| | | "idiom" : "iphone", |
| | | "scale" : "3x" |
| | | }, |
| | | { |
| | | "filename" : "dingweiweizhi 1.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "dingweiweizhi@2x 1.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "2x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "filename" : "xiangji1fill.png", |
| | | "idiom" : "universal", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "icon_camera@2x.png", |
| | | "idiom" : "universal", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "filename" : "icon_camera@3x.png", |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "filename" : "record_one.png", |
| | | "idiom" : "iphone", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "record_one@2x.png", |
| | | "idiom" : "iphone", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "filename" : "record_one@3x.png", |
| | | "idiom" : "iphone", |
| | | "scale" : "3x" |
| | | }, |
| | | { |
| | | "filename" : "icon_coin.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "icon_coin@2x.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "2x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "filename" : "icon_fail.png", |
| | | "idiom" : "universal", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "icon_fail@2x.png", |
| | | "idiom" : "universal", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "filename" : "modify_order.png", |
| | | "idiom" : "iphone", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "modify_order@2x.png", |
| | | "idiom" : "iphone", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "filename" : "modify_order@3x.png", |
| | | "idiom" : "iphone", |
| | | "scale" : "3x" |
| | | }, |
| | | { |
| | | "filename" : "icon_feedback.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "icon_feedback@2x.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "2x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "filename" : "icon_input_code.png", |
| | | "idiom" : "universal", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "icon_input_code@2x.png", |
| | | "idiom" : "universal", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "filename" : "icon_input_code@3x.png", |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "filename" : "icon_input_phone.png", |
| | | "idiom" : "universal", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "icon_input_phone@2x.png", |
| | | "idiom" : "universal", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "filename" : "icon_input_phone@3x.png", |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "filename" : "icon_listen.png", |
| | | "idiom" : "universal", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "icon_listen@2x.png", |
| | | "idiom" : "universal", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "filename" : "icon_more.png", |
| | | "idiom" : "universal", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "icon_more@2x.png", |
| | | "idiom" : "universal", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "filename" : "icon_more@3x.png", |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "filename" : "icon_more_gray.png", |
| | | "idiom" : "universal", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "icon_more_gray@2x.png", |
| | | "idiom" : "universal", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "filename" : "icon_more_gray@3x.png", |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "filename" : "icon_poker.png", |
| | | "idiom" : "universal", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "icon_poker@2x.png", |
| | | "idiom" : "universal", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "filename" : "shangchuanziliao.png", |
| | | "idiom" : "iphone", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "shangchuanziliao@2x.png", |
| | | "idiom" : "iphone", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "filename" : "shangchuanziliao@3x.png", |
| | | "idiom" : "iphone", |
| | | "scale" : "3x" |
| | | }, |
| | | { |
| | | "filename" : "icon_record.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "icon_record@2x.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "2x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "filename" : "icon_search.png", |
| | | "idiom" : "universal", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "icon_search@2x.png", |
| | | "idiom" : "universal", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "filename" : "icon_search@3x.png", |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "filename" : "share.png", |
| | | "idiom" : "iphone", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "share@2x.png", |
| | | "idiom" : "iphone", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "filename" : "share@3x.png", |
| | | "idiom" : "iphone", |
| | | "scale" : "3x" |
| | | }, |
| | | { |
| | | "filename" : "icon_share.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "icon_share@2x.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "2x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "filename" : "icon_success.png", |
| | | "idiom" : "universal", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "icon_success@2x.png", |
| | | "idiom" : "universal", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "filename" : "icon_vip.png", |
| | | "idiom" : "universal", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "icon_vip@2x.png", |
| | | "idiom" : "universal", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "filename" : "icon_vip@3x.png", |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "filename" : "icon_waring.png", |
| | | "idiom" : "universal", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "icon_waring@2x.png", |
| | | "idiom" : "universal", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "filename" : "launchScreen@1x.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "launchScreen@2x.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "2x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "filename" : "logo.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "logo@2x.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "2x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "filename" : "nav_home.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "nav_home@2x.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "2x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "filename" : "nav_home_s.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "nav_home_s@2x.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "2x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "filename" : "nav_market.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "nav_market@2x.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "2x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "filename" : "nav_market_s.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "nav_market_s@2x.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "2x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "filename" : "nav_me.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "nav_me@2x.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "2x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "filename" : "nav_me_s.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "nav_me_s@2x.png", |
| | | "idiom" : "ipad", |
| | | "scale" : "2x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8" standalone="no"?> |
| | | <document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13122.16" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="01J-lp-oVM"> |
| | | <dependencies> |
| | | <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13104.12"/> |
| | | <capability name="Safe area layout guides" minToolsVersion="9.0"/> |
| | | <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> |
| | | </dependencies> |
| | | <scenes> |
| | | <!--View Controller--> |
| | | <scene sceneID="EHf-IW-A2E"> |
| | | <objects> |
| | | <viewController id="01J-lp-oVM" sceneMemberID="viewController"> |
| | | <view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3"> |
| | | <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> |
| | | <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> |
| | | <color key="backgroundColor" xcode11CocoaTouchSystemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/> |
| | | <viewLayoutGuide key="safeArea" id="6Tk-OE-BBY"/> |
| | | </view> |
| | | </viewController> |
| | | <placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/> |
| | | </objects> |
| | | <point key="canvasLocation" x="53" y="375"/> |
| | | </scene> |
| | | </scenes> |
| | | </document> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13122.16" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="BYZ-38-t0r"> |
| | | <dependencies> |
| | | <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13104.12"/> |
| | | <capability name="Safe area layout guides" minToolsVersion="9.0"/> |
| | | <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> |
| | | </dependencies> |
| | | <scenes> |
| | | <!--View Controller--> |
| | | <scene sceneID="tne-QT-ifu"> |
| | | <objects> |
| | | <viewController id="BYZ-38-t0r" customClass="ViewController" customModuleProvider="target" sceneMemberID="viewController"> |
| | | <view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC"> |
| | | <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> |
| | | <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> |
| | | <color key="backgroundColor" xcode11CocoaTouchSystemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/> |
| | | <viewLayoutGuide key="safeArea" id="6Tk-OE-BBY"/> |
| | | </view> |
| | | </viewController> |
| | | <placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/> |
| | | </objects> |
| | | </scene> |
| | | </scenes> |
| | | </document> |
New file |
| | |
| | | // |
| | | // BaseNavigationController.swift |
| | | // BrokerDriver |
| | | // |
| | | // Created by 无故事王国 on 2023/4/24. |
| | | // |
| | | |
| | | import UIKit |
| | | import JQTools |
| | | |
| | | class BaseNav: UINavigationController,UINavigationControllerDelegate { |
| | | |
| | | /// 需要透明Nav的VC |
| | | private var lucencyVCs = [HomeVC.self] |
| | | |
| | | private let img = UIImage.jq_gradient(["#B6E0FF","#FFFFFF"],size: CGSize(width: JQ_ScreenW, height: 90),direction: GradientDirection.vertical) |
| | | |
| | | open override func viewDidLoad() { |
| | | super.viewDidLoad() |
| | | self.navigationBar.barTintColor = .white |
| | | self.navigationBar.titleTextAttributes = [.font:UIFont.systemFont(ofSize: 18, weight: .medium), .foregroundColor:UIColor.white] |
| | | self.navigationBar.tintColor = UIColor.black |
| | | self.navigationBar.shadowImage = UIImage() |
| | | self.navigationBar.isTranslucent = true |
| | | self.delegate = self |
| | | self.interactivePopGestureRecognizer?.delegate = self |
| | | |
| | | |
| | | if #available(iOS 15.0, *) { |
| | | let scrollBar = UINavigationBarAppearance() |
| | | scrollBar.configureWithOpaqueBackground() |
| | | scrollBar.backgroundEffect = nil |
| | | scrollBar.shadowColor = nil |
| | | scrollBar.titleTextAttributes = [.foregroundColor:UIColor.white,.font:Config.NavFont] |
| | | scrollBar.backgroundColor = UIColor.clear |
| | | scrollBar.backgroundImage = img |
| | | |
| | | let standardBar = UINavigationBarAppearance() |
| | | standardBar.configureWithOpaqueBackground() |
| | | standardBar.backgroundEffect = nil |
| | | standardBar.shadowColor = nil |
| | | standardBar.shadowImage = nil |
| | | standardBar.titleTextAttributes = [.foregroundColor:UIColor.white,.font:Config.NavFont] |
| | | standardBar.backgroundColor = UIColor.clear |
| | | standardBar.backgroundImage = img |
| | | navigationBar.scrollEdgeAppearance = scrollBar //顶部透明 |
| | | navigationBar.standardAppearance = standardBar |
| | | }else { |
| | | navigationBar.titleTextAttributes = [.foregroundColor:UIColor.white,.font:Config.NavFont] |
| | | navigationBar.isTranslucent = true |
| | | navigationBar.setBackgroundImage(UIImage(), for: .default) |
| | | navigationBar.shadowImage = UIImage() |
| | | } |
| | | |
| | | // let titleV = UIView() |
| | | // titleV.sizeToFit() |
| | | // let imgV = UIImageView(image: UIImage(named: "bg_logo")) |
| | | // imgV.contentMode = .scaleAspectFit |
| | | // titleV.addSubview(imgV) |
| | | // imgV.snp.makeConstraints { make in |
| | | // make.edges.equalToSuperview() |
| | | // } |
| | | // |
| | | // navigationItem.titleView = titleV |
| | | } |
| | | |
| | | open func navigationController(_ navigationController: UINavigationController, willShow viewController: UIViewController, animated: Bool) { |
| | | |
| | | |
| | | let status = lucencyVCs.contains(where: {$0 == viewController.classForCoder}) |
| | | if (status){ |
| | | if #available(iOS 15.0, *) { |
| | | navigationBar.standardAppearance.backgroundImage = nil |
| | | navigationBar.scrollEdgeAppearance?.backgroundImage = nil |
| | | }else{ |
| | | navigationBar.setBackgroundImage(UIImage(), for: .default) |
| | | navigationBar.shadowImage = UIImage() |
| | | } |
| | | }else{ |
| | | if #available(iOS 15.0, *) { |
| | | navigationBar.standardAppearance.backgroundImage = img |
| | | navigationBar.scrollEdgeAppearance?.backgroundImage = img |
| | | }else{ |
| | | navigationBar.setBackgroundImage(img, for: .default) |
| | | } |
| | | } |
| | | } |
| | | |
| | | //侧滑 |
| | | public func navigationController(_ navigationController: UINavigationController, didShow viewController: UIViewController, animated: Bool) { |
| | | if viewController == self.viewControllers[0] { |
| | | self.interactivePopGestureRecognizer!.delegate = self |
| | | }else{ |
| | | self.interactivePopGestureRecognizer!.delegate = nil |
| | | } |
| | | } |
| | | |
| | | open override var childForStatusBarHidden: UIViewController? { |
| | | return self.topViewController |
| | | } |
| | | |
| | | open override var childForStatusBarStyle: UIViewController? { |
| | | return self.topViewController |
| | | } |
| | | |
| | | override var preferredStatusBarStyle: UIStatusBarStyle{ |
| | | return .lightContent |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | class LoginNav: UINavigationController,UINavigationControllerDelegate { |
| | | |
| | | private var popDelegate: UIGestureRecognizerDelegate? |
| | | |
| | | open override func viewDidLoad() { |
| | | super.viewDidLoad() |
| | | self.navigationBar.barTintColor = .white |
| | | self.navigationBar.titleTextAttributes = [.font:UIFont.systemFont(ofSize: 18, weight: .medium), .foregroundColor:UIColor.black] |
| | | self.navigationBar.tintColor = UIColor.black |
| | | self.navigationBar.shadowImage = UIImage() |
| | | self.navigationBar.isTranslucent = true |
| | | self.delegate = self |
| | | self.popDelegate = self.interactivePopGestureRecognizer?.delegate |
| | | |
| | | |
| | | if #available(iOS 15.0, *) { |
| | | |
| | | let scrollBar = UINavigationBarAppearance() |
| | | scrollBar.configureWithOpaqueBackground() |
| | | scrollBar.backgroundEffect = nil |
| | | scrollBar.shadowColor = nil |
| | | scrollBar.titleTextAttributes = [.foregroundColor:Config.ThemeColor,.font:Config.NavFont] |
| | | scrollBar.backgroundColor = UIColor.clear |
| | | // scrollBar.backgroundImage = img |
| | | |
| | | |
| | | let standardBar = UINavigationBarAppearance() |
| | | standardBar.configureWithOpaqueBackground() |
| | | standardBar.backgroundEffect = nil |
| | | standardBar.shadowColor = nil |
| | | standardBar.shadowImage = nil |
| | | standardBar.titleTextAttributes = [.foregroundColor:Config.ThemeColor,.font:Config.NavFont] |
| | | standardBar.backgroundColor = UIColor.clear |
| | | // standardBar.backgroundImage = img |
| | | |
| | | navigationBar.scrollEdgeAppearance = scrollBar //顶部透明 |
| | | navigationBar.standardAppearance = standardBar |
| | | |
| | | |
| | | }else { |
| | | navigationBar.titleTextAttributes = [.foregroundColor:Config.ThemeColor,.font:Config.NavFont] |
| | | } |
| | | } |
| | | |
| | | open func navigationController(_ navigationController: UINavigationController, willShow viewController: UIViewController, animated: Bool) { |
| | | |
| | | |
| | | } |
| | | |
| | | //侧滑 |
| | | public func navigationController(_ navigationController: UINavigationController, didShow viewController: UIViewController, animated: Bool) { |
| | | if viewController == self.viewControllers[0] { |
| | | self.interactivePopGestureRecognizer!.delegate = self.popDelegate |
| | | }else{ |
| | | self.interactivePopGestureRecognizer!.delegate = nil |
| | | } |
| | | } |
| | | |
| | | open override var childForStatusBarHidden: UIViewController? { |
| | | return self.topViewController |
| | | } |
| | | |
| | | open override var childForStatusBarStyle: UIViewController? { |
| | | return self.topViewController |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | // |
| | | // BaseTabBarVC.swift |
| | | // WanPai |
| | | // |
| | | // Created by 杨锴 on 2023/6/8. |
| | | // |
| | | |
| | | import UIKit |
| | | |
| | | class BaseTabBarVC: UITabBarController { |
| | | |
| | | override func viewDidLoad() { |
| | | super.viewDidLoad() |
| | | |
| | | tabBar.backgroundColor = .white |
| | | tabBar.tintColor = Config.ThemeColor |
| | | } |
| | | } |
New file |
| | |
| | | // |
| | | // BaseViewController.swift |
| | | // BrokerDriver |
| | | // |
| | | // Created by 无故事王国 on 2023/4/24. |
| | | // |
| | | |
| | | import UIKit |
| | | import RxSwift |
| | | import RxRelay |
| | | import RxCocoa |
| | | import JQTools |
| | | import QMUIKit |
| | | |
| | | class BaseVC: UIViewController { |
| | | |
| | | var disposeBag:DisposeBag! |
| | | let refreshStatus = BehaviorSubject(value: RefreshStatus.others) |
| | | |
| | | var yy_popBlock:(() -> Void)? |
| | | open var nav_back_img:UIImage = UIImage.init(named: "btn_back") ?? UIImage.init() { |
| | | didSet { |
| | | let btn = navigationItem.leftBarButtonItem?.customView as! UIButton |
| | | btn.setImage(nav_back_img, for: .normal) |
| | | } |
| | | } |
| | | |
| | | override func viewWillAppear(_ animated: Bool) { |
| | | super.viewWillAppear(animated) |
| | | navigationController?.delegate?.navigationController?(navigationController!, willShow: self, animated: true) |
| | | } |
| | | |
| | | override func viewDidLoad() { |
| | | super.viewDidLoad() |
| | | |
| | | // let bgGradientImg = UIImageView(image: UIImage.jq_gradient(["#B6E0FF","#FFFFFF"],size: CGSize(width: JQ_ScreenW, height: JQ_ScreenH), direction: .vertical)) |
| | | // |
| | | // view.addSubview(bgGradientImg) |
| | | // bgGradientImg.snp.makeConstraints { make in |
| | | // make.top.left.right.equalToSuperview() |
| | | // make.height.equalTo(JQ_ScreenW * 0.46) |
| | | // } |
| | | // view.sendSubviewToBack(bgGradientImg) |
| | | // view.backgroundColor = .white |
| | | |
| | | disposeBag = DisposeBag() |
| | | setUI() |
| | | setRx() |
| | | setData() |
| | | |
| | | if navigationController?.viewControllers.count ?? 0 > 1{ |
| | | let backButton = QMUIButton(type: .custom) |
| | | backButton.setImage(UIImage(named: "btn_back"), for: .normal) |
| | | backButton.setTitle(self.title, for: .normal) |
| | | backButton.setTitleColor(.black.withAlphaComponent(0.81), for: .normal) |
| | | backButton.titleLabel?.font = UIFont.systemFont(ofSize: 18, weight: .medium) |
| | | backButton.imagePosition = .left |
| | | backButton.spacingBetweenImageAndTitle = 35 |
| | | backButton.addTarget(self, action: #selector(backItemEvent), for: .touchUpInside) |
| | | navigationItem.leftBarButtonItem = UIBarButtonItem(customView: backButton) |
| | | } |
| | | |
| | | if !self.isKind(of: HomeVC.self) && !self.isKind(of: HomeListenSubVC.self){ |
| | | let titleV = UIView() |
| | | titleV.bounds = CGRect(x: 0, y: 0, width: 156, height: 63) |
| | | titleV.sizeToFit() |
| | | let imgV = UIImageView(image: UIImage(named: "bg_logo")) |
| | | imgV.contentMode = .scaleAspectFit |
| | | titleV.addSubview(imgV) |
| | | imgV.snp.makeConstraints { make in |
| | | make.edges.equalToSuperview() |
| | | } |
| | | |
| | | view.addSubview(titleV) |
| | | titleV.snp.makeConstraints { make in |
| | | make.top.equalToSuperview().offset(18) |
| | | make.centerX.equalToSuperview() |
| | | } |
| | | |
| | | navigationItem.titleView = titleV |
| | | |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | func setRx(){ |
| | | } |
| | | |
| | | func setUI(){ |
| | | view.backgroundColor = Config.ThemeBGColor |
| | | |
| | | } |
| | | |
| | | func setData(){ |
| | | |
| | | } |
| | | |
| | | func refreshUI(){} |
| | | |
| | | func push(vc:UIViewController){ |
| | | vc.hidesBottomBarWhenPushed = true |
| | | navigationController?.pushViewController(vc, animated: true) |
| | | } |
| | | |
| | | override var preferredStatusBarStyle: UIStatusBarStyle{ |
| | | return .lightContent |
| | | } |
| | | |
| | | @objc fileprivate func backItemEvent() { |
| | | // 拦截pop事件 |
| | | if (yy_popBlock != nil) { |
| | | yy_popBlock?() |
| | | return |
| | | } |
| | | navigationController?.popViewController(animated: true) |
| | | } |
| | | |
| | | override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) { |
| | | coordinator.animate(alongsideTransition: { [weak self] (context) in |
| | | let orient = UIApplication.shared.statusBarOrientation |
| | | switch orient { |
| | | case .landscapeLeft, .landscapeRight: |
| | | //横屏时禁止左拽滑出 |
| | | self?.navigationController?.interactivePopGestureRecognizer?.isEnabled = false |
| | | default: |
| | | //竖屏时允许左拽滑出 |
| | | self?.navigationController?.interactivePopGestureRecognizer?.isEnabled = true |
| | | } |
| | | }) |
| | | super.viewWillTransition(to: size, with: coordinator) |
| | | } |
| | | |
| | | |
| | | deinit { |
| | | LogInfo(String(format: "%@ 已释放", NSStringFromClass(self.classForCoder).components(separatedBy: ".").last!)) |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | // |
| | | // TapBtn.swift |
| | | // WanPai |
| | | // |
| | | // Created by 杨锴 on 2023/6/8. |
| | | // |
| | | |
| | | import UIKit |
| | | |
| | | class TapBtn: UIButton {} |
New file |
| | |
| | | // |
| | | // Config.swift |
| | | // DolphinEnglishLearnManager |
| | | // |
| | | // Created by 无故事王国 on 2024/5/14. |
| | | // |
| | | |
| | | import Foundation |
| | | import UIKit |
| | | import OSLog |
| | | import SVProgressHUD |
| | | |
| | | @_exported import JQTools |
| | | |
| | | var sceneDelegate:SceneDelegate? = { |
| | | var uiScreen:UIScene? |
| | | UIApplication.shared.connectedScenes.forEach { scenes in |
| | | uiScreen = scenes |
| | | } |
| | | return (uiScreen?.delegate as? SceneDelegate) |
| | | }() |
| | | |
| | | |
| | | struct Config { |
| | | static let ThemeBGColor:UIColor = UIColor(hexStr: "#C3BFB3") |
| | | static let ThemeColor:UIColor = UIColor(hexStr: "#4195D3") |
| | | static let NavFontColor = UIColor.black.withAlphaComponent(0.8) |
| | | static let NavFont = UIFont.systemFont(ofSize: 15, weight: .medium) |
| | | |
| | | static var RatioW:Double{get{return JQ_ScreenW / 810.0}} |
| | | static var RatioH:Double{get{return JQ_ScreenH / 1080.0}} |
| | | } |
| | | |
| | | |
| | | func LogInfo(_ items:Any...,separator:String=" ",file:String=#file,function:String=#function,line:Int=#line){ |
| | | #if DEBUG |
| | | if #available(iOS 14.0, *) { |
| | | let logger = Logger(subsystem: "WanPai", category: function) |
| | | logger.error("\(items)") |
| | | }else{ |
| | | let file = (file as NSString).lastPathComponent.split(separator: ".").first!; |
| | | print("⚠️⚠️⚠️INFO: \(file) \(function) [Line: \(line)]: \(items)",separator); |
| | | } |
| | | #endif |
| | | } |
| | | |
| | | //提示框 |
| | | func alert(msg: String) { |
| | | SVProgressHUD.showInfo(withStatus: msg) |
| | | } |
| | | |
| | | func alertError(msg:String){ |
| | | SVProgressHUD.showError(withStatus: msg) |
| | | } |
| | | |
| | | func alertSuccess(msg:String){ |
| | | SVProgressHUD.showSuccess(withStatus: msg) |
| | | } |
| | | |
| | | func showHUD(_ text:String? = nil){ |
| | | SVProgressHUD.show(withStatus: text) |
| | | } |
| | | |
| | | func hiddenHUD(_ delay:TimeInterval? = nil){ |
| | | if delay != nil{ |
| | | SVProgressHUD.dismiss(withDelay: delay!) |
| | | }else{ |
| | | SVProgressHUD.dismiss() |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | extension UIButton{ |
| | | public func openCountDown(_ t:Int = 59,defultTitle:String = "获取验证码",textColor:UIColor,unenableColor:UIColor){ |
| | | var time = t //倒计时时间 |
| | | let queue = DispatchQueue.global() |
| | | let timer = DispatchSource.makeTimerSource(flags: [], queue: queue) |
| | | timer.schedule(wallDeadline: DispatchWallTime.now(), repeating: .seconds(1)); |
| | | timer.setEventHandler(handler: { |
| | | if time <= 0 { |
| | | timer.cancel() |
| | | DispatchQueue.main.async(execute: { |
| | | self.setTitle(defultTitle, for: .normal) |
| | | self.setTitleColor(textColor, for: .normal) |
| | | self.isUserInteractionEnabled = true |
| | | }); |
| | | }else { |
| | | DispatchQueue.main.async(execute: { |
| | | self.setTitle("\(time)s", for: .normal) |
| | | self.setTitleColor(unenableColor, for: .normal) |
| | | self.isUserInteractionEnabled = false |
| | | }); |
| | | } |
| | | time -= 1 |
| | | }); |
| | | timer.resume() |
| | | } |
| | | } |
New file |
| | |
| | | // |
| | | // Enums.swift |
| | | // DolphinEnglishLearnManager |
| | | // |
| | | // Created by 无故事王国 on 2024/5/17. |
| | | // |
| | | |
| | | import Foundation |
| | | |
| | | enum AgreementType:Int{ |
| | | case UserProtocol = 1 |
| | | case PrivacyPolicy = 2 |
| | | case logout = 3 |
| | | case aboutUS = 4 |
| | | |
| | | var titleStr:String{ |
| | | switch self { |
| | | case .PrivacyPolicy: |
| | | return "隐私政策" |
| | | case .UserProtocol: |
| | | return "用户协议" |
| | | case .aboutUS: |
| | | return "关于我们" |
| | | case .logout: |
| | | return "注销协议" |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> |
| | | <plist version="1.0"> |
| | | <dict> |
| | | <key>UIApplicationSceneManifest</key> |
| | | <dict> |
| | | <key>UIApplicationSupportsMultipleScenes</key> |
| | | <false/> |
| | | <key>UISceneConfigurations</key> |
| | | <dict> |
| | | <key>UIWindowSceneSessionRoleApplication</key> |
| | | <array> |
| | | <dict> |
| | | <key>UISceneConfigurationName</key> |
| | | <string>Default Configuration</string> |
| | | <key>UISceneDelegateClassName</key> |
| | | <string>$(PRODUCT_MODULE_NAME).SceneDelegate</string> |
| | | <key>UISceneStoryboardFile</key> |
| | | <string>Main</string> |
| | | </dict> |
| | | </array> |
| | | </dict> |
| | | </dict> |
| | | </dict> |
| | | </plist> |
New file |
| | |
| | | // |
| | | // LoginVC.swift |
| | | // DolphinEnglishLearnStudent |
| | | // |
| | | // Created by 无故事王国 on 2024/5/22. |
| | | // |
| | | |
| | | import UIKit |
| | | import QMUIKit |
| | | |
| | | class LoginVC: BaseVC { |
| | | |
| | | @IBOutlet weak var btn_login: UIButton! |
| | | @IBOutlet weak var tf_authCode: QMUITextField! |
| | | @IBOutlet weak var tf_phone: QMUITextField! |
| | | @IBOutlet weak var btn_isRead: UIButton! |
| | | |
| | | override func viewDidLoad() { |
| | | super.viewDidLoad() |
| | | |
| | | } |
| | | |
| | | override func setUI() { |
| | | super.setUI() |
| | | } |
| | | |
| | | private func authInputPhone()->Bool{ |
| | | guard !tf_phone.text!.isEmpty else { |
| | | alert(msg: "请输入手机号");return false |
| | | } |
| | | |
| | | guard tf_phone.text!.jq_isPhone else { |
| | | alert(msg: "请输入正确的手机号");return false |
| | | } |
| | | |
| | | return true |
| | | } |
| | | |
| | | private func authInputCode()->Bool{ |
| | | guard !tf_authCode.text!.isEmpty else { |
| | | alert(msg: "请输入验证码");return false |
| | | } |
| | | |
| | | guard tf_phone.text!.count != 6 else { |
| | | alert(msg: "请输入6位验证码");return false |
| | | } |
| | | return true |
| | | } |
| | | |
| | | @IBAction func chooseAction(_ sender: UIButton) { |
| | | sender.isSelected = !sender.isSelected |
| | | } |
| | | |
| | | |
| | | /// 隐私协议 |
| | | @IBAction func privacyAction(_ sender: UIButton) { |
| | | let vc = CommonWebVC(type: .privacyAgreement) |
| | | vc.title = "隐私协议" |
| | | self.navigationController?.pushViewController(vc, animated: true) |
| | | } |
| | | |
| | | /// 用户协议 |
| | | @IBAction func privacyUserAction(_ sender: UIButton) { |
| | | let vc = CommonWebVC(type: .userAgreement) |
| | | vc.title = "用户协议" |
| | | self.navigationController?.pushViewController(vc, animated: true) |
| | | } |
| | | |
| | | |
| | | @IBAction func getCodeAction(_ sender: UIButton) { |
| | | guard authInputPhone() else {return} |
| | | sender.openCountDown(60, defultTitle: "获取验证码", textColor:UIColor(hexStr: "#41A2EB"), unenableColor: .gray) |
| | | } |
| | | |
| | | @IBAction func loginAction(_ sender: UIButton) { |
| | | |
| | | guard authInputPhone() else {return} |
| | | guard authInputCode() else {return} |
| | | |
| | | guard btn_isRead.isEnabled else { |
| | | alert(msg: "请阅读并同意《隐私协议》《用户协议》");return |
| | | } |
| | | |
| | | sceneDelegate?.loginSuccess() |
| | | } |
| | | } |
New file |
| | |
| | | <?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="ipad10_9rounded" orientation="landscape" layout="fullscreen" appearance="light"/> |
| | | <dependencies> |
| | | <deployment identifier="iOS"/> |
| | | <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22684"/> |
| | | <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="LoginVC" customModule="DolphinEnglishLearnStudent" customModuleProvider="target"> |
| | | <connections> |
| | | <outlet property="btn_isRead" destination="zkX-mZ-xif" id="dl5-pq-zHk"/> |
| | | <outlet property="btn_login" destination="X9q-qw-Sc1" id="ZvV-I8-l0i"/> |
| | | <outlet property="tf_authCode" destination="j2G-AV-ggz" id="UTp-X4-vUN"/> |
| | | <outlet property="tf_phone" destination="tfh-6p-iXJ" id="izi-nL-lgo"/> |
| | | <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="1180" height="820"/> |
| | | <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> |
| | | <subviews> |
| | | <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="bg_login" translatesAutoresizingMaskIntoConstraints="NO" id="rqd-Xo-f9G"> |
| | | <rect key="frame" x="442" y="66" width="296" height="129"/> |
| | | </imageView> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="2PL-Tz-O9m"> |
| | | <rect key="frame" x="432" y="259" width="316" height="47"/> |
| | | <subviews> |
| | | <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_input_phone" translatesAutoresizingMaskIntoConstraints="NO" id="pxt-Uu-WaU"> |
| | | <rect key="frame" x="14" y="14.5" width="16" height="18"/> |
| | | </imageView> |
| | | <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入手机号" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="tfh-6p-iXJ" customClass="QMUITextField"> |
| | | <rect key="frame" x="45" y="14.5" width="256" height="18.5"/> |
| | | <color key="textColor" red="0.2666666667" green="0.29411764709999999" blue="0.3294117647" alpha="0.58999999999999997" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> |
| | | <textInputTraits key="textInputTraits" keyboardType="numberPad"/> |
| | | <userDefinedRuntimeAttributes> |
| | | <userDefinedRuntimeAttribute type="color" keyPath="placeholderColor"> |
| | | <color key="value" red="0.2666666667" green="0.29411764709999999" blue="0.3294117647" alpha="0.58999999999999997" colorSpace="custom" customColorSpace="sRGB"/> |
| | | </userDefinedRuntimeAttribute> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="maximumTextLength"> |
| | | <integer key="value" value="11"/> |
| | | </userDefinedRuntimeAttribute> |
| | | </userDefinedRuntimeAttributes> |
| | | </textField> |
| | | </subviews> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstItem="tfh-6p-iXJ" firstAttribute="centerY" secondItem="pxt-Uu-WaU" secondAttribute="centerY" id="99t-mf-OGn"/> |
| | | <constraint firstAttribute="width" constant="316" id="EDf-pB-sfI"/> |
| | | <constraint firstItem="pxt-Uu-WaU" firstAttribute="leading" secondItem="2PL-Tz-O9m" secondAttribute="leading" constant="14" id="QEU-zv-05O"/> |
| | | <constraint firstItem="tfh-6p-iXJ" firstAttribute="leading" secondItem="pxt-Uu-WaU" secondAttribute="trailing" constant="15" id="gf1-nD-LlO"/> |
| | | <constraint firstAttribute="height" constant="47" id="gkn-b6-NF0"/> |
| | | <constraint firstItem="pxt-Uu-WaU" firstAttribute="centerY" secondItem="2PL-Tz-O9m" secondAttribute="centerY" id="poG-Nm-9oH"/> |
| | | <constraint firstAttribute="trailing" secondItem="tfh-6p-iXJ" secondAttribute="trailing" constant="15" id="vN1-bE-7sZ"/> |
| | | </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.86666666670000003" green="0.86666666670000003" blue="0.86666666670000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | </userDefinedRuntimeAttribute> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> |
| | | <real key="value" value="8"/> |
| | | </userDefinedRuntimeAttribute> |
| | | </userDefinedRuntimeAttributes> |
| | | </view> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="5aU-uW-fH7"> |
| | | <rect key="frame" x="432" y="325" width="316" height="47"/> |
| | | <subviews> |
| | | <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_input_code" translatesAutoresizingMaskIntoConstraints="NO" id="rNa-Hc-XJJ"> |
| | | <rect key="frame" x="14" y="14.5" width="15" height="18"/> |
| | | </imageView> |
| | | <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入验证码" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="j2G-AV-ggz" customClass="QMUITextField"> |
| | | <rect key="frame" x="44" y="14.5" width="127" height="18.5"/> |
| | | <color key="textColor" red="0.2666666667" green="0.29411764709999999" blue="0.3294117647" alpha="0.58999999999999997" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> |
| | | <textInputTraits key="textInputTraits" keyboardType="numberPad"/> |
| | | <userDefinedRuntimeAttributes> |
| | | <userDefinedRuntimeAttribute type="color" keyPath="placeholderColor"> |
| | | <color key="value" red="0.2666666667" green="0.29411764709999999" blue="0.3294117647" alpha="0.58999999999999997" colorSpace="custom" customColorSpace="sRGB"/> |
| | | </userDefinedRuntimeAttribute> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="maximumTextLength"> |
| | | <integer key="value" value="6"/> |
| | | </userDefinedRuntimeAttribute> |
| | | </userDefinedRuntimeAttributes> |
| | | </textField> |
| | | <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="nrP-lG-Vwu"> |
| | | <rect key="frame" x="226" y="9" 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="获取验证码"/> |
| | | <connections> |
| | | <action selector="getCodeAction:" destination="-1" eventType="touchUpInside" id="8dv-4Y-0hV"/> |
| | | </connections> |
| | | </button> |
| | | </subviews> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstItem="j2G-AV-ggz" firstAttribute="centerY" secondItem="rNa-Hc-XJJ" secondAttribute="centerY" id="4gP-jA-yDG"/> |
| | | <constraint firstAttribute="height" constant="47" id="6sj-Ih-W1i"/> |
| | | <constraint firstAttribute="trailing" secondItem="j2G-AV-ggz" secondAttribute="trailing" constant="145" id="AOH-By-S2v"/> |
| | | <constraint firstItem="rNa-Hc-XJJ" firstAttribute="leading" secondItem="5aU-uW-fH7" secondAttribute="leading" constant="14" id="Ee7-Nl-uoY"/> |
| | | <constraint firstItem="rNa-Hc-XJJ" firstAttribute="centerY" secondItem="5aU-uW-fH7" secondAttribute="centerY" id="PSX-Dp-Bah"/> |
| | | <constraint firstItem="j2G-AV-ggz" firstAttribute="leading" secondItem="rNa-Hc-XJJ" secondAttribute="trailing" constant="15" id="acA-H2-QKX"/> |
| | | <constraint firstAttribute="width" constant="316" id="br3-38-uYM"/> |
| | | <constraint firstAttribute="trailing" secondItem="nrP-lG-Vwu" secondAttribute="trailing" constant="18" id="p0f-Zz-Oma"/> |
| | | <constraint firstItem="nrP-lG-Vwu" firstAttribute="centerY" secondItem="5aU-uW-fH7" secondAttribute="centerY" id="wxa-ng-hHb"/> |
| | | </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.86666666670000003" green="0.86666666670000003" blue="0.86666666670000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | </userDefinedRuntimeAttribute> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> |
| | | <real key="value" value="8"/> |
| | | </userDefinedRuntimeAttribute> |
| | | </userDefinedRuntimeAttributes> |
| | | </view> |
| | | <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="zkX-mZ-xif"> |
| | | <rect key="frame" x="432" y="389" width="28" height="28"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="28" id="C6n-KA-Bq1"/> |
| | | <constraint firstAttribute="width" constant="28" id="ZrR-qD-rgI"/> |
| | | </constraints> |
| | | <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> |
| | | <state key="normal" image="btn_choose_u"/> |
| | | <connections> |
| | | <action selector="chooseAction:" destination="-1" eventType="touchUpInside" id="taa-1D-MNJ"/> |
| | | </connections> |
| | | </button> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="我已阅读并同意" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Npo-Be-a3K"> |
| | | <rect key="frame" x="462" y="396" width="86" height="14.5"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/> |
| | | <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="Knm-yq-p47"> |
| | | <rect key="frame" x="553" y="389.5" width="62" height="27"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/> |
| | | <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.25490196079999999" green="0.63529411759999999" blue="0.92156862750000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | </state> |
| | | <connections> |
| | | <action selector="privacyAction:" destination="-1" eventType="touchUpInside" id="HTq-JH-Off"/> |
| | | </connections> |
| | | </button> |
| | | <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="G1I-su-UhY"> |
| | | <rect key="frame" x="625" y="389.5" width="62" height="27"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/> |
| | | <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.25490196079999999" green="0.63529411759999999" blue="0.92156862750000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | </state> |
| | | <connections> |
| | | <action selector="privacyUserAction:" destination="-1" eventType="touchUpInside" id="MzL-Ou-GkL"/> |
| | | </connections> |
| | | </button> |
| | | <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="X9q-qw-Sc1"> |
| | | <rect key="frame" x="432" y="510.5" width="316" height="47"/> |
| | | <color key="backgroundColor" red="0.25490196079999999" green="0.63529411759999999" blue="0.92156862750000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="47" id="Fae-u5-7uD"/> |
| | | </constraints> |
| | | <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="登录"/> |
| | | <userDefinedRuntimeAttributes> |
| | | <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> |
| | | <real key="value" value="8"/> |
| | | </userDefinedRuntimeAttribute> |
| | | </userDefinedRuntimeAttributes> |
| | | <connections> |
| | | <action selector="loginAction:" destination="-1" eventType="touchUpInside" id="4i4-ux-hC4"/> |
| | | </connections> |
| | | </button> |
| | | </subviews> |
| | | <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstItem="rqd-Xo-f9G" firstAttribute="centerX" secondItem="fnl-2z-Ty3" secondAttribute="centerX" id="0XQ-el-QmK"/> |
| | | <constraint firstItem="2PL-Tz-O9m" firstAttribute="centerX" secondItem="fnl-2z-Ty3" secondAttribute="centerX" id="1j1-ur-o1S"/> |
| | | <constraint firstItem="rqd-Xo-f9G" firstAttribute="top" secondItem="fnl-2z-Ty3" secondAttribute="top" constant="42" id="2IP-HE-2Nd"/> |
| | | <constraint firstItem="Npo-Be-a3K" firstAttribute="leading" secondItem="zkX-mZ-xif" secondAttribute="trailing" constant="2" id="2SD-Cj-4aC"/> |
| | | <constraint firstItem="X9q-qw-Sc1" firstAttribute="trailing" secondItem="2PL-Tz-O9m" secondAttribute="trailing" id="FeZ-fg-b7e"/> |
| | | <constraint firstItem="X9q-qw-Sc1" firstAttribute="centerX" secondItem="fnl-2z-Ty3" secondAttribute="centerX" id="Jiw-eq-Tov"/> |
| | | <constraint firstItem="zkX-mZ-xif" firstAttribute="leading" secondItem="2PL-Tz-O9m" secondAttribute="leading" id="LFh-Er-UzQ"/> |
| | | <constraint firstItem="zkX-mZ-xif" firstAttribute="top" secondItem="5aU-uW-fH7" secondAttribute="bottom" constant="17" id="Oa1-Da-W5X"/> |
| | | <constraint firstItem="5aU-uW-fH7" firstAttribute="top" secondItem="2PL-Tz-O9m" secondAttribute="bottom" constant="19" id="W1L-8z-2UP"/> |
| | | <constraint firstItem="2PL-Tz-O9m" firstAttribute="top" secondItem="rqd-Xo-f9G" secondAttribute="bottom" constant="64" id="XTa-78-dDJ"/> |
| | | <constraint firstItem="Npo-Be-a3K" firstAttribute="centerY" secondItem="zkX-mZ-xif" secondAttribute="centerY" id="duz-aL-bOk"/> |
| | | <constraint firstItem="X9q-qw-Sc1" firstAttribute="leading" secondItem="2PL-Tz-O9m" secondAttribute="leading" id="eEa-iQ-ozX"/> |
| | | <constraint firstItem="Knm-yq-p47" firstAttribute="leading" secondItem="Npo-Be-a3K" secondAttribute="trailing" constant="5" id="eS2-b7-UQk"/> |
| | | <constraint firstItem="G1I-su-UhY" firstAttribute="leading" secondItem="Knm-yq-p47" secondAttribute="trailing" constant="10" id="gn2-Be-fVb"/> |
| | | <constraint firstItem="Knm-yq-p47" firstAttribute="centerY" secondItem="zkX-mZ-xif" secondAttribute="centerY" id="iba-cz-icy"/> |
| | | <constraint firstItem="X9q-qw-Sc1" firstAttribute="top" secondItem="Knm-yq-p47" secondAttribute="bottom" constant="94" id="kEm-5T-0op"/> |
| | | <constraint firstItem="5aU-uW-fH7" firstAttribute="centerX" secondItem="fnl-2z-Ty3" secondAttribute="centerX" id="mMU-RV-beK"/> |
| | | <constraint firstItem="G1I-su-UhY" firstAttribute="centerY" secondItem="zkX-mZ-xif" secondAttribute="centerY" id="r29-ab-IDV"/> |
| | | </constraints> |
| | | <point key="canvasLocation" x="140" y="20"/> |
| | | </view> |
| | | </objects> |
| | | <resources> |
| | | <image name="bg_login" width="296" height="129"/> |
| | | <image name="btn_choose_u" width="28" height="28"/> |
| | | <image name="icon_input_code" width="15" height="18"/> |
| | | <image name="icon_input_phone" width="16" height="18"/> |
| | | <systemColor name="systemBackgroundColor"> |
| | | <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
| | | </systemColor> |
| | | </resources> |
| | | </document> |
New file |
| | |
| | | // |
| | | // AwardListCCell.swift |
| | | // DolphinEnglishLearnStudent |
| | | // |
| | | // Created by 无故事王国 on 2024/5/23. |
| | | // |
| | | |
| | | import UIKit |
| | | import JQTools |
| | | |
| | | class AwardListCCell: UICollectionViewCell { |
| | | |
| | | @IBOutlet weak var image_awar: UIImageView! |
| | | override func awakeFromNib() { |
| | | super.awakeFromNib() |
| | | // Initialization code |
| | | } |
| | | |
| | | |
| | | override func layoutSubviews() { |
| | | super.layoutSubviews() |
| | | image_awar.jq_addShadows(shadowColor: UIColor(hexStr: "#B9B9B9").withAlphaComponent(0.5), corner: 8, radius: 4, offset: CGSize(width: 0, height: 2), opacity: 1) |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | <?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="ipad10_9rounded" orientation="portrait" layout="fullscreen" appearance="light"/> |
| | | <dependencies> |
| | | <deployment identifier="iOS"/> |
| | | <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22684"/> |
| | | <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> |
| | | </dependencies> |
| | | <objects> |
| | | <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/> |
| | | <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> |
| | | <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="_AwardListCCell" id="gTV-IL-0wX" customClass="AwardListCCell" customModule="DolphinEnglishLearnStudent" customModuleProvider="target"> |
| | | <rect key="frame" x="0.0" y="0.0" width="276" height="526"/> |
| | | <autoresizingMask key="autoresizingMask"/> |
| | | <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> |
| | | <rect key="frame" x="0.0" y="0.0" width="276" height="526"/> |
| | | <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> |
| | | <subviews> |
| | | <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="YbH-L3-L1g"> |
| | | <rect key="frame" x="0.0" y="0.0" width="276" height="359"/> |
| | | <color key="backgroundColor" red="0.61960784310000006" green="0.54117647059999996" blue="0.85882352939999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <constraints> |
| | | <constraint firstAttribute="width" secondItem="YbH-L3-L1g" secondAttribute="height" multiplier="1:1.3" id="K9A-Ng-kLe"/> |
| | | </constraints> |
| | | </imageView> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="wPP-pc-amm"> |
| | | <rect key="frame" x="0.0" y="368" width="276" height="19.5"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" 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> |
| | | </subviews> |
| | | </view> |
| | | <constraints> |
| | | <constraint firstItem="YbH-L3-L1g" firstAttribute="top" secondItem="gTV-IL-0wX" secondAttribute="top" id="C0W-AG-Aw4"/> |
| | | <constraint firstItem="wPP-pc-amm" firstAttribute="top" secondItem="YbH-L3-L1g" secondAttribute="bottom" constant="9" id="GC1-zu-CB5"/> |
| | | <constraint firstItem="wPP-pc-amm" firstAttribute="leading" secondItem="gTV-IL-0wX" secondAttribute="leading" id="PdU-qW-J7e"/> |
| | | <constraint firstAttribute="trailing" secondItem="YbH-L3-L1g" secondAttribute="trailing" id="SOa-S8-Xhi"/> |
| | | <constraint firstAttribute="trailing" secondItem="wPP-pc-amm" secondAttribute="trailing" id="UHp-wV-FRO"/> |
| | | <constraint firstItem="YbH-L3-L1g" firstAttribute="leading" secondItem="gTV-IL-0wX" secondAttribute="leading" id="WD8-o4-ZS3"/> |
| | | </constraints> |
| | | <size key="customSize" width="276" height="526"/> |
| | | <connections> |
| | | <outlet property="image_awar" destination="YbH-L3-L1g" id="kuW-TO-4BH"/> |
| | | </connections> |
| | | <point key="canvasLocation" x="130.2439024390244" y="140.84745762711864"/> |
| | | </collectionViewCell> |
| | | </objects> |
| | | </document> |
New file |
| | |
| | | // |
| | | // HomeVC.swift |
| | | // DolphinEnglishLearnStudent |
| | | // |
| | | // Created by 无故事王国 on 2024/5/22. |
| | | // |
| | | |
| | | import UIKit |
| | | |
| | | class HomeVC: BaseVC { |
| | | |
| | | override func viewDidLoad() { |
| | | super.viewDidLoad() |
| | | |
| | | AwardListView.show { |
| | | |
| | | } |
| | | } |
| | | |
| | | @IBAction func listenAction(_ sender: UIButton) { |
| | | let listenMenuVC = HomeListenMenuVC() |
| | | listenMenuVC.title = "第一年学习周目选择" |
| | | push(vc: listenMenuVC) |
| | | } |
| | | |
| | | |
| | | } |
New file |
| | |
| | | <?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="ipad10_9rounded" orientation="landscape" layout="fullscreen" appearance="light"/> |
| | | <dependencies> |
| | | <deployment identifier="iOS"/> |
| | | <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22684"/> |
| | | <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="HomeVC" customModule="DolphinEnglishLearnStudent" 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="1180" height="820"/> |
| | | <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> |
| | | <subviews> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="u25-QY-P0i"> |
| | | <rect key="frame" x="0.0" y="0.0" width="299.5" height="820"/> |
| | | <subviews> |
| | | <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="logo" translatesAutoresizingMaskIntoConstraints="NO" id="3du-Pw-IgI"> |
| | | <rect key="frame" x="77.5" y="40" width="144" height="136"/> |
| | | </imageView> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="欢迎使用海豚英语!" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="nUx-UB-L4X"> |
| | | <rect key="frame" x="18" y="193" width="263.5" height="33.5"/> |
| | | <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="28"/> |
| | | <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="海豚英语学习体系" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="oad-Jg-rwh"> |
| | | <rect key="frame" x="18" y="238.5" width="171" height="29"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="29" id="cDC-9c-PN8"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" pointSize="21"/> |
| | | <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | </subviews> |
| | | <color key="backgroundColor" red="0.25490196078431371" green="0.63529411764705879" blue="0.92156862745098034" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <constraints> |
| | | <constraint firstAttribute="width" secondItem="u25-QY-P0i" secondAttribute="height" multiplier="0.365:1" id="1p9-mr-7Cm"/> |
| | | <constraint firstItem="oad-Jg-rwh" firstAttribute="top" secondItem="nUx-UB-L4X" secondAttribute="bottom" constant="12" id="4gV-bW-UaL"/> |
| | | <constraint firstItem="3du-Pw-IgI" firstAttribute="top" secondItem="u25-QY-P0i" secondAttribute="topMargin" constant="8" id="bed-Zd-FF0"/> |
| | | <constraint firstItem="nUx-UB-L4X" firstAttribute="top" secondItem="3du-Pw-IgI" secondAttribute="bottom" constant="17" id="fRe-0s-Fyh"/> |
| | | <constraint firstItem="3du-Pw-IgI" firstAttribute="centerX" secondItem="u25-QY-P0i" secondAttribute="centerX" id="jBE-CO-PUA"/> |
| | | <constraint firstItem="oad-Jg-rwh" firstAttribute="leading" secondItem="u25-QY-P0i" secondAttribute="leading" constant="18" id="tWV-v1-fVv"/> |
| | | <constraint firstAttribute="trailing" secondItem="nUx-UB-L4X" secondAttribute="trailing" constant="18" id="uua-ac-KNt"/> |
| | | <constraint firstItem="nUx-UB-L4X" firstAttribute="leading" secondItem="u25-QY-P0i" secondAttribute="leading" constant="18" id="vAG-59-elc"/> |
| | | </constraints> |
| | | </view> |
| | | <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="8a7-s7-2fd"> |
| | | <rect key="frame" x="332.5" y="675" width="380" height="88"/> |
| | | <subviews> |
| | | <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="A0m-iE-WEq"> |
| | | <rect key="frame" x="0.0" y="0.0" width="380" height="59"/> |
| | | <subviews> |
| | | <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="home_arrow_up" translatesAutoresizingMaskIntoConstraints="NO" id="uJm-Us-sBO"> |
| | | <rect key="frame" x="33" y="11" width="20" height="37"/> |
| | | </imageView> |
| | | </subviews> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstItem="uJm-Us-sBO" firstAttribute="leading" secondItem="A0m-iE-WEq" secondAttribute="leading" constant="33" id="0xE-kt-Yeh"/> |
| | | <constraint firstAttribute="height" constant="59" id="JuD-so-WAc"/> |
| | | <constraint firstItem="uJm-Us-sBO" firstAttribute="centerY" secondItem="A0m-iE-WEq" secondAttribute="centerY" id="MoR-NR-35e"/> |
| | | </constraints> |
| | | </view> |
| | | <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="vB7-Gs-18h"> |
| | | <rect key="frame" x="0.0" y="0.0" width="380" height="88"/> |
| | | <subviews> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="EhG-4I-wv7"> |
| | | <rect key="frame" x="0.0" y="0.0" width="99" height="88"/> |
| | | <subviews> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="第二年" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="9yR-aO-6u5"> |
| | | <rect key="frame" x="0.0" y="52" width="99" height="22"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="22" id="pNn-aw-KDe"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="16"/> |
| | | <nil key="textColor"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="home_read" translatesAutoresizingMaskIntoConstraints="NO" id="vJh-51-3CD"> |
| | | <rect key="frame" x="31" y="13" width="37" height="37"/> |
| | | </imageView> |
| | | </subviews> |
| | | <color key="backgroundColor" red="0.61960784313725492" green="0.54117647058823526" blue="0.85882352941176465" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <constraints> |
| | | <constraint firstAttribute="trailing" secondItem="9yR-aO-6u5" secondAttribute="trailing" id="BPZ-TF-juS"/> |
| | | <constraint firstAttribute="height" constant="88" id="EBl-vD-Rry"/> |
| | | <constraint firstAttribute="width" constant="99" id="FPs-bT-2XV"/> |
| | | <constraint firstItem="9yR-aO-6u5" firstAttribute="leading" secondItem="EhG-4I-wv7" secondAttribute="leading" id="MrA-Ic-bYP"/> |
| | | <constraint firstItem="vJh-51-3CD" firstAttribute="top" secondItem="EhG-4I-wv7" secondAttribute="top" constant="13" id="OWt-Bu-tCJ"/> |
| | | <constraint firstItem="vJh-51-3CD" firstAttribute="centerX" secondItem="9yR-aO-6u5" secondAttribute="centerX" id="USs-dV-4Ye"/> |
| | | <constraint firstAttribute="bottom" secondItem="9yR-aO-6u5" secondAttribute="bottom" constant="14" id="mSq-jc-zkL"/> |
| | | </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="NOj-Vj-QlF"> |
| | | <rect key="frame" x="99" y="0.0" width="281" height="88"/> |
| | | <fontDescription key="fontDescription" type="system" pointSize="17"/> |
| | | <nil key="textColor"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | </subviews> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstAttribute="trailing" secondItem="NOj-Vj-QlF" secondAttribute="trailing" id="7wF-XH-l6X"/> |
| | | <constraint firstItem="EhG-4I-wv7" firstAttribute="leading" secondItem="vB7-Gs-18h" secondAttribute="leading" id="Ena-XQ-Eb9"/> |
| | | <constraint firstAttribute="width" constant="380" id="Spe-Jo-zr8"/> |
| | | <constraint firstItem="NOj-Vj-QlF" firstAttribute="top" secondItem="vB7-Gs-18h" secondAttribute="top" id="Ta7-te-qDu"/> |
| | | <constraint firstItem="EhG-4I-wv7" firstAttribute="top" secondItem="vB7-Gs-18h" secondAttribute="top" id="U5D-Qx-VKe"/> |
| | | <constraint firstAttribute="bottom" secondItem="NOj-Vj-QlF" secondAttribute="bottom" id="bbH-QH-G5Q"/> |
| | | <constraint firstItem="NOj-Vj-QlF" firstAttribute="leading" secondItem="EhG-4I-wv7" secondAttribute="trailing" id="h6u-ko-LpA"/> |
| | | <constraint firstAttribute="bottom" secondItem="EhG-4I-wv7" secondAttribute="bottom" id="wIZ-VU-t3V"/> |
| | | <constraint firstAttribute="height" constant="88" id="wtU-jm-ALX"/> |
| | | </constraints> |
| | | <userDefinedRuntimeAttributes> |
| | | <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> |
| | | <real key="value" value="14"/> |
| | | </userDefinedRuntimeAttribute> |
| | | </userDefinedRuntimeAttributes> |
| | | </view> |
| | | <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Dtu-QM-cC6"> |
| | | <rect key="frame" x="0.0" y="0.0" width="380" height="59"/> |
| | | <subviews> |
| | | <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="home_arrow_up" translatesAutoresizingMaskIntoConstraints="NO" id="8gt-hY-WEX"> |
| | | <rect key="frame" x="33" y="11" width="20" height="37"/> |
| | | </imageView> |
| | | </subviews> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstItem="8gt-hY-WEX" firstAttribute="centerY" secondItem="Dtu-QM-cC6" secondAttribute="centerY" id="Mqh-tf-Wo1"/> |
| | | <constraint firstItem="8gt-hY-WEX" firstAttribute="leading" secondItem="Dtu-QM-cC6" secondAttribute="leading" constant="33" id="bkS-IH-Ia7"/> |
| | | <constraint firstAttribute="height" constant="59" id="gkV-nf-bnN"/> |
| | | </constraints> |
| | | </view> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="vDp-Gp-qMt" customClass="TapBtn" customModule="DolphinEnglishLearnStudent" customModuleProvider="target"> |
| | | <rect key="frame" x="0.0" y="0.0" width="380" height="88"/> |
| | | <subviews> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="638-4h-RmO"> |
| | | <rect key="frame" x="0.0" y="0.0" width="99" height="88"/> |
| | | <subviews> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="第一年" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="mzm-m2-TUM"> |
| | | <rect key="frame" x="0.0" y="50" width="99" height="22"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="22" id="0E8-lU-VAm"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="16"/> |
| | | <nil key="textColor"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="home_listen" translatesAutoresizingMaskIntoConstraints="NO" id="G0e-mp-Ewt"> |
| | | <rect key="frame" x="28.5" y="16" width="42" height="28"/> |
| | | </imageView> |
| | | </subviews> |
| | | <color key="backgroundColor" red="0.42745098039215684" green="0.81960784313725488" blue="0.72941176470588232" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <constraints> |
| | | <constraint firstAttribute="bottom" secondItem="mzm-m2-TUM" secondAttribute="bottom" constant="16" id="1DJ-Ab-UMy"/> |
| | | <constraint firstAttribute="trailing" secondItem="mzm-m2-TUM" secondAttribute="trailing" id="4EB-JA-dgg"/> |
| | | <constraint firstAttribute="height" constant="88" id="Ez7-4n-UUU"/> |
| | | <constraint firstItem="G0e-mp-Ewt" firstAttribute="centerX" secondItem="mzm-m2-TUM" secondAttribute="centerX" id="Fep-Ru-CO8"/> |
| | | <constraint firstAttribute="width" constant="99" id="a46-Aj-ZVI"/> |
| | | <constraint firstItem="G0e-mp-Ewt" firstAttribute="top" secondItem="638-4h-RmO" secondAttribute="top" constant="16" id="lcU-Ve-EuA"/> |
| | | <constraint firstItem="mzm-m2-TUM" firstAttribute="leading" secondItem="638-4h-RmO" secondAttribute="leading" id="ysB-ce-xHs"/> |
| | | </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="rYc-7O-AJr"> |
| | | <rect key="frame" x="99" y="0.0" width="281" height="88"/> |
| | | <fontDescription key="fontDescription" type="system" pointSize="17"/> |
| | | <nil key="textColor"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | </subviews> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstAttribute="bottom" secondItem="rYc-7O-AJr" secondAttribute="bottom" id="1Cy-Uo-TQl"/> |
| | | <constraint firstItem="638-4h-RmO" firstAttribute="leading" secondItem="vDp-Gp-qMt" secondAttribute="leading" id="906-Em-QM1"/> |
| | | <constraint firstAttribute="width" constant="380" id="Fci-Un-Bb0"/> |
| | | <constraint firstItem="rYc-7O-AJr" firstAttribute="top" secondItem="vDp-Gp-qMt" secondAttribute="top" id="IuS-gO-xrq"/> |
| | | <constraint firstAttribute="trailing" secondItem="rYc-7O-AJr" secondAttribute="trailing" id="KQJ-pj-kUy"/> |
| | | <constraint firstAttribute="height" constant="88" id="XI2-on-coS"/> |
| | | <constraint firstItem="638-4h-RmO" firstAttribute="top" secondItem="vDp-Gp-qMt" secondAttribute="top" id="ZWW-ad-FCa"/> |
| | | <constraint firstAttribute="bottom" secondItem="638-4h-RmO" secondAttribute="bottom" id="pMS-Rh-ZiE"/> |
| | | <constraint firstItem="rYc-7O-AJr" firstAttribute="leading" secondItem="638-4h-RmO" secondAttribute="trailing" id="zhf-yy-Qje"/> |
| | | </constraints> |
| | | <userDefinedRuntimeAttributes> |
| | | <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> |
| | | <real key="value" value="14"/> |
| | | </userDefinedRuntimeAttribute> |
| | | </userDefinedRuntimeAttributes> |
| | | <connections> |
| | | <action selector="listenAction:" destination="-1" eventType="touchUpInside" id="MbU-jm-Qjr"/> |
| | | </connections> |
| | | </view> |
| | | </subviews> |
| | | </stackView> |
| | | </subviews> |
| | | <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstAttribute="bottom" secondItem="u25-QY-P0i" secondAttribute="bottom" id="CfI-2x-pVb"/> |
| | | <constraint firstItem="u25-QY-P0i" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" id="QEu-6j-zme"/> |
| | | <constraint firstItem="fnl-2z-Ty3" firstAttribute="bottom" secondItem="8a7-s7-2fd" secondAttribute="bottom" constant="37" id="esM-dS-4XS"/> |
| | | <constraint firstItem="8a7-s7-2fd" firstAttribute="leading" secondItem="u25-QY-P0i" secondAttribute="trailing" constant="33" id="lge-cR-TPq"/> |
| | | <constraint firstItem="u25-QY-P0i" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="snI-gI-0vp"/> |
| | | </constraints> |
| | | <point key="canvasLocation" x="44.745762711864408" y="19.756097560975608"/> |
| | | </view> |
| | | </objects> |
| | | <resources> |
| | | <image name="home_arrow_up" width="20" height="37"/> |
| | | <image name="home_listen" width="42" height="28"/> |
| | | <image name="home_read" width="37" height="37"/> |
| | | <image name="logo" width="144" height="136"/> |
| | | <systemColor name="systemBackgroundColor"> |
| | | <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
| | | </systemColor> |
| | | </resources> |
| | | </document> |
New file |
| | |
| | | // |
| | | // HomeListenMenuVC.swift |
| | | // DolphinEnglishLearnStudent |
| | | // |
| | | // Created by 无故事王国 on 2024/5/23. |
| | | // |
| | | |
| | | import UIKit |
| | | |
| | | class HomeListenMenuVC: BaseVC { |
| | | |
| | | @IBOutlet weak var tableView: UITableView! |
| | | @IBOutlet weak var collectionView: UICollectionView! |
| | | |
| | | private var titleItems = ["第一季","第二季","第三季","第四季"] |
| | | private var selectIndexPath:IndexPath = IndexPath(row: 0, section: 0) |
| | | |
| | | override func viewDidLoad() { |
| | | super.viewDidLoad() |
| | | |
| | | } |
| | | |
| | | override func setUI() { |
| | | super.setUI() |
| | | tableView.delegate = self |
| | | tableView.dataSource = self |
| | | tableView.separatorStyle = .none |
| | | tableView.showsVerticalScrollIndicator = false |
| | | tableView.register(HomeListenMenuTCell.self, forCellReuseIdentifier: "_HomeListenMenuTCell") |
| | | tableView.reloadData() |
| | | |
| | | collectionView.delegate = self |
| | | collectionView.dataSource = self |
| | | collectionView.showsVerticalScrollIndicator = false |
| | | collectionView.contentInset = .init(top: 20, left: 20, bottom: 20, right: 20) |
| | | collectionView.register(HomeListenMenuCCell.self, forCellWithReuseIdentifier: "_HomeListenMenuCCell") |
| | | } |
| | | } |
| | | |
| | | |
| | | extension HomeListenMenuVC:UICollectionViewDelegate,UICollectionViewDataSource,UICollectionViewDelegateFlowLayout{ |
| | | |
| | | func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { |
| | | let vc = HomeListenVC() |
| | | push(vc: vc) |
| | | } |
| | | |
| | | func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { |
| | | let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "_HomeListenMenuCCell", for: indexPath) as! HomeListenMenuCCell |
| | | cell.setTitle(week: "第一周", title: "提示基础认知能力", coin: 2000) |
| | | cell.contentView.backgroundColor = UIColor.qmui_random() |
| | | return cell |
| | | } |
| | | |
| | | func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { |
| | | return 20 |
| | | } |
| | | |
| | | func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { |
| | | let w = (collectionView.jq_width - 80) / 3 |
| | | return CGSize(width: w, height: w * 0.64) |
| | | } |
| | | |
| | | func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat { |
| | | return 23 |
| | | } |
| | | |
| | | func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat { |
| | | return 19 |
| | | } |
| | | } |
| | | |
| | | |
| | | extension HomeListenMenuVC:UITableViewDataSource,UITableViewDelegate{ |
| | | func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { |
| | | selectIndexPath = indexPath |
| | | tableView.reloadData() |
| | | } |
| | | |
| | | func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { |
| | | return 56 |
| | | } |
| | | |
| | | func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { |
| | | let cell = tableView.dequeueReusableCell(withIdentifier: "_HomeListenMenuTCell") as! HomeListenMenuTCell |
| | | cell.titleL.text = titleItems[indexPath.row] |
| | | |
| | | if indexPath == selectIndexPath{ |
| | | cell.titleL.font = UIFont.systemFont(ofSize: 18, weight: .medium) |
| | | cell.titleL.textColor = UIColor(hexStr: "#41A2EB") |
| | | }else{ |
| | | cell.titleL.font = UIFont.systemFont(ofSize: 18) |
| | | cell.titleL.textColor = .black.withAlphaComponent(0.4) |
| | | } |
| | | |
| | | cell.lineView.isHidden = indexPath.row == titleItems.count - 1 |
| | | |
| | | return cell |
| | | } |
| | | |
| | | func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { |
| | | return titleItems.count |
| | | } |
| | | } |
| | | |
| | | class HomeListenMenuTCell:UITableViewCell{ |
| | | |
| | | private(set) var titleL:UILabel! |
| | | let lineView = UIView() |
| | | |
| | | override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { |
| | | super.init(style: style, reuseIdentifier: reuseIdentifier) |
| | | |
| | | titleL = UILabel() |
| | | titleL.textAlignment = .center |
| | | contentView.addSubview(titleL) |
| | | titleL.snp.makeConstraints { make in |
| | | make.edges.equalToSuperview() |
| | | } |
| | | |
| | | |
| | | lineView.backgroundColor = UIColor(hexStr: "#979797").withAlphaComponent(0.28) |
| | | contentView.addSubview(lineView) |
| | | lineView.snp.makeConstraints { make in |
| | | make.left.bottom.right.equalToSuperview() |
| | | make.height.equalTo(1) |
| | | } |
| | | } |
| | | |
| | | required init?(coder: NSCoder) { |
| | | fatalError("init(coder:) has not been implemented") |
| | | } |
| | | } |
| | | |
| | | class HomeListenMenuCCell:UICollectionViewCell{ |
| | | |
| | | private var label_week = UILabel() |
| | | private var label_title = UILabel() |
| | | private var label_completeCoin = UILabel() |
| | | |
| | | override init(frame: CGRect) { |
| | | super.init(frame: frame) |
| | | |
| | | contentView.jq_cornerRadius = 4 |
| | | |
| | | label_title.textAlignment = .center |
| | | label_title.textColor = .white |
| | | label_title.font = .systemFont(ofSize: 16, weight: .semibold) |
| | | contentView.addSubview(label_title) |
| | | label_title.snp.makeConstraints { make in |
| | | make.left.right.equalToSuperview() |
| | | make.centerY.equalToSuperview() |
| | | make.height.equalTo(22) |
| | | } |
| | | |
| | | label_week.textAlignment = .center |
| | | label_week.textColor = .white |
| | | label_week.font = .systemFont(ofSize: 14, weight: .medium) |
| | | contentView.addSubview(label_week) |
| | | label_week.snp.makeConstraints { make in |
| | | make.bottom.equalTo(label_title.snp.top).offset(-10) |
| | | make.left.right.equalToSuperview() |
| | | make.height.equalTo(20) |
| | | } |
| | | |
| | | label_completeCoin.textAlignment = .center |
| | | label_completeCoin.textColor = .white |
| | | label_completeCoin.font = .systemFont(ofSize: 11, weight: .medium) |
| | | contentView.addSubview(label_completeCoin) |
| | | label_completeCoin.snp.makeConstraints { make in |
| | | make.top.equalTo(label_title.snp.bottom).offset(9) |
| | | make.left.right.equalToSuperview() |
| | | make.height.equalTo(16) |
| | | } |
| | | } |
| | | |
| | | func setTitle(week:String,title:String,coin:Int){ |
| | | label_week.text = week |
| | | label_title.text = title |
| | | label_completeCoin.text = "完成后可获积分数:\(coin)" |
| | | } |
| | | |
| | | required init?(coder: NSCoder) { |
| | | fatalError("init(coder:) has not been implemented") |
| | | } |
| | | } |
New file |
| | |
| | | <?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="ipad10_9rounded" orientation="landscape" layout="fullscreen" appearance="light"/> |
| | | <dependencies> |
| | | <deployment identifier="iOS"/> |
| | | <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22684"/> |
| | | <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="HomeListenMenuVC" customModule="DolphinEnglishLearnStudent" customModuleProvider="target"> |
| | | <connections> |
| | | <outlet property="collectionView" destination="mmc-nd-yVU" id="zw8-K8-PzH"/> |
| | | <outlet property="tableView" destination="xi2-nl-i7f" id="7fq-SJ-9Fb"/> |
| | | <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="1180" height="820"/> |
| | | <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> |
| | | <subviews> |
| | | <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="-1" estimatedSectionHeaderHeight="-1" sectionFooterHeight="-1" estimatedSectionFooterHeight="-1" translatesAutoresizingMaskIntoConstraints="NO" id="xi2-nl-i7f"> |
| | | <rect key="frame" x="40" y="51" width="166.5" height="684"/> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstAttribute="width" secondItem="xi2-nl-i7f" secondAttribute="height" multiplier="1:4.111" id="5Mg-Sf-wdh"/> |
| | | </constraints> |
| | | <userDefinedRuntimeAttributes> |
| | | <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> |
| | | <real key="value" value="8"/> |
| | | </userDefinedRuntimeAttribute> |
| | | </userDefinedRuntimeAttributes> |
| | | </tableView> |
| | | <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" dataMode="none" translatesAutoresizingMaskIntoConstraints="NO" id="mmc-nd-yVU"> |
| | | <rect key="frame" x="247.5" y="51" width="670.5" height="684"/> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstAttribute="width" secondItem="mmc-nd-yVU" secondAttribute="height" multiplier="1:1.02" id="3UF-AD-QMr"/> |
| | | </constraints> |
| | | <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="10" minimumInteritemSpacing="10" id="w0j-4F-a20"> |
| | | <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> |
| | | <userDefinedRuntimeAttributes> |
| | | <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> |
| | | <real key="value" value="8"/> |
| | | </userDefinedRuntimeAttribute> |
| | | </userDefinedRuntimeAttributes> |
| | | </collectionView> |
| | | </subviews> |
| | | <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/> |
| | | <color key="backgroundColor" red="0.76470588235294112" green="0.74901960784313726" blue="0.70196078431372544" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <constraints> |
| | | <constraint firstItem="xi2-nl-i7f" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="40" id="M3E-6g-qAA"/> |
| | | <constraint firstItem="mmc-nd-yVU" firstAttribute="bottom" secondItem="xi2-nl-i7f" secondAttribute="bottom" id="O2b-Tx-tt6"/> |
| | | <constraint firstItem="mmc-nd-yVU" firstAttribute="top" secondItem="xi2-nl-i7f" secondAttribute="top" id="fNh-mY-cOr"/> |
| | | <constraint firstItem="mmc-nd-yVU" firstAttribute="leading" secondItem="xi2-nl-i7f" secondAttribute="trailing" constant="41" id="jkY-X9-tWg"/> |
| | | <constraint firstItem="fnl-2z-Ty3" firstAttribute="bottom" secondItem="xi2-nl-i7f" secondAttribute="bottom" constant="65" id="pyR-TT-B1H"/> |
| | | <constraint firstItem="xi2-nl-i7f" firstAttribute="top" secondItem="fnl-2z-Ty3" secondAttribute="top" constant="27" id="zsE-hp-93C"/> |
| | | </constraints> |
| | | <point key="canvasLocation" x="88" y="20"/> |
| | | </view> |
| | | </objects> |
| | | <resources> |
| | | <systemColor name="systemBackgroundColor"> |
| | | <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
| | | </systemColor> |
| | | </resources> |
| | | </document> |
New file |
| | |
| | | // |
| | | // HomeListenSubVC.swift |
| | | // DolphinEnglishLearnStudent |
| | | // |
| | | // Created by 无故事王国 on 2024/5/23. |
| | | // |
| | | |
| | | import UIKit |
| | | |
| | | class HomeListenSubVC: BaseVC { |
| | | |
| | | private var page:Int! |
| | | private var tableView:UITableView! |
| | | |
| | | required init(page:Int) { |
| | | self.page = page |
| | | super.init(nibName: nil, bundle: nil) |
| | | } |
| | | |
| | | required init?(coder: NSCoder) { |
| | | fatalError("init(coder:) has not been implemented") |
| | | } |
| | | |
| | | override func viewDidLoad() { |
| | | super.viewDidLoad() |
| | | navigationItem.titleView = UIView() |
| | | } |
| | | |
| | | override func setUI() { |
| | | super.setUI() |
| | | tableView = UITableView(frame: .zero, style: .plain) |
| | | tableView.delegate = self |
| | | tableView.dataSource = self |
| | | tableView.separatorStyle = .none |
| | | tableView.backgroundColor = Config.ThemeBGColor |
| | | tableView.register(UINib(nibName: "HomeListen_process_TCell", bundle: nil), forCellReuseIdentifier: "_HomeListen_process_TCell") |
| | | tableView.register(UINib(nibName: "HomeListen_item_TCell", bundle: nil), forCellReuseIdentifier: "_HomeListen_item_TCell") |
| | | view.addSubview(tableView) |
| | | tableView.snp.makeConstraints { make in |
| | | make.edges.equalToSuperview() |
| | | } |
| | | } |
| | | } |
| | | |
| | | extension HomeListenSubVC:UITableViewDelegate{ |
| | | |
| | | } |
| | | |
| | | extension HomeListenSubVC:UITableViewDataSource{ |
| | | func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { |
| | | if section == 0{ |
| | | return 1 |
| | | } |
| | | return 5 |
| | | } |
| | | |
| | | func numberOfSections(in tableView: UITableView) -> Int { |
| | | if page <= 5{ |
| | | return 2 |
| | | } |
| | | return 1 |
| | | } |
| | | |
| | | func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { |
| | | if indexPath.section == 0{ |
| | | let cell = tableView.dequeueReusableCell(withIdentifier: "_HomeListen_process_TCell", for: indexPath) as! HomeListen_process_TCell |
| | | return cell |
| | | }else{ |
| | | let cell = tableView.dequeueReusableCell(withIdentifier: "_HomeListen_item_TCell", for: indexPath) as! HomeListen_item_TCell |
| | | return cell |
| | | } |
| | | } |
| | | |
| | | func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { |
| | | if indexPath.section == 0{ |
| | | return 145.5 |
| | | }else{ |
| | | return 127.5 |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | // |
| | | // HomeListenVC.swift |
| | | // DolphinEnglishLearnStudent |
| | | // |
| | | // Created by 无故事王国 on 2024/5/23. |
| | | // |
| | | |
| | | import UIKit |
| | | import SPPageMenu |
| | | import FFPage |
| | | |
| | | class HomeListenVC: BaseVC { |
| | | |
| | | //限制后面的点击:天数(1开始) |
| | | private var limitDay = 5 |
| | | |
| | | private lazy var menu:SPPageMenu = { |
| | | let menu = SPPageMenu(frame: .zero, trackerStyle: .line) |
| | | menu.itemTitleFont = UIFont(name: "Impact", size: 18) ?? .systemFont(ofSize: 18, weight: .medium) |
| | | menu.setItems(["Day1","Day2","Day3","Day4","Day5","自主游戏","听故事"], selectedItemIndex: 0) |
| | | menu.selectedItemTitleColor = UIColor(hexStr: "#41A2EB") |
| | | menu.unSelectedItemTitleColor = UIColor.black.withAlphaComponent(0.71) |
| | | menu.trackerWidth = 22 |
| | | menu.setTrackerHeight(6, cornerRadius: 3) |
| | | menu.trackerFollowingMode = .half |
| | | menu.tracker.image = UIImage.jq_image(with: UIColor(hexStr: "#41A2EB"), size: CGSize(width: 1, height: 1), alpha: 1) |
| | | menu.permutationWay = .notScrollAdaptContent |
| | | menu.dividingLineHeight = 0.001 |
| | | return menu |
| | | }() |
| | | |
| | | private lazy var pageVC:FFPageViewController = { |
| | | let vc = FFPageViewController() |
| | | vc.scrollview.isScrollEnabled = false |
| | | return vc |
| | | }() |
| | | |
| | | // private lazy var tableView:UITableView = { |
| | | // let table = UITableView(frame: .zero, style: .plain) |
| | | // table.register(UINib(nibName: "HomeListen_item_TCell", bundle: nil), forCellReuseIdentifier: "_HomeListen_item_TCell") |
| | | // table.register(UINib(nibName: "HomeListen_process_TCell", bundle: nil), forCellReuseIdentifier: "_HomeListen_process_TCell") |
| | | // return table |
| | | // }() |
| | | |
| | | override func viewDidLoad() { |
| | | super.viewDidLoad() |
| | | } |
| | | |
| | | override func setUI() { |
| | | super.setUI() |
| | | |
| | | let topMenuView = UIView() |
| | | topMenuView.backgroundColor = .white |
| | | topMenuView.jq_cornerRadius = 8 |
| | | view.addSubview(topMenuView) |
| | | topMenuView.snp.makeConstraints { make in |
| | | make.top.equalTo(self.view.safeAreaLayoutGuide).offset(9) |
| | | make.left.equalTo(234) |
| | | make.right.equalTo(-234) |
| | | make.height.equalTo(59) |
| | | } |
| | | |
| | | menu.delegate = self |
| | | topMenuView.addSubview(menu) |
| | | menu.snp.makeConstraints { make in |
| | | make.left.right.equalToSuperview() |
| | | make.centerY.equalToSuperview() |
| | | make.height.equalTo(32) |
| | | } |
| | | |
| | | |
| | | pageVC.delegate = self |
| | | view.addSubview(pageVC.view) |
| | | pageVC.view.snp.makeConstraints { make in |
| | | make.top.equalTo(menu.snp.bottom).offset(19) |
| | | make.left.equalTo(topMenuView.snp.left) |
| | | make.right.equalTo(topMenuView.snp.right) |
| | | make.bottom.equalTo(self.view.safeAreaLayoutGuide.snp.bottom) |
| | | } |
| | | |
| | | for (index,titleL) in (menu.subviews.last?.subviews[1].subviews ?? []).filter({$0 is UIButton}).enumerated(){ |
| | | if index >= limitDay{ |
| | | if let btn = titleL as? UIButton{ |
| | | btn.setTitleColor(.black.withAlphaComponent(0.33), for: .normal) |
| | | menu.setEnabled(false, forItemAt: UInt(index)) |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | extension HomeListenVC:SPPageMenuDelegate{ |
| | | func pageMenu(_ pageMenu: SPPageMenu, itemSelectedAt index: Int) { |
| | | pageVC.scroll(toPage: index, animation: true) |
| | | } |
| | | } |
| | | |
| | | extension HomeListenVC:FFPageViewControllerDelegate{ |
| | | func totalPagesOfpageViewController(_ pageViewConteoller: FFPageViewController) -> UInt { |
| | | return menu.numberOfItems |
| | | } |
| | | |
| | | func pageViewController(_ pageViewController: FFPageViewController, currentPageChanged currentPage: Int) { |
| | | menu.selectedItemIndex = currentPage |
| | | } |
| | | |
| | | func pageViewController(_ pageViewConteoller: FFPageViewController, controllerForPage page: Int) -> UIViewController { |
| | | return HomeListenSubVC(page: page) |
| | | } |
| | | } |
New file |
| | |
| | | // |
| | | // HomeListen_item_TCell.swift |
| | | // DolphinEnglishLearnStudent |
| | | // |
| | | // Created by 无故事王国 on 2024/5/23. |
| | | // |
| | | |
| | | import UIKit |
| | | |
| | | class HomeListen_item_TCell: UITableViewCell { |
| | | |
| | | override func awakeFromNib() { |
| | | super.awakeFromNib() |
| | | backgroundColor = .clear |
| | | selectionStyle = .none |
| | | } |
| | | } |
New file |
| | |
| | | <?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="ipad10_9rounded" orientation="portrait" layout="fullscreen" appearance="light"/> |
| | | <dependencies> |
| | | <deployment identifier="iOS"/> |
| | | <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22684"/> |
| | | <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="_HomeListen_item_TCell" rowHeight="197" id="KGk-i7-Jjw" customClass="HomeListen_item_TCell" customModule="DolphinEnglishLearnStudent" customModuleProvider="target"> |
| | | <rect key="frame" x="0.0" y="0.0" width="717" height="197"/> |
| | | <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="717" height="197"/> |
| | | <autoresizingMask key="autoresizingMask"/> |
| | | <subviews> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Guy-ui-ByM"> |
| | | <rect key="frame" x="0.0" y="9.5" width="717" height="178"/> |
| | | <subviews> |
| | | <stackView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="cKb-Od-cB2"> |
| | | <rect key="frame" x="16" y="9" width="259.5" height="160"/> |
| | | <subviews> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="9XB-yf-tzC"> |
| | | <rect key="frame" x="0.0" y="0.0" width="129.5" height="160"/> |
| | | <subviews> |
| | | <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_poker" translatesAutoresizingMaskIntoConstraints="NO" id="Pyr-Ec-RCQ"> |
| | | <rect key="frame" x="28" y="50" width="74" height="60"/> |
| | | </imageView> |
| | | </subviews> |
| | | <color key="backgroundColor" red="1" green="0.60392156862745094" blue="0.52156862745098043" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <constraints> |
| | | <constraint firstAttribute="width" secondItem="9XB-yf-tzC" secondAttribute="height" multiplier="1:1.234" id="9KC-H4-J1y"/> |
| | | <constraint firstItem="Pyr-Ec-RCQ" firstAttribute="centerY" secondItem="9XB-yf-tzC" secondAttribute="centerY" id="HNc-cw-kQ0"/> |
| | | <constraint firstItem="Pyr-Ec-RCQ" firstAttribute="centerX" secondItem="9XB-yf-tzC" secondAttribute="centerX" id="aC6-ti-BE3"/> |
| | | </constraints> |
| | | <userDefinedRuntimeAttributes> |
| | | <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> |
| | | <real key="value" value="12"/> |
| | | </userDefinedRuntimeAttribute> |
| | | </userDefinedRuntimeAttributes> |
| | | </view> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="pk7-Y8-Mtb"> |
| | | <rect key="frame" x="129.5" y="0.0" width="130" height="160"/> |
| | | <subviews> |
| | | <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_listen" translatesAutoresizingMaskIntoConstraints="NO" id="bVi-Cw-eCh"> |
| | | <rect key="frame" x="0.0" y="0.0" width="130" height="45"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="45" id="Yfd-aW-m4r"/> |
| | | </constraints> |
| | | </imageView> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Oso-ec-JKg"> |
| | | <rect key="frame" x="57.5" y="89" width="14.5" height="67"/> |
| | | <string key="text">万 |
| | | 物 |
| | | 有 |
| | | 声</string> |
| | | <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="14"/> |
| | | <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | </subviews> |
| | | <color key="backgroundColor" red="0.43137254901960786" green="0.76470588235294112" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <constraints> |
| | | <constraint firstAttribute="bottom" secondItem="Oso-ec-JKg" secondAttribute="bottom" constant="4" id="3Jf-oX-Olt"/> |
| | | <constraint firstItem="bVi-Cw-eCh" firstAttribute="top" secondItem="pk7-Y8-Mtb" secondAttribute="top" id="3Pe-Da-l1s"/> |
| | | <constraint firstAttribute="trailing" secondItem="bVi-Cw-eCh" secondAttribute="trailing" id="HEo-5n-Awl"/> |
| | | <constraint firstItem="Oso-ec-JKg" firstAttribute="centerX" secondItem="pk7-Y8-Mtb" secondAttribute="centerX" id="WhM-2o-e3W"/> |
| | | <constraint firstItem="bVi-Cw-eCh" firstAttribute="leading" secondItem="pk7-Y8-Mtb" secondAttribute="leading" id="cnC-jC-pl9"/> |
| | | <constraint firstAttribute="width" secondItem="pk7-Y8-Mtb" secondAttribute="height" multiplier="1:1.234" id="hyD-ob-Qo7"/> |
| | | </constraints> |
| | | <userDefinedRuntimeAttributes> |
| | | <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> |
| | | <real key="value" value="12"/> |
| | | </userDefinedRuntimeAttribute> |
| | | </userDefinedRuntimeAttributes> |
| | | </view> |
| | | </subviews> |
| | | </stackView> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="---" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="28J-ZC-IiE"> |
| | | <rect key="frame" x="288.5" y="9" width="22.5" height="19.5"/> |
| | | <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="16"/> |
| | | <nil key="textColor"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="KYj-jQ-pUN"> |
| | | <rect key="frame" x="288.5" y="37.5" width="26" height="17"/> |
| | | <subviews> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="VQQ-aH-jOl"> |
| | | <rect key="frame" x="7" y="0.0" width="12" height="17"/> |
| | | <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="12"/> |
| | | <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | </subviews> |
| | | <color key="backgroundColor" red="0.40000000000000002" green="0.81176470588235294" blue="0.98039215686274506" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <constraints> |
| | | <constraint firstItem="VQQ-aH-jOl" firstAttribute="top" secondItem="KYj-jQ-pUN" secondAttribute="top" id="0nh-wt-xuh"/> |
| | | <constraint firstAttribute="height" constant="17" id="6uJ-xn-2wu"/> |
| | | <constraint firstAttribute="bottom" secondItem="VQQ-aH-jOl" secondAttribute="bottom" id="EQm-V2-car"/> |
| | | <constraint firstAttribute="trailing" secondItem="VQQ-aH-jOl" secondAttribute="trailing" constant="7" id="dXS-my-h4B"/> |
| | | <constraint firstItem="VQQ-aH-jOl" firstAttribute="leading" secondItem="KYj-jQ-pUN" secondAttribute="leading" constant="7" id="nnj-iB-cDe"/> |
| | | </constraints> |
| | | <userDefinedRuntimeAttributes> |
| | | <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> |
| | | <real key="value" value="8.5"/> |
| | | </userDefinedRuntimeAttribute> |
| | | </userDefinedRuntimeAttributes> |
| | | </view> |
| | | </subviews> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstItem="28J-ZC-IiE" firstAttribute="top" secondItem="cKb-Od-cB2" secondAttribute="top" id="7qV-c6-M1L"/> |
| | | <constraint firstItem="KYj-jQ-pUN" firstAttribute="top" secondItem="28J-ZC-IiE" secondAttribute="bottom" constant="9" id="8ef-d6-Ldd"/> |
| | | <constraint firstAttribute="bottom" secondItem="cKb-Od-cB2" secondAttribute="bottom" constant="9" id="MCc-Tr-PfZ"/> |
| | | <constraint firstItem="cKb-Od-cB2" firstAttribute="top" secondItem="Guy-ui-ByM" secondAttribute="top" constant="9" id="azZ-9G-Vx9"/> |
| | | <constraint firstItem="KYj-jQ-pUN" firstAttribute="leading" secondItem="28J-ZC-IiE" secondAttribute="leading" id="mEO-XJ-SfX"/> |
| | | <constraint firstItem="28J-ZC-IiE" firstAttribute="leading" secondItem="cKb-Od-cB2" secondAttribute="trailing" constant="13" id="onY-uc-tED"/> |
| | | <constraint firstItem="cKb-Od-cB2" firstAttribute="leading" secondItem="Guy-ui-ByM" secondAttribute="leading" constant="16" id="uFp-bW-414"/> |
| | | </constraints> |
| | | <userDefinedRuntimeAttributes> |
| | | <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> |
| | | <real key="value" value="8"/> |
| | | </userDefinedRuntimeAttribute> |
| | | </userDefinedRuntimeAttributes> |
| | | </view> |
| | | </subviews> |
| | | <constraints> |
| | | <constraint firstItem="Guy-ui-ByM" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="9.5" id="7KM-CF-lvk"/> |
| | | <constraint firstItem="Guy-ui-ByM" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" id="Gxj-pF-662"/> |
| | | <constraint firstAttribute="bottom" secondItem="Guy-ui-ByM" secondAttribute="bottom" constant="9.5" id="QOJ-zv-9Zc"/> |
| | | <constraint firstAttribute="trailing" secondItem="Guy-ui-ByM" secondAttribute="trailing" id="Z4n-MP-9SL"/> |
| | | </constraints> |
| | | </tableViewCellContentView> |
| | | <point key="canvasLocation" x="282.80487804878049" y="47.033898305084747"/> |
| | | </tableViewCell> |
| | | </objects> |
| | | <resources> |
| | | <image name="icon_listen" width="64" height="45"/> |
| | | <image name="icon_poker" width="74" height="60"/> |
| | | <systemColor name="systemBackgroundColor"> |
| | | <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
| | | </systemColor> |
| | | </resources> |
| | | </document> |
New file |
| | |
| | | // |
| | | // HomeListen_process_TCell.swift |
| | | // DolphinEnglishLearnStudent |
| | | // |
| | | // Created by 无故事王国 on 2024/5/23. |
| | | // |
| | | |
| | | import UIKit |
| | | |
| | | class HomeListen_process_TCell: UITableViewCell { |
| | | |
| | | override func awakeFromNib() { |
| | | super.awakeFromNib() |
| | | backgroundColor = .clear |
| | | selectionStyle = .none |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | <?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="ipad10_9rounded" orientation="portrait" layout="fullscreen" appearance="light"/> |
| | | <dependencies> |
| | | <deployment identifier="iOS"/> |
| | | <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22684"/> |
| | | <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="_HomeListen_process_TCell" rowHeight="202" id="KGk-i7-Jjw" customClass="HomeListen_process_TCell" customModule="DolphinEnglishLearnStudent" customModuleProvider="target"> |
| | | <rect key="frame" x="0.0" y="0.0" width="541" height="202"/> |
| | | <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="541" height="202"/> |
| | | <autoresizingMask key="autoresizingMask"/> |
| | | <subviews> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="RXp-OG-LEf"> |
| | | <rect key="frame" x="0.0" y="9.5" width="541" height="183"/> |
| | | <subviews> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="当前周目:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="0OR-m9-gOV"> |
| | | <rect key="frame" x="22" y="17" width="96.5" height="29"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="29" id="RHk-nY-HVy"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="21"/> |
| | | <color key="textColor" red="0.16862745098039217" green="0.21176470588235294" blue="0.28235294117647058" 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="tZm-jl-aPX"> |
| | | <rect key="frame" x="427.5" y="20.5" width="101.5" height="22"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="18"/> |
| | | <color key="textColor" red="0.96078431372549022" green="0.47450980392156861" blue="0.0" 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="4vp-cM-Wt2"> |
| | | <rect key="frame" x="23" y="58" width="495" height="22"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="22" id="Pn7-ug-yZr"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" pointSize="16"/> |
| | | <nil key="textColor"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="5YC-oK-utb"> |
| | | <rect key="frame" x="22" y="104" width="20" height="6"/> |
| | | <color key="backgroundColor" red="0.25490196078431371" green="0.63529411764705879" blue="0.92156862745098034" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="6" id="Q4v-Ro-Ym2"/> |
| | | <constraint firstAttribute="width" constant="20" id="Zzl-QC-ej8"/> |
| | | </constraints> |
| | | <userDefinedRuntimeAttributes> |
| | | <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> |
| | | <real key="value" value="3"/> |
| | | </userDefinedRuntimeAttribute> |
| | | </userDefinedRuntimeAttributes> |
| | | </view> |
| | | </subviews> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstItem="5YC-oK-utb" firstAttribute="leading" secondItem="RXp-OG-LEf" secondAttribute="leading" constant="22" id="4MR-IW-urq"/> |
| | | <constraint firstItem="4vp-cM-Wt2" firstAttribute="top" secondItem="0OR-m9-gOV" secondAttribute="bottom" constant="12" id="4Zn-aZ-6B5"/> |
| | | <constraint firstItem="tZm-jl-aPX" firstAttribute="centerY" secondItem="0OR-m9-gOV" secondAttribute="centerY" id="5Aq-B8-hHc"/> |
| | | <constraint firstAttribute="trailing" secondItem="tZm-jl-aPX" secondAttribute="trailing" constant="12" id="9TX-lG-lmM"/> |
| | | <constraint firstItem="5YC-oK-utb" firstAttribute="top" secondItem="4vp-cM-Wt2" secondAttribute="bottom" constant="24" id="CrR-Tw-f7R"/> |
| | | <constraint firstItem="4vp-cM-Wt2" firstAttribute="leading" secondItem="RXp-OG-LEf" secondAttribute="leading" constant="23" id="NVz-na-8L9"/> |
| | | <constraint firstItem="0OR-m9-gOV" firstAttribute="top" secondItem="RXp-OG-LEf" secondAttribute="top" constant="17" id="NpO-xF-QHk"/> |
| | | <constraint firstItem="0OR-m9-gOV" firstAttribute="leading" secondItem="RXp-OG-LEf" secondAttribute="leading" constant="22" id="ZAU-qP-L58"/> |
| | | <constraint firstAttribute="trailing" secondItem="4vp-cM-Wt2" secondAttribute="trailing" constant="23" id="zdS-VW-orc"/> |
| | | </constraints> |
| | | <userDefinedRuntimeAttributes> |
| | | <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> |
| | | <real key="value" value="8"/> |
| | | </userDefinedRuntimeAttribute> |
| | | </userDefinedRuntimeAttributes> |
| | | </view> |
| | | </subviews> |
| | | <constraints> |
| | | <constraint firstAttribute="bottom" secondItem="RXp-OG-LEf" secondAttribute="bottom" constant="9.5" id="3HV-Qy-NWd"/> |
| | | <constraint firstItem="RXp-OG-LEf" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" id="cE9-xW-dTp"/> |
| | | <constraint firstAttribute="trailing" secondItem="RXp-OG-LEf" secondAttribute="trailing" id="dbu-uh-LIe"/> |
| | | <constraint firstItem="RXp-OG-LEf" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="9.5" id="gb6-Z8-JH9"/> |
| | | </constraints> |
| | | </tableViewCellContentView> |
| | | <point key="canvasLocation" x="168.65853658536585" y="60"/> |
| | | </tableViewCell> |
| | | </objects> |
| | | <resources> |
| | | <systemColor name="systemBackgroundColor"> |
| | | <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
| | | </systemColor> |
| | | </resources> |
| | | </document> |
New file |
| | |
| | | // |
| | | // AwardListView.swift |
| | | // DolphinEnglishLearnStudent |
| | | // |
| | | // Created by 无故事王国 on 2024/5/23. |
| | | // |
| | | |
| | | import UIKit |
| | | |
| | | class AwardListView: UIView,JQNibView{ |
| | | |
| | | @IBOutlet weak var collectionView: UICollectionView! |
| | | @IBOutlet weak var view_container: UIView! |
| | | override func awakeFromNib() { |
| | | super.awakeFromNib() |
| | | self.alpha = 0 |
| | | collectionView.delegate = self |
| | | collectionView.dataSource = self |
| | | collectionView.register(UINib(nibName: "AwardListCCell", bundle: nil), forCellWithReuseIdentifier: "_AwardListCCell") |
| | | view_container.transform = .init(scaleX: 0.1, y: 0.1) |
| | | collectionView.contentInset = UIEdgeInsets(top: 0, left: 37, bottom: 0, right: 37) |
| | | layoutIfNeeded() |
| | | } |
| | | |
| | | static func show(clouse:@escaping ()->Void){ |
| | | let awardListView = AwardListView.jq_loadNibView() |
| | | sceneDelegate?.window?.addSubview(awardListView) |
| | | awardListView.frame = sceneDelegate?.window?.frame ?? .zero |
| | | |
| | | UIView.animate(withDuration: 0.4) { |
| | | awardListView.alpha = 1 |
| | | awardListView.view_container.transform = .init(translationX: 1.0, y: 1.0) |
| | | awardListView.layoutIfNeeded() |
| | | } |
| | | } |
| | | |
| | | @IBAction func closeAction(_ sender: UIButton) { |
| | | UIView.animate(withDuration: 0.4) { |
| | | self.alpha = 0 |
| | | self.view_container.transform = .init(scaleX: 0.1, y: 0.1) |
| | | } completion: { _ in |
| | | self.removeFromSuperview() |
| | | } |
| | | } |
| | | } |
| | | |
| | | extension AwardListView:UICollectionViewDelegate{ |
| | | |
| | | } |
| | | |
| | | extension AwardListView:UICollectionViewDataSource{ |
| | | func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { |
| | | let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "_AwardListCCell", for: indexPath) as! AwardListCCell |
| | | return cell |
| | | } |
| | | |
| | | func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { |
| | | return 6 |
| | | } |
| | | } |
| | | |
| | | extension AwardListView:UICollectionViewDelegateFlowLayout{ |
| | | func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { |
| | | let w = (self.jq_width - 74 - 190) / 3.0 |
| | | return CGSize(width: w, height: w * 1.552) |
| | | } |
| | | |
| | | func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat { |
| | | return 44 |
| | | } |
| | | |
| | | func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat { |
| | | return 44 |
| | | } |
| | | } |
New file |
| | |
| | | <?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="ipad10_9rounded" orientation="landscape" layout="fullscreen" appearance="light"/> |
| | | <dependencies> |
| | | <deployment identifier="iOS"/> |
| | | <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22684"/> |
| | | <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="AwardListView" customModule="DolphinEnglishLearnStudent" customModuleProvider="target"> |
| | | <rect key="frame" x="0.0" y="0.0" width="1180" height="820"/> |
| | | <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> |
| | | <subviews> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Tck-Uv-W9Z"> |
| | | <rect key="frame" x="144" y="100" width="892" height="624"/> |
| | | <subviews> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="可兑换商品" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="D5s-Ls-BXc"> |
| | | <rect key="frame" x="405" y="25" width="82" height="18"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="18" id="Z5F-Lg-och"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="16"/> |
| | | <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="hKD-mg-1cZ"> |
| | | <rect key="frame" x="37" y="61" width="188" height="19.5"/> |
| | | <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> |
| | | <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Dhw-Zu-pJB"> |
| | | <rect key="frame" x="386.5" y="556" width="119" height="47"/> |
| | | <color key="backgroundColor" red="0.0" green="0.45882352939999999" blue="0.89019607840000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="47" id="3uv-Oo-dho"/> |
| | | <constraint firstAttribute="width" constant="119" id="rPr-Dj-p6N"/> |
| | | </constraints> |
| | | <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="关闭"/> |
| | | <userDefinedRuntimeAttributes> |
| | | <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> |
| | | <real key="value" value="8"/> |
| | | </userDefinedRuntimeAttribute> |
| | | </userDefinedRuntimeAttributes> |
| | | <connections> |
| | | <action selector="closeAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="aa9-P7-ZZI"/> |
| | | </connections> |
| | | </button> |
| | | <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_waring" translatesAutoresizingMaskIntoConstraints="NO" id="kkz-0v-xBJ"> |
| | | <rect key="frame" x="39" y="517" width="21" height="21"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="21" id="XAG-a1-iFb"/> |
| | | <constraint firstAttribute="width" constant="21" id="n2z-Hg-gRv"/> |
| | | </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="eeD-SQ-zo0"> |
| | | <rect key="frame" x="68" y="517" width="339.5" height="21"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="18"/> |
| | | <color key="textColor" red="0.9882352941176471" green="0.27843137254901962" blue="0.27843137254901962" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" dataMode="none" translatesAutoresizingMaskIntoConstraints="NO" id="zVp-Tg-9B3"> |
| | | <rect key="frame" x="0.0" y="98.5" width="892" height="391.5"/> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <collectionViewFlowLayout key="collectionViewLayout" scrollDirection="horizontal" minimumLineSpacing="10" minimumInteritemSpacing="10" id="P8S-zu-bAi"> |
| | | <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="D5s-Ls-BXc" firstAttribute="centerX" secondItem="Tck-Uv-W9Z" secondAttribute="centerX" id="45c-sq-9HF"/> |
| | | <constraint firstItem="kkz-0v-xBJ" firstAttribute="leading" secondItem="Tck-Uv-W9Z" secondAttribute="leading" constant="39" id="6Lo-yi-RK1"/> |
| | | <constraint firstItem="kkz-0v-xBJ" firstAttribute="top" secondItem="zVp-Tg-9B3" secondAttribute="bottom" constant="27" id="8uY-Eo-zMC"/> |
| | | <constraint firstItem="zVp-Tg-9B3" firstAttribute="leading" secondItem="Tck-Uv-W9Z" secondAttribute="leading" id="CRP-Wh-fHx"/> |
| | | <constraint firstAttribute="bottom" secondItem="kkz-0v-xBJ" secondAttribute="bottom" constant="86" id="Etz-Mz-uTs"/> |
| | | <constraint firstAttribute="bottom" secondItem="Dhw-Zu-pJB" secondAttribute="bottom" constant="21" id="HXo-y1-3a0"/> |
| | | <constraint firstAttribute="trailing" secondItem="zVp-Tg-9B3" secondAttribute="trailing" id="Igj-CJ-nuP"/> |
| | | <constraint firstItem="hKD-mg-1cZ" firstAttribute="top" secondItem="D5s-Ls-BXc" secondAttribute="bottom" constant="18" id="Mn3-gU-sch"/> |
| | | <constraint firstItem="eeD-SQ-zo0" firstAttribute="centerY" secondItem="kkz-0v-xBJ" secondAttribute="centerY" id="X0b-NN-ofo"/> |
| | | <constraint firstItem="Dhw-Zu-pJB" firstAttribute="centerX" secondItem="Tck-Uv-W9Z" secondAttribute="centerX" id="fQp-XS-xCM"/> |
| | | <constraint firstItem="eeD-SQ-zo0" firstAttribute="leading" secondItem="kkz-0v-xBJ" secondAttribute="trailing" constant="8" id="hKP-Ty-7Y3"/> |
| | | <constraint firstAttribute="width" secondItem="Tck-Uv-W9Z" secondAttribute="height" multiplier="1:0.7" id="iKP-00-Qoi"/> |
| | | <constraint firstItem="hKD-mg-1cZ" firstAttribute="leading" secondItem="Tck-Uv-W9Z" secondAttribute="leading" constant="37" id="mRv-D6-UgX"/> |
| | | <constraint firstItem="zVp-Tg-9B3" firstAttribute="top" secondItem="hKD-mg-1cZ" secondAttribute="bottom" constant="18" id="xYk-hA-c8w"/> |
| | | <constraint firstItem="D5s-Ls-BXc" firstAttribute="top" secondItem="Tck-Uv-W9Z" secondAttribute="top" constant="25" id="zeZ-Zz-bNN"/> |
| | | </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="vUN-kp-3ea" firstAttribute="trailing" secondItem="Tck-Uv-W9Z" secondAttribute="trailing" constant="144" id="jyZ-Gt-dNN"/> |
| | | <constraint firstItem="Tck-Uv-W9Z" firstAttribute="centerX" secondItem="vUN-kp-3ea" secondAttribute="centerX" id="nai-67-kdE"/> |
| | | <constraint firstItem="Tck-Uv-W9Z" firstAttribute="leading" secondItem="vUN-kp-3ea" secondAttribute="leading" constant="144" id="pMH-2G-RcV"/> |
| | | <constraint firstItem="Tck-Uv-W9Z" firstAttribute="centerY" secondItem="vUN-kp-3ea" secondAttribute="centerY" id="rRB-EM-sQj"/> |
| | | </constraints> |
| | | <connections> |
| | | <outlet property="collectionView" destination="zVp-Tg-9B3" id="SFZ-0l-V2S"/> |
| | | <outlet property="view_container" destination="Tck-Uv-W9Z" id="FAd-As-nd1"/> |
| | | </connections> |
| | | <point key="canvasLocation" x="30.508474576271187" y="19.756097560975608"/> |
| | | </view> |
| | | </objects> |
| | | <resources> |
| | | <image name="icon_waring" width="21" height="21"/> |
| | | <systemColor name="systemBackgroundColor"> |
| | | <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
| | | </systemColor> |
| | | </resources> |
| | | </document> |
New file |
| | |
| | | // |
| | | // MarketCCell.swift |
| | | // DolphinEnglishLearnManager |
| | | // |
| | | // Created by 无故事王国 on 2024/5/21. |
| | | // |
| | | |
| | | import UIKit |
| | | |
| | | class MarketCCell: UICollectionViewCell { |
| | | |
| | | @IBOutlet weak var cover_imageView: UIImageView! |
| | | @IBOutlet weak var label_title: UILabel! |
| | | @IBOutlet weak var label_coin: UILabel! |
| | | |
| | | override func awakeFromNib() { |
| | | super.awakeFromNib() |
| | | |
| | | } |
| | | |
| | | override func layoutSubviews() { |
| | | super.layoutSubviews() |
| | | jq_addShadows(shadowColor: UIColor(hexStr: "#D9D9D9"), corner: 8, radius: 20, offset: CGSize(width: 0, height: 20), opacity: 1) |
| | | } |
| | | } |
New file |
| | |
| | | <?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="22684"/> |
| | | <capability name="Safe area layout guides" minToolsVersion="9.0"/> |
| | | <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> |
| | | </dependencies> |
| | | <objects> |
| | | <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/> |
| | | <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> |
| | | <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="_MarketCCell" id="gTV-IL-0wX" customClass="MarketCCell" customModule="DolphinEnglishLearnManager" customModuleProvider="target"> |
| | | <rect key="frame" x="0.0" y="0.0" width="470" height="519"/> |
| | | <autoresizingMask key="autoresizingMask"/> |
| | | <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> |
| | | <rect key="frame" x="0.0" y="0.0" width="470" height="519"/> |
| | | <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> |
| | | <subviews> |
| | | <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="2cm-3W-Dip"> |
| | | <rect key="frame" x="0.0" y="0.0" width="470" height="352.66666666666669"/> |
| | | <constraints> |
| | | <constraint firstAttribute="width" secondItem="2cm-3W-Dip" secondAttribute="height" multiplier="1:0.75" id="U9h-Bg-isg"/> |
| | | </constraints> |
| | | </imageView> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="cZP-Mn-OJ6"> |
| | | <rect key="frame" x="7" y="360.66666666666669" width="456" 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> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0积分" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="B7C-Df-hv9"> |
| | | <rect key="frame" x="417.66666666666669" y="492" width="39.333333333333314" height="17"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> |
| | | <color key="textColor" red="0.96862745098039216" green="0.27450980392156865" blue="0.1764705882352941" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | </subviews> |
| | | </view> |
| | | <viewLayoutGuide key="safeArea" id="ZTg-uK-7eu"/> |
| | | <constraints> |
| | | <constraint firstAttribute="trailing" secondItem="2cm-3W-Dip" secondAttribute="trailing" id="2be-nz-zYP"/> |
| | | <constraint firstAttribute="trailing" secondItem="cZP-Mn-OJ6" secondAttribute="trailing" constant="7" id="6U5-wt-yPs"/> |
| | | <constraint firstAttribute="trailing" secondItem="B7C-Df-hv9" secondAttribute="trailing" constant="13" id="CCg-Jf-Mwe"/> |
| | | <constraint firstAttribute="bottom" secondItem="B7C-Df-hv9" secondAttribute="bottom" constant="10" id="MLQ-id-sQE"/> |
| | | <constraint firstItem="2cm-3W-Dip" firstAttribute="top" secondItem="gTV-IL-0wX" secondAttribute="top" id="MX5-We-LCK"/> |
| | | <constraint firstItem="cZP-Mn-OJ6" firstAttribute="top" secondItem="2cm-3W-Dip" secondAttribute="bottom" constant="8" id="Xrn-7e-mOW"/> |
| | | <constraint firstItem="2cm-3W-Dip" firstAttribute="leading" secondItem="gTV-IL-0wX" secondAttribute="leading" id="lQn-8e-jEv"/> |
| | | <constraint firstItem="cZP-Mn-OJ6" firstAttribute="leading" secondItem="gTV-IL-0wX" secondAttribute="leading" constant="7" id="tDr-lk-oeH"/> |
| | | </constraints> |
| | | <size key="customSize" width="470" height="519"/> |
| | | <connections> |
| | | <outlet property="cover_imageView" destination="2cm-3W-Dip" id="Rgm-EG-CCF"/> |
| | | <outlet property="label_coin" destination="B7C-Df-hv9" id="RFw-M6-RQB"/> |
| | | <outlet property="label_title" destination="cZP-Mn-OJ6" id="7hk-XA-3Jx"/> |
| | | </connections> |
| | | <point key="canvasLocation" x="459.5419847328244" y="185.56338028169014"/> |
| | | </collectionViewCell> |
| | | </objects> |
| | | </document> |
New file |
| | |
| | | // |
| | | // MarketVC.swift |
| | | // DolphinEnglishLearnManager |
| | | // |
| | | // Created by 无故事王国 on 2024/5/21. |
| | | // |
| | | |
| | | import UIKit |
| | | import QMUIKit |
| | | |
| | | class MarketVC: BaseVC { |
| | | @IBOutlet weak var tf_search: QMUITextField! |
| | | @IBOutlet weak var menu_collectView: UICollectionView! |
| | | @IBOutlet weak var content_collectionView: UICollectionView! |
| | | |
| | | private var cellW = (JQ_ScreenW - 130 - 15) / 4.0 |
| | | |
| | | override func viewDidLoad() { |
| | | super.viewDidLoad() |
| | | |
| | | } |
| | | |
| | | override func setUI() { |
| | | super.setUI() |
| | | tf_search.placeholderColor = UIColor.black.withAlphaComponent(0.81) |
| | | content_collectionView.delegate = self |
| | | content_collectionView.dataSource = self |
| | | content_collectionView.backgroundColor = .clear |
| | | content_collectionView.contentInset = UIEdgeInsets(top: 0, left: 65, bottom: 0, right:65) |
| | | content_collectionView.register(UINib(nibName: "MarketCCell", bundle: nil), forCellWithReuseIdentifier: "_MarketCCell") |
| | | } |
| | | |
| | | @IBAction func searchAction(_ sender: UIButton) { |
| | | |
| | | } |
| | | } |
| | | |
| | | extension MarketVC:UICollectionViewDelegate{ |
| | | func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { |
| | | let vc = MarketContentVC() |
| | | vc.title = "商品详情" |
| | | push(vc: vc) |
| | | } |
| | | } |
| | | |
| | | extension MarketVC:UICollectionViewDataSource{ |
| | | func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { |
| | | return 30 |
| | | } |
| | | |
| | | func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { |
| | | let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "_MarketCCell", for: indexPath) as! MarketCCell |
| | | cell.backgroundColor = .gray.withAlphaComponent(0.5) |
| | | return cell |
| | | } |
| | | } |
| | | |
| | | extension MarketVC:UICollectionViewDelegateFlowLayout{ |
| | | func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { |
| | | return CGSize(width: cellW, height: cellW * 1.09) |
| | | } |
| | | |
| | | func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat { |
| | | return 24 |
| | | } |
| | | |
| | | func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat { |
| | | return 5 |
| | | } |
| | | } |
New file |
| | |
| | | <?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="ipad12_9" orientation="portrait" layout="fullscreen" appearance="light"/> |
| | | <dependencies> |
| | | <deployment identifier="iOS"/> |
| | | <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22684"/> |
| | | <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="MarketVC" customModule="DolphinEnglishLearnStudent" customModuleProvider="target"> |
| | | <connections> |
| | | <outlet property="content_collectionView" destination="EPp-Vf-S4a" id="nYe-TY-YF6"/> |
| | | <outlet property="menu_collectView" destination="OCn-Jg-gWg" id="v5E-bg-k90"/> |
| | | <outlet property="tf_search" destination="Jv9-DX-cX8" id="Y6V-ux-8OL"/> |
| | | <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="1024" height="1366"/> |
| | | <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> |
| | | <subviews> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Unb-0E-8fJ"> |
| | | <rect key="frame" x="65" y="34" width="894" height="40"/> |
| | | <subviews> |
| | | <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_search" translatesAutoresizingMaskIntoConstraints="NO" id="zmK-72-DKs"> |
| | | <rect key="frame" x="13" y="12" width="16" height="16"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="16" id="0xZ-2Z-8Dz"/> |
| | | <constraint firstAttribute="width" constant="16" id="EnL-UP-mkT"/> |
| | | </constraints> |
| | | </imageView> |
| | | <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="输入商品关键字搜索" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="Jv9-DX-cX8" customClass="QMUITextField"> |
| | | <rect key="frame" x="41" y="0.0" width="778" height="40"/> |
| | | <fontDescription key="fontDescription" type="system" pointSize="14"/> |
| | | <textInputTraits key="textInputTraits"/> |
| | | </textField> |
| | | <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="6Xu-Kn-W1A"> |
| | | <rect key="frame" x="824" y="0.0" width="70" height="40"/> |
| | | <color key="backgroundColor" red="0.25490196079999999" green="0.63529411759999999" blue="0.92156862750000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <constraints> |
| | | <constraint firstAttribute="width" constant="70" id="N7X-vk-Rib"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" 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="searchAction:" destination="-1" eventType="touchUpInside" id="CdE-PQ-Cgh"/> |
| | | </connections> |
| | | </button> |
| | | </subviews> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstItem="Jv9-DX-cX8" firstAttribute="top" secondItem="Unb-0E-8fJ" secondAttribute="top" id="36L-0R-08F"/> |
| | | <constraint firstItem="zmK-72-DKs" firstAttribute="centerY" secondItem="Unb-0E-8fJ" secondAttribute="centerY" id="Hl9-3g-NFk"/> |
| | | <constraint firstItem="Jv9-DX-cX8" firstAttribute="leading" secondItem="zmK-72-DKs" secondAttribute="trailing" constant="12" id="NhE-fA-vsR"/> |
| | | <constraint firstAttribute="bottom" secondItem="6Xu-Kn-W1A" secondAttribute="bottom" id="Ob3-Uq-uwF"/> |
| | | <constraint firstAttribute="height" constant="40" id="VCY-SL-5x2"/> |
| | | <constraint firstAttribute="trailing" secondItem="6Xu-Kn-W1A" secondAttribute="trailing" id="ZTD-iX-ro1"/> |
| | | <constraint firstItem="6Xu-Kn-W1A" firstAttribute="top" secondItem="Unb-0E-8fJ" secondAttribute="top" id="bVt-3j-Dv8"/> |
| | | <constraint firstAttribute="bottom" secondItem="Jv9-DX-cX8" secondAttribute="bottom" id="h10-zI-uxk"/> |
| | | <constraint firstItem="zmK-72-DKs" firstAttribute="leading" secondItem="Unb-0E-8fJ" secondAttribute="leading" constant="13" id="j6U-On-Kd2"/> |
| | | <constraint firstItem="6Xu-Kn-W1A" firstAttribute="leading" secondItem="Jv9-DX-cX8" secondAttribute="trailing" constant="5" id="vBS-vy-uLv"/> |
| | | </constraints> |
| | | <userDefinedRuntimeAttributes> |
| | | <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> |
| | | <real key="value" value="20"/> |
| | | </userDefinedRuntimeAttribute> |
| | | </userDefinedRuntimeAttributes> |
| | | </view> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="82B-Dg-Sap"> |
| | | <rect key="frame" x="946" y="102" width="13" height="29"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="29" id="wW2-Vh-riV"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" name="Impact" family="Impact" pointSize="24"/> |
| | | <color key="textColor" red="0.99607843139999996" green="0.14117647059999999" blue="0.050980392159999999" 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="A9t-n3-Bmf"> |
| | | <rect key="frame" x="867" y="105.5" width="74" height="22"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="22" id="YFs-Uk-JaX"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/> |
| | | <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.81000000000000005" colorSpace="custom" customColorSpace="calibratedRGB"/> |
| | | <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="Jg0-dG-OCI"> |
| | | <rect key="frame" x="65" y="105.5" width="74" height="22"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="22" id="tki-uv-Hgf"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/> |
| | | <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.81000000000000005" colorSpace="custom" customColorSpace="calibratedRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" dataMode="none" translatesAutoresizingMaskIntoConstraints="NO" id="OCn-Jg-gWg"> |
| | | <rect key="frame" x="152" y="96" width="705" height="41"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="41" id="A5O-nk-89N"/> |
| | | </constraints> |
| | | <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="10" minimumInteritemSpacing="10" id="ozO-lT-kFv"> |
| | | <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> |
| | | <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" dataMode="none" translatesAutoresizingMaskIntoConstraints="NO" id="EPp-Vf-S4a"> |
| | | <rect key="frame" x="0.0" y="159" width="1024" height="1207"/> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="10" minimumInteritemSpacing="10" id="YMW-eo-TCY"> |
| | | <size key="itemSize" width="128" height="128"/> |
| | | <size key="headerReferenceSize" width="0.0" height="0.0"/> |
| | | <size key="footerReferenceSize" width="0.0" height="0.0"/> |
| | | <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/> |
| | | </collectionViewFlowLayout> |
| | | </collectionView> |
| | | </subviews> |
| | | <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstItem="82B-Dg-Sap" firstAttribute="trailing" secondItem="Unb-0E-8fJ" secondAttribute="trailing" id="04D-Ur-Vzd"/> |
| | | <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="Unb-0E-8fJ" secondAttribute="trailing" constant="65" id="9yv-3Y-78Y"/> |
| | | <constraint firstItem="Unb-0E-8fJ" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="65" id="O97-uk-THq"/> |
| | | <constraint firstItem="82B-Dg-Sap" firstAttribute="top" secondItem="Unb-0E-8fJ" secondAttribute="bottom" constant="28" id="OiX-TJ-i3e"/> |
| | | <constraint firstItem="A9t-n3-Bmf" firstAttribute="leading" secondItem="OCn-Jg-gWg" secondAttribute="trailing" constant="10" id="Q2g-q0-rku"/> |
| | | <constraint firstItem="OCn-Jg-gWg" firstAttribute="leading" secondItem="Jg0-dG-OCI" secondAttribute="trailing" constant="13" id="Rup-A4-pfm"/> |
| | | <constraint firstItem="82B-Dg-Sap" firstAttribute="centerY" secondItem="A9t-n3-Bmf" secondAttribute="centerY" id="bHH-o4-cLV"/> |
| | | <constraint firstItem="82B-Dg-Sap" firstAttribute="leading" secondItem="A9t-n3-Bmf" secondAttribute="trailing" constant="5" id="buA-2r-a7T"/> |
| | | <constraint firstItem="Jg0-dG-OCI" firstAttribute="leading" secondItem="Unb-0E-8fJ" secondAttribute="leading" id="eac-Va-hFg"/> |
| | | <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="EPp-Vf-S4a" secondAttribute="trailing" id="jLa-um-hSS"/> |
| | | <constraint firstItem="EPp-Vf-S4a" firstAttribute="top" secondItem="OCn-Jg-gWg" secondAttribute="bottom" constant="22" id="l0E-ZM-qAm"/> |
| | | <constraint firstItem="Unb-0E-8fJ" firstAttribute="top" secondItem="fnl-2z-Ty3" secondAttribute="top" constant="14" id="nM6-Hl-pP0"/> |
| | | <constraint firstItem="OCn-Jg-gWg" firstAttribute="centerY" secondItem="Jg0-dG-OCI" secondAttribute="centerY" id="qj3-NG-f1r"/> |
| | | <constraint firstItem="fnl-2z-Ty3" firstAttribute="bottom" secondItem="EPp-Vf-S4a" secondAttribute="bottom" id="tAh-It-yfg"/> |
| | | <constraint firstItem="EPp-Vf-S4a" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="vY3-YE-qeC"/> |
| | | <constraint firstItem="82B-Dg-Sap" firstAttribute="centerY" secondItem="Jg0-dG-OCI" secondAttribute="centerY" id="wIi-bv-dga"/> |
| | | </constraints> |
| | | <point key="canvasLocation" x="138" y="21"/> |
| | | </view> |
| | | </objects> |
| | | <resources> |
| | | <image name="icon_search" width="16" height="16"/> |
| | | <systemColor name="systemBackgroundColor"> |
| | | <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
| | | </systemColor> |
| | | </resources> |
| | | </document> |
New file |
| | |
| | | // |
| | | // ExchangeResultVC.swift |
| | | // DolphinEnglishLearnManager |
| | | // |
| | | // Created by 无故事王国 on 2024/5/21. |
| | | // |
| | | |
| | | import UIKit |
| | | |
| | | class ExchangeResultVC: BaseVC { |
| | | enum ExchangeResultType{ |
| | | case success |
| | | case fail(String) |
| | | } |
| | | |
| | | private var resultType:ExchangeResultType! |
| | | |
| | | @IBOutlet weak var img_result: UIImageView! |
| | | @IBOutlet weak var label_type: UILabel! |
| | | @IBOutlet weak var label_subType: UILabel! |
| | | @IBOutlet weak var back_btn: UIButton! |
| | | @IBOutlet weak var btn_order: UIButton! |
| | | |
| | | init(resultType:ExchangeResultType) { |
| | | super.init(nibName: nil, bundle: nil) |
| | | self.resultType = resultType |
| | | } |
| | | |
| | | required init?(coder: NSCoder) { |
| | | fatalError("init(coder:) has not been implemented") |
| | | } |
| | | |
| | | override func viewDidLoad() { |
| | | super.viewDidLoad() |
| | | |
| | | switch resultType { |
| | | case .success: |
| | | label_type.text = "兑换成功!" |
| | | label_subType.text = "" |
| | | img_result.image = UIImage(named: "icon_success") |
| | | case .fail(let subTitle): |
| | | label_type.text = "兑换失败!" |
| | | label_subType.text = subTitle |
| | | btn_order.isHidden = true |
| | | img_result.image = UIImage(named: "icon_fail") |
| | | case .none: |
| | | break |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | <?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="ipad12_9" orientation="portrait" layout="fullscreen" appearance="light"/> |
| | | <dependencies> |
| | | <deployment identifier="iOS"/> |
| | | <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22684"/> |
| | | <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="ExchangeResultVC" customModule="DolphinEnglishLearnStudent" customModuleProvider="target"> |
| | | <connections> |
| | | <outlet property="back_btn" destination="Nyx-Nz-by6" id="DFU-zr-XcZ"/> |
| | | <outlet property="btn_order" destination="gZA-Zs-XKS" id="VsH-nN-zar"/> |
| | | <outlet property="img_result" destination="WIa-7P-Bf1" id="o6N-ts-w70"/> |
| | | <outlet property="label_subType" destination="lpP-CH-CdV" id="Rp0-7c-eOb"/> |
| | | <outlet property="label_type" destination="O5B-wn-Esz" id="WJ9-J0-xMl"/> |
| | | <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="1024" height="1366"/> |
| | | <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> |
| | | <subviews> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="VxI-3j-WUN"> |
| | | <rect key="frame" x="99" y="43" width="826" height="1323"/> |
| | | <subviews> |
| | | <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="WIa-7P-Bf1"> |
| | | <rect key="frame" x="375.5" y="30" width="75" height="75"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="75" id="KLa-7i-28e"/> |
| | | <constraint firstAttribute="width" constant="75" id="uco-r2-Ki1"/> |
| | | </constraints> |
| | | </imageView> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="O5B-wn-Esz"> |
| | | <rect key="frame" x="405" y="134" width="16.5" height="25"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="25" id="BJ3-sF-4No"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="18"/> |
| | | <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <stackView opaque="NO" contentMode="scaleToFill" spacing="94" translatesAutoresizingMaskIntoConstraints="NO" id="aqw-2Q-ccA"> |
| | | <rect key="frame" x="242" y="274" width="342" height="39.5"/> |
| | | <subviews> |
| | | <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Nyx-Nz-by6"> |
| | | <rect key="frame" x="0.0" y="0.0" width="124" height="39.5"/> |
| | | <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
| | | <constraints> |
| | | <constraint firstAttribute="width" secondItem="Nyx-Nz-by6" secondAttribute="height" multiplier="1:0.32" id="2Tx-Vi-WZ4"/> |
| | | <constraint firstAttribute="width" constant="124" id="shE-lB-SNE"/> |
| | | </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="返回主页"> |
| | | <color key="titleColor" red="0.25490196079999999" green="0.63529411759999999" blue="0.92156862750000001" 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="4"/> |
| | | </userDefinedRuntimeAttribute> |
| | | <userDefinedRuntimeAttribute type="color" keyPath="ld_borderColorXIB"> |
| | | <color key="value" red="0.25490196079999999" green="0.63529411759999999" blue="0.92156862750000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | </userDefinedRuntimeAttribute> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="ld_borderWidthXIB"> |
| | | <real key="value" value="1"/> |
| | | </userDefinedRuntimeAttribute> |
| | | </userDefinedRuntimeAttributes> |
| | | </button> |
| | | <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="gZA-Zs-XKS"> |
| | | <rect key="frame" x="218" y="0.0" width="124" height="39.5"/> |
| | | <color key="backgroundColor" red="0.25490196079999999" green="0.63529411759999999" blue="0.92156862750000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <constraints> |
| | | <constraint firstAttribute="width" secondItem="gZA-Zs-XKS" secondAttribute="height" multiplier="1:0.32" id="0iz-f8-sBd"/> |
| | | <constraint firstAttribute="width" constant="124" id="no6-KJ-YlK"/> |
| | | </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="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> |
| | | <real key="value" value="4"/> |
| | | </userDefinedRuntimeAttribute> |
| | | </userDefinedRuntimeAttributes> |
| | | </button> |
| | | </subviews> |
| | | </stackView> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="lpP-CH-CdV"> |
| | | <rect key="frame" x="406.5" y="169" width="13.5" height="20"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="20" id="hmc-cj-PH2"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> |
| | | <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.60999999999999999" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | </subviews> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstItem="aqw-2Q-ccA" firstAttribute="top" secondItem="O5B-wn-Esz" secondAttribute="bottom" constant="115" id="01i-1s-vGv"/> |
| | | <constraint firstItem="WIa-7P-Bf1" firstAttribute="top" secondItem="VxI-3j-WUN" secondAttribute="top" constant="30" id="8FS-WV-fzD"/> |
| | | <constraint firstItem="O5B-wn-Esz" firstAttribute="top" secondItem="WIa-7P-Bf1" secondAttribute="bottom" constant="29" id="LcC-Pn-4cZ"/> |
| | | <constraint firstItem="lpP-CH-CdV" firstAttribute="top" secondItem="O5B-wn-Esz" secondAttribute="bottom" constant="10" id="PUc-i1-j3R"/> |
| | | <constraint firstItem="O5B-wn-Esz" firstAttribute="centerX" secondItem="WIa-7P-Bf1" secondAttribute="centerX" id="YHY-KZ-NSV"/> |
| | | <constraint firstItem="lpP-CH-CdV" firstAttribute="centerX" secondItem="WIa-7P-Bf1" secondAttribute="centerX" id="bvO-J3-QW5"/> |
| | | <constraint firstItem="WIa-7P-Bf1" firstAttribute="centerX" secondItem="VxI-3j-WUN" secondAttribute="centerX" id="cc8-Nd-McS"/> |
| | | <constraint firstItem="aqw-2Q-ccA" firstAttribute="centerX" secondItem="WIa-7P-Bf1" secondAttribute="centerX" id="mFA-jn-dVT"/> |
| | | </constraints> |
| | | <userDefinedRuntimeAttributes> |
| | | <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> |
| | | <real key="value" value="8"/> |
| | | </userDefinedRuntimeAttribute> |
| | | </userDefinedRuntimeAttributes> |
| | | </view> |
| | | </subviews> |
| | | <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="VxI-3j-WUN" secondAttribute="trailing" constant="99" id="Iat-hg-uhk"/> |
| | | <constraint firstItem="VxI-3j-WUN" firstAttribute="top" secondItem="fnl-2z-Ty3" secondAttribute="top" constant="23" id="R5c-zV-QAE"/> |
| | | <constraint firstItem="VxI-3j-WUN" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="99" id="aNF-ge-CLX"/> |
| | | <constraint firstItem="fnl-2z-Ty3" firstAttribute="bottom" secondItem="VxI-3j-WUN" secondAttribute="bottom" id="pWe-V4-eqI"/> |
| | | </constraints> |
| | | <point key="canvasLocation" x="98" y="21"/> |
| | | </view> |
| | | </objects> |
| | | <resources> |
| | | <systemColor name="systemBackgroundColor"> |
| | | <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
| | | </systemColor> |
| | | </resources> |
| | | </document> |
New file |
| | |
| | | // |
| | | // MarketContentVC.swift |
| | | // DolphinEnglishLearnManager |
| | | // |
| | | // Created by 无故事王国 on 2024/5/21. |
| | | // |
| | | |
| | | import UIKit |
| | | import WebKit |
| | | |
| | | class MarketContentVC: BaseVC { |
| | | |
| | | @IBOutlet weak var scrollView: UIScrollView! |
| | | @IBOutlet weak var image_cover: UIImageView! |
| | | @IBOutlet weak var view_footer: UIView! |
| | | @IBOutlet weak var view_container: UIView! |
| | | @IBOutlet weak var label_coin: UILabel! |
| | | @IBOutlet weak var label_title: UILabel! |
| | | @IBOutlet weak var label_categry: UILabel! |
| | | @IBOutlet weak var label_info: UILabel! |
| | | @IBOutlet weak var webView: WKWebView! |
| | | @IBOutlet weak var label_surplusCoin: UILabel! |
| | | @IBOutlet weak var label_costCoin: UILabel! |
| | | @IBOutlet weak var cons_footHei: NSLayoutConstraint! |
| | | |
| | | override func viewDidLoad() { |
| | | super.viewDidLoad() |
| | | |
| | | } |
| | | |
| | | override func setUI() { |
| | | super.setUI() |
| | | scrollView.contentInset = UIEdgeInsets(top: 26, left: 0, bottom: 31, right: 0) |
| | | cons_footHei.constant = 54 + UIDevice.jq_safeEdges.bottom |
| | | } |
| | | |
| | | |
| | | @IBAction func exchangeAction(_ sender: UIButton) { |
| | | // CommonAlertView.show(isSinple: true, content: "兑换失败,当前剩余积分不足!") { |
| | | // |
| | | // } |
| | | |
| | | let vc = MarketExchangeVC() |
| | | vc.title = "立即兑换" |
| | | push(vc: vc) |
| | | } |
| | | |
| | | override func viewDidLayoutSubviews() { |
| | | super.viewDidLayoutSubviews() |
| | | image_cover.jq_addCorners(corner: [.topLeft,.topRight], radius: 8) |
| | | view_footer.jq_addShadows(shadowColor: UIColor(hexStr: "#DEDEDE").withAlphaComponent(0.5), corner: 0, radius: 4, offset: CGSize(width: 0, height: -1), opacity: 1) |
| | | |
| | | view_container.jq_addShadows(shadowColor: UIColor(hexStr: "#D9D9D9").withAlphaComponent(0.28), corner: 8, radius: 5, offset: CGSize(width: 0, height: 2), opacity: 1) |
| | | } |
| | | } |
New file |
| | |
| | | <?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="ipad12_9" orientation="portrait" layout="fullscreen" appearance="light"/> |
| | | <dependencies> |
| | | <deployment identifier="iOS"/> |
| | | <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22684"/> |
| | | <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="MarketContentVC" customModule="DolphinEnglishLearnStudent" customModuleProvider="target"> |
| | | <connections> |
| | | <outlet property="cons_footHei" destination="O1c-0y-Iw9" id="Oj2-S6-uVD"/> |
| | | <outlet property="image_cover" destination="HQ8-qZ-zeA" id="0xr-UI-5I9"/> |
| | | <outlet property="label_categry" destination="YLo-dD-PTM" id="kCG-k8-Baa"/> |
| | | <outlet property="label_coin" destination="yrU-ab-vv9" id="4UT-Q9-CO3"/> |
| | | <outlet property="label_costCoin" destination="Br9-rb-zWu" id="Qyp-x1-Ff0"/> |
| | | <outlet property="label_info" destination="kR5-RX-1Ha" id="cvV-F1-x1p"/> |
| | | <outlet property="label_surplusCoin" destination="sQy-qj-ems" id="FaO-3K-U3Z"/> |
| | | <outlet property="label_title" destination="PgE-zX-EIu" id="FWi-qa-sK0"/> |
| | | <outlet property="scrollView" destination="loc-rm-BZe" id="xqU-OW-GgJ"/> |
| | | <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/> |
| | | <outlet property="view_container" destination="3V0-GL-Fmn" id="D6J-fr-4H2"/> |
| | | <outlet property="view_footer" destination="mp9-Bg-Kez" id="41u-8O-co7"/> |
| | | <outlet property="webView" destination="ZOY-ws-sjP" id="bXL-3r-nKs"/> |
| | | </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="1024" height="1366"/> |
| | | <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> |
| | | <subviews> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="mp9-Bg-Kez"> |
| | | <rect key="frame" x="0.0" y="1312" width="1024" height="54"/> |
| | | <subviews> |
| | | <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="47G-CM-alP"> |
| | | <rect key="frame" x="875" y="7.5" width="109" height="39"/> |
| | | <color key="backgroundColor" red="0.25490196079999999" green="0.63529411759999999" blue="0.92156862750000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <constraints> |
| | | <constraint firstAttribute="width" secondItem="47G-CM-alP" secondAttribute="height" multiplier="1:0.36" id="QfK-ys-hlP"/> |
| | | <constraint firstAttribute="width" constant="109" id="qbL-gB-8KW"/> |
| | | </constraints> |
| | | <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="立即兑换"/> |
| | | <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="exchangeAction:" destination="-1" eventType="touchUpInside" id="94B-mA-VBe"/> |
| | | </connections> |
| | | </button> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="积分" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="WKk-eD-2Hb"> |
| | | <rect key="frame" x="823" y="16.5" width="37" height="21.5"/> |
| | | <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="18"/> |
| | | <color key="textColor" red="0.96862745100000003" green="0.27450980390000002" blue="0.1764705882" 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="Br9-rb-zWu"> |
| | | <rect key="frame" x="813" y="16" width="10" height="22"/> |
| | | <fontDescription key="fontDescription" name="Impact" family="Impact" pointSize="18"/> |
| | | <color key="textColor" red="0.96862745100000003" green="0.27450980390000002" blue="0.1764705882" 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="sQy-qj-ems"> |
| | | <rect key="frame" x="40" y="16" width="92" height="22"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/> |
| | | <nil key="textColor"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | </subviews> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstItem="Br9-rb-zWu" firstAttribute="centerY" secondItem="sQy-qj-ems" secondAttribute="centerY" id="1O6-3C-dCB"/> |
| | | <constraint firstItem="WKk-eD-2Hb" firstAttribute="centerY" secondItem="mp9-Bg-Kez" secondAttribute="centerY" id="8Pb-Kd-JoK"/> |
| | | <constraint firstItem="sQy-qj-ems" firstAttribute="top" secondItem="mp9-Bg-Kez" secondAttribute="top" constant="16" id="CD5-UU-eLb"/> |
| | | <constraint firstItem="WKk-eD-2Hb" firstAttribute="leading" secondItem="Br9-rb-zWu" secondAttribute="trailing" id="Fmd-EM-IH2"/> |
| | | <constraint firstItem="47G-CM-alP" firstAttribute="leading" secondItem="WKk-eD-2Hb" secondAttribute="trailing" constant="15" id="K8e-zI-xYh"/> |
| | | <constraint firstAttribute="height" constant="54" id="O1c-0y-Iw9"/> |
| | | <constraint firstItem="47G-CM-alP" firstAttribute="centerY" secondItem="sQy-qj-ems" secondAttribute="centerY" id="RlJ-Nq-ngW"/> |
| | | <constraint firstItem="WKk-eD-2Hb" firstAttribute="centerY" secondItem="sQy-qj-ems" secondAttribute="centerY" id="ThX-M4-na3"/> |
| | | <constraint firstItem="sQy-qj-ems" firstAttribute="leading" secondItem="mp9-Bg-Kez" secondAttribute="leading" constant="40" id="l0r-bN-i7w"/> |
| | | <constraint firstAttribute="trailing" secondItem="47G-CM-alP" secondAttribute="trailing" constant="40" id="szD-sR-9iL"/> |
| | | </constraints> |
| | | </view> |
| | | <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" translatesAutoresizingMaskIntoConstraints="NO" id="loc-rm-BZe"> |
| | | <rect key="frame" x="234" y="20" width="556" height="1292"/> |
| | | <subviews> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="3V0-GL-Fmn"> |
| | | <rect key="frame" x="0.0" y="0.0" width="556" height="681"/> |
| | | <subviews> |
| | | <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="HQ8-qZ-zeA"> |
| | | <rect key="frame" x="0.0" y="0.0" width="556" height="319.5"/> |
| | | <color key="backgroundColor" systemColor="systemGray5Color"/> |
| | | <constraints> |
| | | <constraint firstAttribute="width" secondItem="HQ8-qZ-zeA" secondAttribute="height" multiplier="1:0.575" id="4sO-41-6AB"/> |
| | | </constraints> |
| | | </imageView> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="yrU-ab-vv9"> |
| | | <rect key="frame" x="14" y="329.5" width="10" height="25"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="25" id="aYX-Lj-BOi"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" name="Impact" family="Impact" pointSize="18"/> |
| | | <color key="textColor" red="0.96862745100000003" green="0.27450980390000002" blue="0.1764705882" 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="LtS-Mg-aeT"> |
| | | <rect key="frame" x="24" y="329.5" width="37" height="25"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="25" id="8tS-gu-9LD"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="18"/> |
| | | <color key="textColor" red="0.96862745100000003" green="0.27450980390000002" blue="0.1764705882" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="PgE-zX-EIu"> |
| | | <rect key="frame" x="14" y="361.5" width="528" height="19.5"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" 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> |
| | | <stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" translatesAutoresizingMaskIntoConstraints="NO" id="SHM-HW-3QJ"> |
| | | <rect key="frame" x="14" y="388" width="528" height="20"/> |
| | | <subviews> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="YLo-dD-PTM"> |
| | | <rect key="frame" x="0.0" y="0.0" width="264" height="20"/> |
| | | <fontDescription key="fontDescription" type="system" pointSize="14"/> |
| | | <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.51000000000000001" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="kR5-RX-1Ha"> |
| | | <rect key="frame" x="264" y="0.0" width="264" height="20"/> |
| | | <fontDescription key="fontDescription" type="system" pointSize="14"/> |
| | | <color key="textColor" red="0.8901960784313725" green="0.45098039215686275" blue="0.14117647058823529" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | </subviews> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="20" id="wXD-0r-aP2"/> |
| | | </constraints> |
| | | </stackView> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="3WZ-Jf-leh"> |
| | | <rect key="frame" x="13" y="423" width="530" height="1"/> |
| | | <color key="backgroundColor" red="0.59215686274509804" green="0.59215686274509804" blue="0.59215686274509804" alpha="0.19" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="1" id="i9E-8g-CZz"/> |
| | | </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="fkp-fX-eUo"> |
| | | <rect key="frame" x="14" y="439" width="65.5" height="22"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="22" id="vw4-BH-Uhz"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" 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> |
| | | <wkWebView contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ZOY-ws-sjP"> |
| | | <rect key="frame" x="14" y="471" width="528" height="200"/> |
| | | <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="200" id="xMb-sR-Ext"/> |
| | | </constraints> |
| | | <wkWebViewConfiguration key="configuration"> |
| | | <audiovisualMediaTypes key="mediaTypesRequiringUserActionForPlayback" none="YES"/> |
| | | <wkPreferences key="preferences"/> |
| | | </wkWebViewConfiguration> |
| | | </wkWebView> |
| | | </subviews> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstItem="fkp-fX-eUo" firstAttribute="top" secondItem="3WZ-Jf-leh" secondAttribute="bottom" constant="15" id="1lu-mH-O3t"/> |
| | | <constraint firstItem="HQ8-qZ-zeA" firstAttribute="leading" secondItem="3V0-GL-Fmn" secondAttribute="leading" id="2L8-TY-eC1"/> |
| | | <constraint firstAttribute="trailing" secondItem="SHM-HW-3QJ" secondAttribute="trailing" constant="14" id="3fT-Df-Icu"/> |
| | | <constraint firstItem="ZOY-ws-sjP" firstAttribute="top" secondItem="fkp-fX-eUo" secondAttribute="bottom" constant="10" id="4Sb-GV-SMH"/> |
| | | <constraint firstItem="fkp-fX-eUo" firstAttribute="leading" secondItem="3V0-GL-Fmn" secondAttribute="leading" constant="14" id="CGr-W8-bYc"/> |
| | | <constraint firstItem="LtS-Mg-aeT" firstAttribute="centerY" secondItem="yrU-ab-vv9" secondAttribute="centerY" id="Eqy-fC-VXN"/> |
| | | <constraint firstItem="SHM-HW-3QJ" firstAttribute="leading" secondItem="3V0-GL-Fmn" secondAttribute="leading" constant="14" id="IcX-sV-UsY"/> |
| | | <constraint firstAttribute="trailing" secondItem="PgE-zX-EIu" secondAttribute="trailing" constant="14" id="KOH-43-2e0"/> |
| | | <constraint firstItem="3WZ-Jf-leh" firstAttribute="top" secondItem="SHM-HW-3QJ" secondAttribute="bottom" constant="15" id="TZb-uR-n12"/> |
| | | <constraint firstItem="yrU-ab-vv9" firstAttribute="leading" secondItem="3V0-GL-Fmn" secondAttribute="leading" constant="14" id="bvf-qv-PXf"/> |
| | | <constraint firstItem="LtS-Mg-aeT" firstAttribute="leading" secondItem="yrU-ab-vv9" secondAttribute="trailing" id="ce9-HT-eYR"/> |
| | | <constraint firstItem="yrU-ab-vv9" firstAttribute="top" secondItem="HQ8-qZ-zeA" secondAttribute="bottom" constant="10" id="fcu-Lq-OG7"/> |
| | | <constraint firstAttribute="trailing" secondItem="3WZ-Jf-leh" secondAttribute="trailing" constant="13" id="gDs-iU-l4D"/> |
| | | <constraint firstItem="HQ8-qZ-zeA" firstAttribute="top" secondItem="3V0-GL-Fmn" secondAttribute="top" id="gge-7H-yMR"/> |
| | | <constraint firstItem="ZOY-ws-sjP" firstAttribute="leading" secondItem="3V0-GL-Fmn" secondAttribute="leading" constant="14" id="k11-lO-F1N"/> |
| | | <constraint firstItem="SHM-HW-3QJ" firstAttribute="top" secondItem="PgE-zX-EIu" secondAttribute="bottom" constant="7" id="kjs-SE-QJz"/> |
| | | <constraint firstItem="3WZ-Jf-leh" firstAttribute="leading" secondItem="3V0-GL-Fmn" secondAttribute="leading" constant="13" id="msq-Yj-Hkl"/> |
| | | <constraint firstItem="PgE-zX-EIu" firstAttribute="top" secondItem="yrU-ab-vv9" secondAttribute="bottom" constant="7" id="tro-c3-NxF"/> |
| | | <constraint firstItem="PgE-zX-EIu" firstAttribute="leading" secondItem="3V0-GL-Fmn" secondAttribute="leading" constant="14" id="upN-6F-Xy0"/> |
| | | <constraint firstAttribute="bottom" secondItem="ZOY-ws-sjP" secondAttribute="bottom" constant="10" id="x2O-1I-fif"/> |
| | | <constraint firstAttribute="trailing" secondItem="HQ8-qZ-zeA" secondAttribute="trailing" id="xc1-2D-IN1"/> |
| | | <constraint firstAttribute="trailing" secondItem="ZOY-ws-sjP" secondAttribute="trailing" constant="14" id="zdu-6P-uIG"/> |
| | | </constraints> |
| | | </view> |
| | | </subviews> |
| | | <constraints> |
| | | <constraint firstItem="3V0-GL-Fmn" firstAttribute="top" secondItem="loc-rm-BZe" secondAttribute="top" id="5Wq-mT-Rso"/> |
| | | <constraint firstItem="3V0-GL-Fmn" firstAttribute="centerX" secondItem="loc-rm-BZe" secondAttribute="centerX" id="Kll-DS-2YM"/> |
| | | <constraint firstAttribute="trailing" secondItem="3V0-GL-Fmn" secondAttribute="trailing" id="Ptl-oU-1l1"/> |
| | | <constraint firstAttribute="bottom" secondItem="3V0-GL-Fmn" secondAttribute="bottom" id="jiI-WM-Att"/> |
| | | <constraint firstItem="3V0-GL-Fmn" firstAttribute="leading" secondItem="loc-rm-BZe" secondAttribute="leading" id="rIK-fX-4Ue"/> |
| | | </constraints> |
| | | </scrollView> |
| | | </subviews> |
| | | <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="loc-rm-BZe" secondAttribute="trailing" constant="234" id="Bvr-V9-9Vy"/> |
| | | <constraint firstItem="mp9-Bg-Kez" firstAttribute="top" secondItem="loc-rm-BZe" secondAttribute="bottom" id="ERX-Wt-77X"/> |
| | | <constraint firstItem="mp9-Bg-Kez" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="HzL-M1-sYN"/> |
| | | <constraint firstAttribute="bottom" secondItem="mp9-Bg-Kez" secondAttribute="bottom" id="NJ0-yE-1Uk"/> |
| | | <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="mp9-Bg-Kez" secondAttribute="trailing" id="fSg-6D-BUS"/> |
| | | <constraint firstItem="loc-rm-BZe" firstAttribute="top" secondItem="fnl-2z-Ty3" secondAttribute="top" id="m3s-nM-NF5"/> |
| | | <constraint firstItem="loc-rm-BZe" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="234" id="yge-pA-Gn4"/> |
| | | </constraints> |
| | | <point key="canvasLocation" x="47.4609375" y="20.644216691068813"/> |
| | | </view> |
| | | </objects> |
| | | <resources> |
| | | <systemColor name="systemBackgroundColor"> |
| | | <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
| | | </systemColor> |
| | | <systemColor name="systemGray5Color"> |
| | | <color red="0.89803921568627454" green="0.89803921568627454" blue="0.91764705882352937" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | </systemColor> |
| | | </resources> |
| | | </document> |
New file |
| | |
| | | // |
| | | // MarketExchangeVC.swift |
| | | // DolphinEnglishLearnManager |
| | | // |
| | | // Created by 无故事王国 on 2024/5/21. |
| | | // |
| | | |
| | | import UIKit |
| | | import RxRelay |
| | | |
| | | class MarketViewModel{ |
| | | var number = BehaviorRelay<Int>(value:1) |
| | | } |
| | | |
| | | class MarketExchangeVC: BaseVC { |
| | | @IBOutlet weak var scrollView: UIScrollView! |
| | | @IBOutlet weak var view_footer: UIView! |
| | | @IBOutlet weak var view_container: UIView! |
| | | @IBOutlet weak var field_number: UITextField! |
| | | @IBOutlet weak var cons_footerHei: NSLayoutConstraint! |
| | | |
| | | private var viewModel = MarketViewModel() |
| | | |
| | | override func viewDidLoad() { |
| | | super.viewDidLoad() |
| | | } |
| | | |
| | | override func setUI() { |
| | | super.setUI() |
| | | view_container.jq_cornerRadius = 8 |
| | | scrollView.contentInset = UIEdgeInsets(top: 26, left: 0, bottom: 31, right: 0) |
| | | cons_footerHei.constant = 54 + UIDevice.jq_safeEdges.bottom |
| | | } |
| | | |
| | | override func setRx() { |
| | | viewModel.number.subscribe(onNext: {[weak self] num in |
| | | self?.field_number.text = "\(num)" |
| | | }).disposed(by: disposeBag) |
| | | } |
| | | |
| | | |
| | | @IBAction func addNumAction(_ sender: UIButton) { |
| | | let num = viewModel.number.value + 1 |
| | | viewModel.number.accept(num) |
| | | } |
| | | |
| | | @IBAction func reduceAction(_ sender: UIButton) { |
| | | let num = max(1,viewModel.number.value - 1) |
| | | viewModel.number.accept(num) |
| | | } |
| | | |
| | | @IBAction func exchangeAction(_ sender: UIButton) { |
| | | CommonAlertView.show(content: "确认兑换当前商品吗?") { |
| | | let vc = ExchangeResultVC(resultType: .success) |
| | | vc.title = "商品详情" |
| | | self.push(vc: vc) |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | <?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="ipad12_9" orientation="portrait" layout="fullscreen" appearance="light"/> |
| | | <dependencies> |
| | | <deployment identifier="iOS"/> |
| | | <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22684"/> |
| | | <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="MarketExchangeVC" customModule="DolphinEnglishLearnStudent" customModuleProvider="target"> |
| | | <connections> |
| | | <outlet property="cons_footerHei" destination="71z-Eh-Ya8" id="V0f-Rh-ggi"/> |
| | | <outlet property="field_number" destination="1nG-XY-fwB" id="xye-yR-VBc"/> |
| | | <outlet property="scrollView" destination="hFz-gY-osL" id="xXh-5z-6XE"/> |
| | | <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/> |
| | | <outlet property="view_container" destination="4wG-oJ-eBG" id="8U4-Q9-4Ap"/> |
| | | <outlet property="view_footer" destination="d3o-Ba-FIK" id="EMz-WT-ojz"/> |
| | | </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="1024" height="1366"/> |
| | | <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> |
| | | <subviews> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="d3o-Ba-FIK"> |
| | | <rect key="frame" x="234" y="1312" width="556" height="54"/> |
| | | <subviews> |
| | | <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="N4Y-Qi-AD2"> |
| | | <rect key="frame" x="432" y="7.5" width="109" height="39"/> |
| | | <color key="backgroundColor" red="0.25490196079999999" green="0.63529411759999999" blue="0.92156862750000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <constraints> |
| | | <constraint firstAttribute="width" secondItem="N4Y-Qi-AD2" secondAttribute="height" multiplier="1:0.36" id="IKR-3V-mAJ"/> |
| | | <constraint firstAttribute="width" constant="109" id="zt9-Ks-KMl"/> |
| | | </constraints> |
| | | <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="立即兑换"/> |
| | | <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="exchangeAction:" destination="-1" eventType="touchUpInside" id="1qq-90-R3m"/> |
| | | </connections> |
| | | </button> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="积分" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="REn-PL-iJ3"> |
| | | <rect key="frame" x="380" y="16.5" width="37" height="21.5"/> |
| | | <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="18"/> |
| | | <color key="textColor" red="0.96862745100000003" green="0.27450980390000002" blue="0.1764705882" 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="Nka-ZK-eeP"> |
| | | <rect key="frame" x="370" y="16" width="10" height="22"/> |
| | | <fontDescription key="fontDescription" name="Impact" family="Impact" pointSize="18"/> |
| | | <color key="textColor" red="0.96862745100000003" green="0.27450980390000002" blue="0.1764705882" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | </subviews> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="54" id="71z-Eh-Ya8"/> |
| | | <constraint firstItem="REn-PL-iJ3" firstAttribute="leading" secondItem="Nka-ZK-eeP" secondAttribute="trailing" id="9KQ-lI-kf1"/> |
| | | <constraint firstItem="N4Y-Qi-AD2" firstAttribute="centerY" secondItem="d3o-Ba-FIK" secondAttribute="centerY" id="YnF-Od-MLx"/> |
| | | <constraint firstItem="REn-PL-iJ3" firstAttribute="centerY" secondItem="Nka-ZK-eeP" secondAttribute="centerY" id="ecU-c8-3VB"/> |
| | | <constraint firstItem="REn-PL-iJ3" firstAttribute="centerY" secondItem="d3o-Ba-FIK" secondAttribute="centerY" id="fBc-bE-3Ub"/> |
| | | <constraint firstAttribute="trailing" secondItem="N4Y-Qi-AD2" secondAttribute="trailing" constant="15" id="mSg-9x-1dh"/> |
| | | <constraint firstItem="N4Y-Qi-AD2" firstAttribute="leading" secondItem="REn-PL-iJ3" secondAttribute="trailing" constant="15" id="ydl-uL-nuJ"/> |
| | | </constraints> |
| | | </view> |
| | | <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="hFz-gY-osL"> |
| | | <rect key="frame" x="234" y="20" width="556" height="1292"/> |
| | | <subviews> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="4wG-oJ-eBG"> |
| | | <rect key="frame" x="0.0" y="0.0" width="556" height="600"/> |
| | | <subviews> |
| | | <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="HCf-Ym-o1O"> |
| | | <rect key="frame" x="0.0" y="0.0" width="556" height="600"/> |
| | | <subviews> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="sfn-3Q-b7V"> |
| | | <rect key="frame" x="0.0" y="0.0" width="556" height="90"/> |
| | | <subviews> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="5h7-8X-cXI"> |
| | | <rect key="frame" x="0.0" y="87" width="556" height="3"/> |
| | | <color key="backgroundColor" red="0.8901960784313725" green="0.97254901960784312" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="3" id="7Bs-Y1-RKJ"/> |
| | | </constraints> |
| | | </view> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ph9-Ra-CxP"> |
| | | <rect key="frame" x="14" y="28" width="492" height="20"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="20" id="cgw-w2-dsN"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> |
| | | <color key="textColor" red="0.011764705882352941" green="0.015686274509803921" blue="0.019607843137254902" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_more_gray" translatesAutoresizingMaskIntoConstraints="NO" id="jKh-8m-ogE"> |
| | | <rect key="frame" x="536" y="40" width="6" height="10"/> |
| | | </imageView> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Hns-QV-baw"> |
| | | <rect key="frame" x="14" y="53" width="492" height="14.5"/> |
| | | <fontDescription key="fontDescription" type="system" pointSize="12"/> |
| | | <nil key="textColor"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | </subviews> |
| | | <constraints> |
| | | <constraint firstItem="jKh-8m-ogE" firstAttribute="centerY" secondItem="sfn-3Q-b7V" secondAttribute="centerY" id="AIT-eX-UYg"/> |
| | | <constraint firstAttribute="trailing" secondItem="5h7-8X-cXI" secondAttribute="trailing" id="Byx-At-ZHn"/> |
| | | <constraint firstAttribute="height" constant="90" id="Gtx-jC-H0V"/> |
| | | <constraint firstItem="ph9-Ra-CxP" firstAttribute="leading" secondItem="sfn-3Q-b7V" secondAttribute="leading" constant="14" id="L6f-uW-gIs"/> |
| | | <constraint firstItem="ph9-Ra-CxP" firstAttribute="top" secondItem="sfn-3Q-b7V" secondAttribute="top" constant="28" id="Pzt-wT-2Uz"/> |
| | | <constraint firstAttribute="bottom" secondItem="5h7-8X-cXI" secondAttribute="bottom" id="dS7-Gn-QOD"/> |
| | | <constraint firstAttribute="trailing" secondItem="jKh-8m-ogE" secondAttribute="trailing" constant="14" id="fpD-Vw-mh2"/> |
| | | <constraint firstItem="5h7-8X-cXI" firstAttribute="leading" secondItem="sfn-3Q-b7V" secondAttribute="leading" id="g86-ED-gAW"/> |
| | | <constraint firstItem="Hns-QV-baw" firstAttribute="trailing" secondItem="ph9-Ra-CxP" secondAttribute="trailing" id="hFX-F5-1NJ"/> |
| | | <constraint firstItem="Hns-QV-baw" firstAttribute="leading" secondItem="ph9-Ra-CxP" secondAttribute="leading" id="l9W-26-0ij"/> |
| | | <constraint firstItem="Hns-QV-baw" firstAttribute="top" secondItem="ph9-Ra-CxP" secondAttribute="bottom" constant="5" id="mta-MA-VXe"/> |
| | | <constraint firstAttribute="trailing" secondItem="ph9-Ra-CxP" secondAttribute="trailing" constant="50" id="oe6-gk-huK"/> |
| | | </constraints> |
| | | </view> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Pcy-2J-bsd"> |
| | | <rect key="frame" x="0.0" y="90" width="556" height="366"/> |
| | | <subviews> |
| | | <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="QM5-dP-No2"> |
| | | <rect key="frame" x="14" y="15" width="170" height="170"/> |
| | | <constraints> |
| | | <constraint firstAttribute="width" constant="170" id="gTg-aH-0dy"/> |
| | | <constraint firstAttribute="width" secondItem="QM5-dP-No2" secondAttribute="height" multiplier="1:1" id="xVR-OV-Dag"/> |
| | | </constraints> |
| | | </imageView> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="SZF-J0-byW"> |
| | | <rect key="frame" x="197" y="15" width="346" height="19.5"/> |
| | | <fontDescription key="fontDescription" type="system" pointSize="16"/> |
| | | <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="EeU-Wx-jBI"> |
| | | <rect key="frame" x="14" y="203" width="25" height="17"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="17" id="wBn-J0-yYG"/> |
| | | </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="h4B-Ju-L2P"> |
| | | <rect key="frame" x="499" y="165.5" width="33" height="19.5"/> |
| | | <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="16"/> |
| | | <color key="textColor" red="0.96862745100000003" green="0.27450980390000002" blue="0.1764705882" 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="Zy6-3Q-Lgi"> |
| | | <rect key="frame" x="490" y="165.5" width="9" height="20"/> |
| | | <fontDescription key="fontDescription" name="Impact" family="Impact" pointSize="16"/> |
| | | <color key="textColor" red="0.96862745100000003" green="0.27450980390000002" blue="0.1764705882" 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="MS7-3T-DWG"> |
| | | <rect key="frame" x="14" y="237" width="25" height="17"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="17" id="d8J-ex-Cso"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" pointSize="12"/> |
| | | <nil key="textColor"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="5zn-TC-ZAu"> |
| | | <rect key="frame" x="14" y="266" width="528" height="85"/> |
| | | <subviews> |
| | | <textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" textAlignment="natural" translatesAutoresizingMaskIntoConstraints="NO" id="Rq2-vc-D0Q" customClass="QMUITextView"> |
| | | <rect key="frame" x="10" y="13" width="508" height="67"/> |
| | | <color key="textColor" systemColor="labelColor"/> |
| | | <fontDescription key="fontDescription" type="system" pointSize="12"/> |
| | | <textInputTraits key="textInputTraits" autocapitalizationType="sentences"/> |
| | | <userDefinedRuntimeAttributes> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="maximumTextLength"> |
| | | <integer key="value" value="200"/> |
| | | </userDefinedRuntimeAttribute> |
| | | <userDefinedRuntimeAttribute type="string" keyPath="placeholder" value="请输入不超过200字的备注"/> |
| | | <userDefinedRuntimeAttribute type="color" keyPath="placeholderColor"> |
| | | <color key="value" red="0.4823529411764706" green="0.4823529411764706" blue="0.50588235294117645" alpha="0.44" colorSpace="custom" customColorSpace="sRGB"/> |
| | | </userDefinedRuntimeAttribute> |
| | | </userDefinedRuntimeAttributes> |
| | | </textView> |
| | | </subviews> |
| | | <color key="backgroundColor" red="0.96078431372549022" green="0.96470588235294119" blue="0.98039215686274506" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <constraints> |
| | | <constraint firstAttribute="bottom" secondItem="Rq2-vc-D0Q" secondAttribute="bottom" constant="5" id="0Cw-7y-UU8"/> |
| | | <constraint firstAttribute="height" constant="85" id="cfd-jh-BOD"/> |
| | | <constraint firstItem="Rq2-vc-D0Q" firstAttribute="top" secondItem="5zn-TC-ZAu" secondAttribute="top" constant="13" id="dzq-Zq-Nn7"/> |
| | | <constraint firstItem="Rq2-vc-D0Q" firstAttribute="leading" secondItem="5zn-TC-ZAu" secondAttribute="leading" constant="10" id="o28-6B-ks8"/> |
| | | <constraint firstAttribute="trailing" secondItem="Rq2-vc-D0Q" secondAttribute="trailing" constant="10" id="psV-5N-czS"/> |
| | | </constraints> |
| | | <userDefinedRuntimeAttributes> |
| | | <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> |
| | | <real key="value" value="2"/> |
| | | </userDefinedRuntimeAttribute> |
| | | </userDefinedRuntimeAttributes> |
| | | </view> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="xEk-ac-udO"> |
| | | <rect key="frame" x="12" y="365" width="530" height="1"/> |
| | | <color key="backgroundColor" red="0.59215686274509804" green="0.59215686274509804" blue="0.59215686274509804" alpha="0.19" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="1" id="Sqh-1l-0AK"/> |
| | | </constraints> |
| | | </view> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Y1j-mH-7vJ"> |
| | | <rect key="frame" x="472" y="207" width="42" height="22"/> |
| | | <subviews> |
| | | <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" text="1" textAlignment="center" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="1nG-XY-fwB"> |
| | | <rect key="frame" x="0.0" y="0.0" width="42" height="22"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/> |
| | | <textInputTraits key="textInputTraits" keyboardType="numberPad"/> |
| | | </textField> |
| | | </subviews> |
| | | <color key="backgroundColor" red="0.94901960784313721" green="0.94901960784313721" blue="0.94901960784313721" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <constraints> |
| | | <constraint firstItem="1nG-XY-fwB" firstAttribute="leading" secondItem="Y1j-mH-7vJ" secondAttribute="leading" id="9b3-RM-v4h"/> |
| | | <constraint firstAttribute="height" constant="22" id="R3q-Nk-4iS"/> |
| | | <constraint firstAttribute="bottom" secondItem="1nG-XY-fwB" secondAttribute="bottom" id="Xx9-sr-dwe"/> |
| | | <constraint firstAttribute="width" constant="42" id="oWK-ot-4U7"/> |
| | | <constraint firstItem="1nG-XY-fwB" firstAttribute="top" secondItem="Y1j-mH-7vJ" secondAttribute="top" id="tkb-yS-R2g"/> |
| | | <constraint firstAttribute="trailing" secondItem="1nG-XY-fwB" secondAttribute="trailing" id="zsH-Qp-Uz9"/> |
| | | </constraints> |
| | | </view> |
| | | <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="wqg-IO-Jti"> |
| | | <rect key="frame" x="514" y="207" width="32" height="22"/> |
| | | <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> |
| | | <state key="normal" image="btn_add"/> |
| | | <state key="disabled" image="btn_add_un"/> |
| | | <connections> |
| | | <action selector="addNumAction:" destination="-1" eventType="touchUpInside" id="N9f-5O-JZz"/> |
| | | </connections> |
| | | </button> |
| | | <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="H9G-ck-ezM"> |
| | | <rect key="frame" x="702" y="206" width="32" height="22"/> |
| | | <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> |
| | | <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> |
| | | <state key="normal" image="btn_reduce"/> |
| | | <state key="disabled" image="btn_reduce_un"/> |
| | | <connections> |
| | | <action selector="reduceAction:" destination="-1" eventType="touchUpInside" id="kjW-Nx-vAZ"/> |
| | | </connections> |
| | | </button> |
| | | </subviews> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstAttribute="trailing" secondItem="SZF-J0-byW" secondAttribute="trailing" constant="13" id="2bc-jD-0jQ"/> |
| | | <constraint firstItem="QM5-dP-No2" firstAttribute="top" secondItem="Pcy-2J-bsd" secondAttribute="top" constant="15" id="3oV-je-E0W"/> |
| | | <constraint firstItem="SZF-J0-byW" firstAttribute="leading" secondItem="QM5-dP-No2" secondAttribute="trailing" constant="13" id="4nD-DW-K4G"/> |
| | | <constraint firstItem="wqg-IO-Jti" firstAttribute="leading" secondItem="Y1j-mH-7vJ" secondAttribute="trailing" id="96J-NH-U7L"/> |
| | | <constraint firstItem="MS7-3T-DWG" firstAttribute="top" secondItem="EeU-Wx-jBI" secondAttribute="bottom" constant="17" id="APQ-K4-sOj"/> |
| | | <constraint firstAttribute="trailing" secondItem="xEk-ac-udO" secondAttribute="trailing" constant="14" id="AaJ-eg-xRI"/> |
| | | <constraint firstAttribute="trailing" secondItem="Y1j-mH-7vJ" secondAttribute="trailing" constant="42" id="Cnz-nI-ucx"/> |
| | | <constraint firstItem="xEk-ac-udO" firstAttribute="leading" secondItem="Pcy-2J-bsd" secondAttribute="leading" constant="12" id="DSj-62-NMj"/> |
| | | <constraint firstItem="MS7-3T-DWG" firstAttribute="leading" secondItem="EeU-Wx-jBI" secondAttribute="leading" id="EM3-jV-CSR"/> |
| | | <constraint firstAttribute="trailing" secondItem="wqg-IO-Jti" secondAttribute="trailing" constant="10" id="Goo-fu-khj"/> |
| | | <constraint firstAttribute="trailing" secondItem="h4B-Ju-L2P" secondAttribute="trailing" constant="24" id="IR2-x4-cFb"/> |
| | | <constraint firstAttribute="bottom" secondItem="xEk-ac-udO" secondAttribute="bottom" id="KBt-SR-4KH"/> |
| | | <constraint firstItem="wqg-IO-Jti" firstAttribute="centerY" secondItem="Y1j-mH-7vJ" secondAttribute="centerY" id="KJ6-H3-YR4"/> |
| | | <constraint firstItem="SZF-J0-byW" firstAttribute="top" secondItem="QM5-dP-No2" secondAttribute="top" id="N7D-wc-hs4"/> |
| | | <constraint firstItem="Y1j-mH-7vJ" firstAttribute="top" secondItem="h4B-Ju-L2P" secondAttribute="bottom" constant="22" id="RcG-f4-yEi"/> |
| | | <constraint firstItem="h4B-Ju-L2P" firstAttribute="centerY" secondItem="Zy6-3Q-Lgi" secondAttribute="centerY" id="ScA-Kv-FAY"/> |
| | | <constraint firstItem="xEk-ac-udO" firstAttribute="top" secondItem="5zn-TC-ZAu" secondAttribute="bottom" constant="14" id="TRf-HU-Y0g"/> |
| | | <constraint firstAttribute="trailing" secondItem="5zn-TC-ZAu" secondAttribute="trailing" constant="14" id="XsR-S7-5se"/> |
| | | <constraint firstItem="h4B-Ju-L2P" firstAttribute="leading" secondItem="Zy6-3Q-Lgi" secondAttribute="trailing" id="XyT-7a-Pzk"/> |
| | | <constraint firstItem="5zn-TC-ZAu" firstAttribute="top" secondItem="MS7-3T-DWG" secondAttribute="bottom" constant="12" id="Zb6-DZ-qrC"/> |
| | | <constraint firstItem="5zn-TC-ZAu" firstAttribute="leading" secondItem="Pcy-2J-bsd" secondAttribute="leading" constant="14" id="gfc-ka-HC8"/> |
| | | <constraint firstItem="EeU-Wx-jBI" firstAttribute="top" secondItem="QM5-dP-No2" secondAttribute="bottom" constant="18" id="kWP-Z3-Uve"/> |
| | | <constraint firstItem="QM5-dP-No2" firstAttribute="leading" secondItem="Pcy-2J-bsd" secondAttribute="leading" constant="14" id="lJI-a1-yyL"/> |
| | | <constraint firstItem="EeU-Wx-jBI" firstAttribute="leading" secondItem="Pcy-2J-bsd" secondAttribute="leading" constant="14" id="pIg-OO-tpF"/> |
| | | <constraint firstItem="h4B-Ju-L2P" firstAttribute="bottom" secondItem="QM5-dP-No2" secondAttribute="bottom" id="z2m-b7-4WH"/> |
| | | </constraints> |
| | | </view> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="wtR-SK-T7a"> |
| | | <rect key="frame" x="0.0" y="456" width="556" height="144"/> |
| | | <subviews> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="订单明细" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Iiz-eZ-hKI"> |
| | | <rect key="frame" x="14" y="14" width="49.5" height="17"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="17" id="BUE-9o-zpr"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/> |
| | | <nil key="textColor"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" distribution="fillEqually" spacing="12" translatesAutoresizingMaskIntoConstraints="NO" id="GgK-VE-bt3"> |
| | | <rect key="frame" x="14" y="43" width="528" height="78"/> |
| | | <subviews> |
| | | <stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" translatesAutoresizingMaskIntoConstraints="NO" id="0IF-ep-QG5"> |
| | | <rect key="frame" x="0.0" y="0.0" width="528" height="18"/> |
| | | <subviews> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="订单编号" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="I5K-7H-2kX"> |
| | | <rect key="frame" x="0.0" y="0.0" width="264" height="18"/> |
| | | <fontDescription key="fontDescription" type="system" pointSize="12"/> |
| | | <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.63" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="BaU-rt-9wh"> |
| | | <rect key="frame" x="264" y="0.0" width="264" height="18"/> |
| | | <fontDescription key="fontDescription" type="system" pointSize="12"/> |
| | | <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | </subviews> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="18" id="jue-fW-Woh"/> |
| | | </constraints> |
| | | </stackView> |
| | | <stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" translatesAutoresizingMaskIntoConstraints="NO" id="aXO-Lw-AE6"> |
| | | <rect key="frame" x="0.0" y="30" width="528" height="18"/> |
| | | <subviews> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="商品数量" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="G58-Z2-Ufd"> |
| | | <rect key="frame" x="0.0" y="0.0" width="264" height="18"/> |
| | | <fontDescription key="fontDescription" type="system" pointSize="12"/> |
| | | <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.63" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="p4X-ju-9r7"> |
| | | <rect key="frame" x="264" y="0.0" width="264" height="18"/> |
| | | <fontDescription key="fontDescription" type="system" pointSize="12"/> |
| | | <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | </subviews> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="18" id="z3i-7e-ve5"/> |
| | | </constraints> |
| | | </stackView> |
| | | <stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" translatesAutoresizingMaskIntoConstraints="NO" id="3vf-Jc-xSQ"> |
| | | <rect key="frame" x="0.0" y="60" width="528" height="18"/> |
| | | <subviews> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="所需积分" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ubT-g7-SAE"> |
| | | <rect key="frame" x="0.0" y="0.0" width="264" height="18"/> |
| | | <fontDescription key="fontDescription" type="system" pointSize="12"/> |
| | | <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.63" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="vFF-je-HEk"> |
| | | <rect key="frame" x="264" y="0.0" width="264" height="18"/> |
| | | <fontDescription key="fontDescription" type="system" pointSize="12"/> |
| | | <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | </subviews> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="18" id="VMl-Xk-7UY"/> |
| | | </constraints> |
| | | </stackView> |
| | | </subviews> |
| | | </stackView> |
| | | </subviews> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstAttribute="trailing" secondItem="GgK-VE-bt3" secondAttribute="trailing" constant="14" id="BDH-9D-eCw"/> |
| | | <constraint firstItem="GgK-VE-bt3" firstAttribute="top" secondItem="Iiz-eZ-hKI" secondAttribute="bottom" constant="12" id="Eo3-Oh-a3Z"/> |
| | | <constraint firstAttribute="bottom" secondItem="GgK-VE-bt3" secondAttribute="bottom" constant="23" id="JHg-Uk-oLp"/> |
| | | <constraint firstItem="GgK-VE-bt3" firstAttribute="leading" secondItem="wtR-SK-T7a" secondAttribute="leading" constant="14" id="Yqm-RF-aCO"/> |
| | | <constraint firstItem="Iiz-eZ-hKI" firstAttribute="top" secondItem="wtR-SK-T7a" secondAttribute="top" constant="14" id="iU6-By-9gQ"/> |
| | | <constraint firstItem="Iiz-eZ-hKI" firstAttribute="leading" secondItem="wtR-SK-T7a" secondAttribute="leading" constant="14" id="nOZ-ZO-2M3"/> |
| | | </constraints> |
| | | </view> |
| | | </subviews> |
| | | </stackView> |
| | | </subviews> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstItem="HCf-Ym-o1O" firstAttribute="top" secondItem="4wG-oJ-eBG" secondAttribute="top" id="DCz-af-SfU"/> |
| | | <constraint firstItem="HCf-Ym-o1O" firstAttribute="leading" secondItem="4wG-oJ-eBG" secondAttribute="leading" id="O0W-Vj-MQu"/> |
| | | <constraint firstAttribute="trailing" secondItem="HCf-Ym-o1O" secondAttribute="trailing" id="kLn-ey-BR3"/> |
| | | <constraint firstAttribute="bottom" secondItem="HCf-Ym-o1O" secondAttribute="bottom" id="p31-FG-x1V"/> |
| | | </constraints> |
| | | </view> |
| | | </subviews> |
| | | <constraints> |
| | | <constraint firstItem="4wG-oJ-eBG" firstAttribute="centerX" secondItem="hFz-gY-osL" secondAttribute="centerX" id="Ekr-Mf-mRx"/> |
| | | <constraint firstItem="4wG-oJ-eBG" firstAttribute="top" secondItem="hFz-gY-osL" secondAttribute="top" id="GBX-fU-1sC"/> |
| | | <constraint firstAttribute="trailing" secondItem="4wG-oJ-eBG" secondAttribute="trailing" id="OKc-BC-Gr0"/> |
| | | <constraint firstAttribute="bottom" secondItem="4wG-oJ-eBG" secondAttribute="bottom" id="WOf-kE-3hm"/> |
| | | <constraint firstItem="4wG-oJ-eBG" firstAttribute="leading" secondItem="hFz-gY-osL" secondAttribute="leading" id="e0X-ZE-osE"/> |
| | | </constraints> |
| | | </scrollView> |
| | | </subviews> |
| | | <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstItem="hFz-gY-osL" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="234" id="3WH-fe-XhR"/> |
| | | <constraint firstItem="d3o-Ba-FIK" firstAttribute="leading" secondItem="hFz-gY-osL" secondAttribute="leading" id="6GX-JT-Etr"/> |
| | | <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="hFz-gY-osL" secondAttribute="trailing" constant="234" id="RBz-Ca-CDY"/> |
| | | <constraint firstItem="d3o-Ba-FIK" firstAttribute="top" secondItem="hFz-gY-osL" secondAttribute="bottom" id="VbC-Vh-fBI"/> |
| | | <constraint firstAttribute="bottom" secondItem="d3o-Ba-FIK" secondAttribute="bottom" id="bIt-jr-ybB"/> |
| | | <constraint firstItem="hFz-gY-osL" firstAttribute="top" secondItem="fnl-2z-Ty3" secondAttribute="top" id="hoD-uS-Uua"/> |
| | | <constraint firstItem="d3o-Ba-FIK" firstAttribute="trailing" secondItem="hFz-gY-osL" secondAttribute="trailing" id="iPc-7p-fmI"/> |
| | | </constraints> |
| | | <point key="canvasLocation" x="97.8515625" y="20.644216691068813"/> |
| | | </view> |
| | | </objects> |
| | | <resources> |
| | | <image name="btn_add" width="10" height="10"/> |
| | | <image name="btn_add_un" width="10" height="10"/> |
| | | <image name="btn_reduce" width="10" height="2"/> |
| | | <image name="btn_reduce_un" width="10" height="2"/> |
| | | <image name="icon_more_gray" width="6" height="10"/> |
| | | <systemColor name="labelColor"> |
| | | <color white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
| | | </systemColor> |
| | | <systemColor name="systemBackgroundColor"> |
| | | <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
| | | </systemColor> |
| | | </resources> |
| | | </document> |
New file |
| | |
| | | // |
| | | // MeVC.swift |
| | | // DolphinEnglishLearnStudent |
| | | // |
| | | // Created by 无故事王国 on 2024/5/22. |
| | | // |
| | | |
| | | import UIKit |
| | | import QMUIKit |
| | | |
| | | class MeVC: BaseVC { |
| | | @IBOutlet weak var btn_address: QMUIButton! |
| | | @IBOutlet weak var btn_coinRecord: QMUIButton! |
| | | @IBOutlet weak var btn_exchangeRecord: QMUIButton! |
| | | @IBOutlet weak var btn_share: QMUIButton! |
| | | @IBOutlet weak var btn_etudyRecord: QMUIButton! |
| | | |
| | | override func viewDidLoad() { |
| | | super.viewDidLoad() |
| | | |
| | | // Do any additional setup after loading the view. |
| | | } |
| | | |
| | | |
| | | override func setUI() { |
| | | super.setUI() |
| | | btn_address.spacingBetweenImageAndTitle = 11 |
| | | btn_coinRecord.spacingBetweenImageAndTitle = 11 |
| | | btn_exchangeRecord.spacingBetweenImageAndTitle = 11 |
| | | btn_share.spacingBetweenImageAndTitle = 11 |
| | | btn_etudyRecord.spacingBetweenImageAndTitle = 11 |
| | | |
| | | btn_address.imagePosition = .top |
| | | btn_coinRecord.imagePosition = .top |
| | | btn_exchangeRecord.imagePosition = .top |
| | | btn_share.imagePosition = .top |
| | | btn_etudyRecord.imagePosition = .top |
| | | |
| | | } |
| | | |
| | | /// 地址管理 |
| | | @IBAction func addressManageAction(_ sender: QMUIButton) { |
| | | let vc = AddressManageVC(type: .handle) |
| | | vc.title = "地址管理" |
| | | push(vc: vc) |
| | | } |
| | | |
| | | @IBAction func coinHistoryAction(_ sender: QMUIButton) { |
| | | let vc = CoinRecordHistoryVC() |
| | | vc.title = "积分明细" |
| | | push(vc: vc) |
| | | } |
| | | |
| | | @IBAction func exchangeHistoryAction(_ sender: QMUIButton) { |
| | | let vc = ExchangeRecordHistoryVC() |
| | | vc.title = "兑换记录" |
| | | push(vc: vc) |
| | | } |
| | | |
| | | @IBAction func studyRecord(_ sender: QMUIButton) { |
| | | let vc = StudyVC() |
| | | vc.title = "学习记录" |
| | | push(vc: vc) |
| | | } |
| | | |
| | | @IBAction func shareAction(_ sender: QMUIButton) { |
| | | |
| | | } |
| | | |
| | | @IBAction func quitAction(_ sender: UIButton) { |
| | | CommonAlertView.show(content: "确认退出当前账户吗?") { |
| | | |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | <?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="ipad10_9rounded" orientation="landscape" layout="fullscreen" appearance="light"/> |
| | | <dependencies> |
| | | <deployment identifier="iOS"/> |
| | | <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22684"/> |
| | | <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="MeVC" customModule="DolphinEnglishLearnStudent" customModuleProvider="target"> |
| | | <connections> |
| | | <outlet property="btn_address" destination="gcd-Sg-l2C" id="yXD-39-cKv"/> |
| | | <outlet property="btn_coinRecord" destination="mty-Gt-zOb" id="oj9-Zv-p4Z"/> |
| | | <outlet property="btn_etudyRecord" destination="0pk-gO-3Qh" id="SeS-bo-pn4"/> |
| | | <outlet property="btn_exchangeRecord" destination="uH5-eT-V9Z" id="8gd-zT-JND"/> |
| | | <outlet property="btn_share" destination="gtG-mF-MKi" id="ejw-y9-ugq"/> |
| | | <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="1180" height="820"/> |
| | | <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> |
| | | <subviews> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Ora-D0-c8V"> |
| | | <rect key="frame" x="156" y="43" width="868" height="131"/> |
| | | <subviews> |
| | | <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="qXF-FL-HEr"> |
| | | <rect key="frame" x="16" y="18.5" width="94" height="94"/> |
| | | <constraints> |
| | | <constraint firstAttribute="width" constant="94" id="amf-fS-Jue"/> |
| | | <constraint firstAttribute="height" constant="94" id="tT8-rb-MEe"/> |
| | | </constraints> |
| | | <userDefinedRuntimeAttributes> |
| | | <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> |
| | | <real key="value" value="47"/> |
| | | </userDefinedRuntimeAttribute> |
| | | </userDefinedRuntimeAttributes> |
| | | </imageView> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="D0d-O7-Pt2"> |
| | | <rect key="frame" x="128" y="40.5" width="46" height="21.5"/> |
| | | <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="18"/> |
| | | <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.78000000000000003" colorSpace="custom" customColorSpace="calibratedRGB"/> |
| | | <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="LJb-Ki-p3S"> |
| | | <rect key="frame" x="128" y="72" width="13.5" height="20"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="20" id="6Mf-TD-g30"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="14"/> |
| | | <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="calibratedRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | </subviews> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstItem="D0d-O7-Pt2" firstAttribute="leading" secondItem="qXF-FL-HEr" secondAttribute="trailing" constant="18" id="0RC-Ct-neE"/> |
| | | <constraint firstItem="LJb-Ki-p3S" firstAttribute="top" secondItem="D0d-O7-Pt2" secondAttribute="bottom" constant="10" id="ILj-gS-zIv"/> |
| | | <constraint firstItem="qXF-FL-HEr" firstAttribute="centerY" secondItem="Ora-D0-c8V" secondAttribute="centerY" id="OLa-Ch-3Ab"/> |
| | | <constraint firstItem="qXF-FL-HEr" firstAttribute="leading" secondItem="Ora-D0-c8V" secondAttribute="leading" constant="16" id="XVR-3Y-0ky"/> |
| | | <constraint firstItem="D0d-O7-Pt2" firstAttribute="top" secondItem="qXF-FL-HEr" secondAttribute="top" constant="22" id="t9P-Q3-DXe"/> |
| | | <constraint firstAttribute="height" constant="131" id="yW9-GD-apo"/> |
| | | <constraint firstItem="LJb-Ki-p3S" firstAttribute="leading" secondItem="D0d-O7-Pt2" secondAttribute="leading" id="yb5-Js-wff"/> |
| | | </constraints> |
| | | <userDefinedRuntimeAttributes> |
| | | <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> |
| | | <real key="value" value="8"/> |
| | | </userDefinedRuntimeAttribute> |
| | | </userDefinedRuntimeAttributes> |
| | | </view> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="e6a-MV-XUk"> |
| | | <rect key="frame" x="156" y="193" width="868" height="158"/> |
| | | <subviews> |
| | | <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" distribution="fillEqually" spacing="8" translatesAutoresizingMaskIntoConstraints="NO" id="eBA-xA-cf9"> |
| | | <rect key="frame" x="0.0" y="0.0" width="868" height="158"/> |
| | | <subviews> |
| | | <stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" translatesAutoresizingMaskIntoConstraints="NO" id="Uoo-e1-5Na"> |
| | | <rect key="frame" x="0.0" y="0.0" width="868" height="158"/> |
| | | <subviews> |
| | | <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="gcd-Sg-l2C" customClass="QMUIButton"> |
| | | <rect key="frame" x="0.0" y="0.0" width="173.5" height="158"/> |
| | | <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="地址管理" image="icon_address"> |
| | | <color key="titleColor" red="0.0" green="0.0" blue="0.0" alpha="0.75" colorSpace="custom" customColorSpace="sRGB"/> |
| | | </state> |
| | | <connections> |
| | | <action selector="addressManageAction:" destination="-1" eventType="touchUpInside" id="iZY-Wk-fdR"/> |
| | | </connections> |
| | | </button> |
| | | <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="mty-Gt-zOb" customClass="QMUIButton"> |
| | | <rect key="frame" x="173.5" y="0.0" width="173.5" height="158"/> |
| | | <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="积分明细" image="icon_coin"> |
| | | <color key="titleColor" red="0.0" green="0.0" blue="0.0" alpha="0.75" colorSpace="custom" customColorSpace="sRGB"/> |
| | | </state> |
| | | <connections> |
| | | <action selector="coinHistoryAction:" destination="-1" eventType="touchUpInside" id="Phd-DG-dl8"/> |
| | | </connections> |
| | | </button> |
| | | <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="uH5-eT-V9Z" customClass="QMUIButton"> |
| | | <rect key="frame" x="347" y="0.0" width="174" height="158"/> |
| | | <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="兑换记录" image="icon_record"> |
| | | <color key="titleColor" red="0.0" green="0.0" blue="0.0" alpha="0.75" colorSpace="custom" customColorSpace="sRGB"/> |
| | | </state> |
| | | <connections> |
| | | <action selector="exchangeHistoryAction:" destination="-1" eventType="touchUpInside" id="FI6-zw-awE"/> |
| | | </connections> |
| | | </button> |
| | | <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="0pk-gO-3Qh" customClass="QMUIButton"> |
| | | <rect key="frame" x="521" y="0.0" width="173.5" height="158"/> |
| | | <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="学习记录" image="icon_feedback"> |
| | | <color key="titleColor" red="0.0" green="0.0" blue="0.0" alpha="0.75" colorSpace="custom" customColorSpace="sRGB"/> |
| | | </state> |
| | | <connections> |
| | | <action selector="studyRecord:" destination="-1" eventType="touchUpInside" id="ggL-Pj-jCU"/> |
| | | </connections> |
| | | </button> |
| | | <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="gtG-mF-MKi" customClass="QMUIButton"> |
| | | <rect key="frame" x="694.5" y="0.0" width="173.5" height="158"/> |
| | | <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="分享好友" image="icon_share"> |
| | | <color key="titleColor" red="0.0" green="0.0" blue="0.0" alpha="0.75" colorSpace="custom" customColorSpace="sRGB"/> |
| | | </state> |
| | | <connections> |
| | | <action selector="shareAction:" destination="-1" eventType="touchUpInside" id="mmm-mt-qBh"/> |
| | | </connections> |
| | | </button> |
| | | </subviews> |
| | | </stackView> |
| | | </subviews> |
| | | </stackView> |
| | | </subviews> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstItem="eBA-xA-cf9" firstAttribute="top" secondItem="e6a-MV-XUk" secondAttribute="top" id="6Rv-YX-eW3"/> |
| | | <constraint firstAttribute="bottom" secondItem="eBA-xA-cf9" secondAttribute="bottom" id="SZj-oC-XlE"/> |
| | | <constraint firstAttribute="height" constant="158" id="Tyr-UQ-W0h"/> |
| | | <constraint firstAttribute="trailing" secondItem="eBA-xA-cf9" secondAttribute="trailing" id="lrL-cf-jkF"/> |
| | | <constraint firstItem="eBA-xA-cf9" firstAttribute="leading" secondItem="e6a-MV-XUk" secondAttribute="leading" id="pax-oJ-hc8"/> |
| | | </constraints> |
| | | <userDefinedRuntimeAttributes> |
| | | <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> |
| | | <real key="value" value="8"/> |
| | | </userDefinedRuntimeAttribute> |
| | | </userDefinedRuntimeAttributes> |
| | | </view> |
| | | <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="0ov-a9-SIh"> |
| | | <rect key="frame" x="517" y="746" width="146" height="35"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="35" id="Pmu-jq-26R"/> |
| | | <constraint firstAttribute="width" constant="146" id="WBn-bB-h5a"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" 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_borderWidthXIB"> |
| | | <real key="value" value="1"/> |
| | | </userDefinedRuntimeAttribute> |
| | | <userDefinedRuntimeAttribute type="color" keyPath="ld_borderColorXIB"> |
| | | <color key="value" red="0.90196078431372551" green="0.90196078431372551" blue="0.90196078431372551" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | </userDefinedRuntimeAttribute> |
| | | </userDefinedRuntimeAttributes> |
| | | <connections> |
| | | <action selector="quitAction:" destination="-1" eventType="touchUpInside" id="322-D8-aP5"/> |
| | | </connections> |
| | | </button> |
| | | </subviews> |
| | | <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstItem="e6a-MV-XUk" firstAttribute="trailing" secondItem="Ora-D0-c8V" secondAttribute="trailing" id="2Vg-Gn-vCR"/> |
| | | <constraint firstItem="fnl-2z-Ty3" firstAttribute="bottom" secondItem="0ov-a9-SIh" secondAttribute="bottom" constant="19" id="9Nj-G9-pFt"/> |
| | | <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="Ora-D0-c8V" secondAttribute="trailing" constant="156" id="J8V-r0-2Tg"/> |
| | | <constraint firstItem="Ora-D0-c8V" firstAttribute="top" secondItem="fnl-2z-Ty3" secondAttribute="top" constant="19" id="Sf2-5e-8rp"/> |
| | | <constraint firstItem="e6a-MV-XUk" firstAttribute="top" secondItem="Ora-D0-c8V" secondAttribute="bottom" constant="19" id="Ucv-hg-egV"/> |
| | | <constraint firstItem="0ov-a9-SIh" firstAttribute="centerX" secondItem="fnl-2z-Ty3" secondAttribute="centerX" id="hZE-3Q-G5A"/> |
| | | <constraint firstItem="e6a-MV-XUk" firstAttribute="leading" secondItem="Ora-D0-c8V" secondAttribute="leading" id="yaJ-po-bJn"/> |
| | | <constraint firstItem="Ora-D0-c8V" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="156" id="z4O-Qy-ttE"/> |
| | | </constraints> |
| | | <point key="canvasLocation" x="45" y="20"/> |
| | | </view> |
| | | </objects> |
| | | <resources> |
| | | <image name="icon_address" width="39" height="36"/> |
| | | <image name="icon_coin" width="36" height="39"/> |
| | | <image name="icon_feedback" width="34" height="39"/> |
| | | <image name="icon_record" width="34" height="35"/> |
| | | <image name="icon_share" width="30" height="39"/> |
| | | <systemColor name="systemBackgroundColor"> |
| | | <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
| | | </systemColor> |
| | | </resources> |
| | | </document> |
New file |
| | |
| | | // |
| | | // AddressManageTCell.swift |
| | | // DolphinEnglishLearnManager |
| | | // |
| | | // Created by 无故事王国 on 2024/5/20. |
| | | // |
| | | |
| | | import UIKit |
| | | |
| | | class AddressManageTCell: UITableViewCell { |
| | | |
| | | var isFist:Bool = false |
| | | var isLast:Bool = false |
| | | @IBOutlet weak var btn_default: UIButton! |
| | | @IBOutlet weak var btn_delete: UIButton! |
| | | @IBOutlet weak var btn_edit: UIButton! |
| | | @IBOutlet weak var img_more: UIImageView! |
| | | |
| | | override func awakeFromNib() { |
| | | super.awakeFromNib() |
| | | selectionStyle = .none |
| | | } |
| | | |
| | | |
| | | func isDefault(_ state:Bool){ |
| | | if state{ |
| | | btn_default.setTitle(" 默认 ", for: .normal) |
| | | btn_default.backgroundColor = UIColor(hexStr: "#F7462D") |
| | | btn_default.setTitleColor(.white, for: .normal) |
| | | btn_default.jq_cornerRadius = 8.5 |
| | | btn_default.jq_size = CGSize.init(width: 42, height: 17) |
| | | btn_default.sizeToFit() |
| | | }else{ |
| | | let attribute = AttributedStringbuilder.build().add(string: "设为默认", withFont: .systemFont(ofSize: 14, weight: .medium), withColor: UIColor(hexStr: "#41A2EB")).underLine(color: UIColor(hexStr: "#41A2EB")).mutableAttributedString |
| | | btn_default.setAttributedTitle(attribute, for: .normal) |
| | | } |
| | | } |
| | | |
| | | @IBAction func deleteAction(_ sender: UIButton) { |
| | | CommonAlertView.show(content:"确认删除所选信息吗?") { |
| | | |
| | | } |
| | | } |
| | | |
| | | @IBAction func editAction(_ sender: UIButton) { |
| | | let vc = AddressManageHandleVC() |
| | | vc.title = "编辑地址" |
| | | JQ_currentViewController().jq_push(vc: vc) |
| | | } |
| | | |
| | | override func layoutSubviews() { |
| | | if isFist{ |
| | | contentView.jq_addCorners(corner: [.topLeft,.topRight], radius: 10) |
| | | } |
| | | |
| | | if isLast{ |
| | | contentView.jq_addCorners(corner: [.bottomLeft,.bottomLeft], radius: 10) |
| | | } |
| | | |
| | | } |
| | | } |
New file |
| | |
| | | <?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="22684"/> |
| | | <capability name="Safe area layout guides" minToolsVersion="9.0"/> |
| | | <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> |
| | | </dependencies> |
| | | <objects> |
| | | <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/> |
| | | <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> |
| | | <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" rowHeight="95" id="KGk-i7-Jjw" customClass="AddressManageTCell" customModule="DolphinEnglishLearnManager" customModuleProvider="target"> |
| | | <rect key="frame" x="0.0" y="0.0" width="447" height="95"/> |
| | | <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="447" height="95"/> |
| | | <autoresizingMask key="autoresizingMask"/> |
| | | <subviews> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="LabelLabelLabelLabelLabelLabelLabelLabelLabelLabelLabelLabelLabelLabelLabelLabelLabelLabelLabel" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Qjx-I2-glv"> |
| | | <rect key="frame" x="14" y="17" width="343" height="20"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="20" id="pSh-9D-wSG"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> |
| | | <nil key="textColor"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ezc-re-P3r"> |
| | | <rect key="frame" x="375" y="18.666666666666668" width="58" height="17.000000000000004"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="17" id="0Kf-PA-7Or"/> |
| | | <constraint firstAttribute="width" relation="greaterThanOrEqual" constant="42" id="4RT-3H-dH2"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" 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.25490196079999999" green="0.63529411759999999" blue="0.92156862750000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | </state> |
| | | </button> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="-- | --" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="g9x-qe-0Me"> |
| | | <rect key="frame" x="13.999999999999996" y="42" width="41.666666666666657" height="17"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="17" id="04w-Er-l9A"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" pointSize="12"/> |
| | | <nil key="textColor"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Sjj-oO-GNP"> |
| | | <rect key="frame" x="0.0" y="92" width="447" height="3"/> |
| | | <color key="backgroundColor" red="0.8901960784313725" green="0.97254901960784312" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="3" id="oGW-Do-Mb7"/> |
| | | </constraints> |
| | | </view> |
| | | <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="WFf-ch-GdK"> |
| | | <rect key="frame" x="417" y="65" width="22" height="22"/> |
| | | <constraints> |
| | | <constraint firstAttribute="width" constant="22" id="MYR-Gw-7HP"/> |
| | | </constraints> |
| | | <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> |
| | | <state key="normal" image="btn_edit_b"/> |
| | | <connections> |
| | | <action selector="editAction:" destination="KGk-i7-Jjw" eventType="touchUpInside" id="Ff1-yE-neb"/> |
| | | </connections> |
| | | </button> |
| | | <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="a8n-tE-gqa"> |
| | | <rect key="frame" x="387" y="65" width="22" height="22"/> |
| | | <constraints> |
| | | <constraint firstAttribute="width" constant="22" id="O11-LV-N1c"/> |
| | | </constraints> |
| | | <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> |
| | | <state key="normal" image="btn_delete"/> |
| | | <connections> |
| | | <action selector="deleteAction:" destination="KGk-i7-Jjw" eventType="touchUpInside" id="iyg-mk-Xa2"/> |
| | | </connections> |
| | | </button> |
| | | <imageView hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_more_gray" translatesAutoresizingMaskIntoConstraints="NO" id="Qav-bf-Mlo"> |
| | | <rect key="frame" x="427" y="42.666666666666664" width="6" height="10"/> |
| | | </imageView> |
| | | </subviews> |
| | | <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
| | | <constraints> |
| | | <constraint firstItem="Sjj-oO-GNP" firstAttribute="top" secondItem="WFf-ch-GdK" secondAttribute="bottom" constant="5" id="19d-dy-g3v"/> |
| | | <constraint firstAttribute="trailing" secondItem="ezc-re-P3r" secondAttribute="trailing" constant="14" id="3We-3h-tgl"/> |
| | | <constraint firstAttribute="trailing" secondItem="Qav-bf-Mlo" secondAttribute="trailing" constant="14" id="5CH-E8-JHk"/> |
| | | <constraint firstItem="g9x-qe-0Me" firstAttribute="top" secondItem="Qjx-I2-glv" secondAttribute="bottom" constant="5" id="IXI-3H-V1L"/> |
| | | <constraint firstAttribute="bottom" secondItem="Sjj-oO-GNP" secondAttribute="bottom" id="Iij-PX-IvL"/> |
| | | <constraint firstItem="Sjj-oO-GNP" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" id="Jw5-AC-vFm"/> |
| | | <constraint firstItem="g9x-qe-0Me" firstAttribute="leading" secondItem="Qjx-I2-glv" secondAttribute="leading" id="Y24-Yc-nQe"/> |
| | | <constraint firstItem="WFf-ch-GdK" firstAttribute="leading" secondItem="a8n-tE-gqa" secondAttribute="trailing" constant="8" id="ZOQ-1v-5Kt"/> |
| | | <constraint firstItem="WFf-ch-GdK" firstAttribute="centerY" secondItem="a8n-tE-gqa" secondAttribute="centerY" id="b33-sU-VH8"/> |
| | | <constraint firstAttribute="trailing" secondItem="WFf-ch-GdK" secondAttribute="trailing" constant="8" id="cdZ-LG-HxC"/> |
| | | <constraint firstAttribute="trailing" secondItem="Qjx-I2-glv" secondAttribute="trailing" constant="90" id="ilg-if-crt"/> |
| | | <constraint firstItem="ezc-re-P3r" firstAttribute="centerY" secondItem="Qjx-I2-glv" secondAttribute="centerY" id="jaZ-YW-hs3"/> |
| | | <constraint firstAttribute="trailing" secondItem="Sjj-oO-GNP" secondAttribute="trailing" id="kpi-gS-qGK"/> |
| | | <constraint firstItem="Qav-bf-Mlo" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" id="mf1-dH-JFG"/> |
| | | <constraint firstItem="Qjx-I2-glv" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="17" id="n6m-UK-hwu"/> |
| | | <constraint firstItem="Qjx-I2-glv" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="14" id="yMI-eD-vUL"/> |
| | | </constraints> |
| | | </tableViewCellContentView> |
| | | <viewLayoutGuide key="safeArea" id="njF-e1-oar"/> |
| | | <connections> |
| | | <outlet property="btn_default" destination="ezc-re-P3r" id="6eH-YL-mTQ"/> |
| | | <outlet property="btn_delete" destination="a8n-tE-gqa" id="elJ-VF-A4k"/> |
| | | <outlet property="btn_edit" destination="WFf-ch-GdK" id="Wfz-Oo-mbZ"/> |
| | | <outlet property="img_more" destination="Qav-bf-Mlo" id="ykH-wg-Brt"/> |
| | | </connections> |
| | | <point key="canvasLocation" x="202.29007633587784" y="49.647887323943664"/> |
| | | </tableViewCell> |
| | | </objects> |
| | | <resources> |
| | | <image name="btn_delete" width="12" height="15"/> |
| | | <image name="btn_edit_b" width="13" height="14"/> |
| | | <image name="icon_more_gray" width="6" height="10"/> |
| | | </resources> |
| | | </document> |
New file |
| | |
| | | // |
| | | // GoodsItemTCell.swift |
| | | // DolphinEnglishLearnManager |
| | | // |
| | | // Created by 无故事王国 on 2024/5/20. |
| | | // |
| | | |
| | | import UIKit |
| | | |
| | | class GoodsItemTCell: UITableViewCell { |
| | | |
| | | @IBOutlet weak var view_container: UIView! |
| | | override func awakeFromNib() { |
| | | super.awakeFromNib() |
| | | selectionStyle = .none |
| | | backgroundColor = .clear |
| | | view_container.jq_addShadows(shadowColor: UIColor(hexStr: "#D9D9D9").withAlphaComponent(0.28), corner: 8, radius: 3, offset: CGSize(width: 0, height: 2), opacity: 1) |
| | | } |
| | | |
| | | @IBAction func handleAction(_ sender: UIButton) { |
| | | let vc = AddressManageVC(type: .choose) |
| | | vc.title = "修改地址" |
| | | JQ_currentViewController().jq_push(vc: vc) |
| | | } |
| | | |
| | | |
| | | } |
New file |
| | |
| | | <?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="22684"/> |
| | | <capability name="Safe area layout guides" minToolsVersion="9.0"/> |
| | | <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> |
| | | </dependencies> |
| | | <objects> |
| | | <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/> |
| | | <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> |
| | | <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="_GoodsItemTCell" rowHeight="344" id="KGk-i7-Jjw" customClass="GoodsItemTCell" customModule="DolphinEnglishLearnManager" customModuleProvider="target"> |
| | | <rect key="frame" x="0.0" y="0.0" width="532" height="344"/> |
| | | <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="532" height="344"/> |
| | | <autoresizingMask key="autoresizingMask"/> |
| | | <subviews> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="EWl-m5-3O9"> |
| | | <rect key="frame" x="0.0" y="6" width="532" height="332"/> |
| | | <subviews> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="9oA-7x-in6"> |
| | | <rect key="frame" x="8" y="19" width="41.333333333333336" height="20.333333333333329"/> |
| | | <fontDescription key="fontDescription" type="system" pointSize="17"/> |
| | | <nil key="textColor"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="HZS-Oe-5LR"> |
| | | <rect key="frame" x="8" y="52.333333333333343" width="148" height="148"/> |
| | | <constraints> |
| | | <constraint firstAttribute="width" constant="148" id="D3I-iy-k6w"/> |
| | | <constraint firstAttribute="width" secondItem="HZS-Oe-5LR" secondAttribute="height" multiplier="1:1" id="YQJ-eG-71N"/> |
| | | </constraints> |
| | | <userDefinedRuntimeAttributes> |
| | | <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> |
| | | <real key="value" value="4"/> |
| | | </userDefinedRuntimeAttribute> |
| | | </userDefinedRuntimeAttributes> |
| | | </imageView> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="UdI-oe-WSO"> |
| | | <rect key="frame" x="173" y="52.333333333333336" width="234" height="19.333333333333336"/> |
| | | <fontDescription key="fontDescription" type="system" pointSize="16"/> |
| | | <color key="textColor" red="0.082352941176470587" green="0.086274509803921567" blue="0.094117647058823528" 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="nMG-SO-H2Z"> |
| | | <rect key="frame" x="481" y="52.666666666666664" width="40" height="18.666666666666664"/> |
| | | <fontDescription key="fontDescription" name="DINAlternate-Bold" family="DIN Alternate" pointSize="16"/> |
| | | <color key="textColor" red="0.96862745100000003" green="0.27450980390000002" blue="0.1764705882" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="viA-yT-ZWk"> |
| | | <rect key="frame" x="173" y="71.666666666666671" width="359" height="17"/> |
| | | <fontDescription key="fontDescription" type="system" pointSize="14"/> |
| | | <nil key="textColor"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" distribution="fillEqually" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="vd5-iK-Ujb"> |
| | | <rect key="frame" x="173" y="95.666666666666686" width="303" height="70"/> |
| | | <subviews> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="商品数量:-" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="PlF-D7-xZD"> |
| | | <rect key="frame" x="0.0" y="0.0" width="303" height="20"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="20" id="ima-Vh-7Ak"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="14"/> |
| | | <color key="textColor" red="0.082352941176470587" green="0.086274509803921567" blue="0.094117647058823528" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="收获信息:-" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qnF-SM-ngM"> |
| | | <rect key="frame" x="0.0" y="25" width="303" height="20"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="20" id="SzN-h8-eUd"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="14"/> |
| | | <color key="textColor" red="0.08235294118" green="0.086274509799999996" blue="0.094117647060000004" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="发货信息:-" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="cSS-lo-Yba"> |
| | | <rect key="frame" x="0.0" y="49.999999999999986" width="303" height="20"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="20" id="mDC-DF-Wc3"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="14"/> |
| | | <color key="textColor" red="0.08235294118" green="0.086274509799999996" blue="0.094117647060000004" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | </subviews> |
| | | </stackView> |
| | | <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="xwt-lH-fyW"> |
| | | <rect key="frame" x="397" y="274" width="124" height="40"/> |
| | | <color key="backgroundColor" red="0.25490196079999999" green="0.63529411759999999" blue="0.92156862750000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <constraints> |
| | | <constraint firstAttribute="width" constant="124" id="3Ct-u1-c4s"/> |
| | | <constraint firstAttribute="height" constant="40" id="Sht-mV-Ugr"/> |
| | | </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="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> |
| | | <real key="value" value="4"/> |
| | | </userDefinedRuntimeAttribute> |
| | | </userDefinedRuntimeAttributes> |
| | | <connections> |
| | | <action selector="handleAction:" destination="KGk-i7-Jjw" eventType="touchUpInside" id="dgK-UX-7H1"/> |
| | | </connections> |
| | | </button> |
| | | </subviews> |
| | | <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <constraints> |
| | | <constraint firstItem="UdI-oe-WSO" firstAttribute="leading" secondItem="HZS-Oe-5LR" secondAttribute="trailing" constant="17" id="57C-Fp-3AO"/> |
| | | <constraint firstItem="viA-yT-ZWk" firstAttribute="leading" secondItem="UdI-oe-WSO" secondAttribute="leading" id="6Fj-YY-5Lr"/> |
| | | <constraint firstAttribute="trailing" secondItem="xwt-lH-fyW" secondAttribute="trailing" constant="11" id="6RI-NH-2my"/> |
| | | <constraint firstItem="9oA-7x-in6" firstAttribute="leading" secondItem="EWl-m5-3O9" secondAttribute="leading" constant="8" id="AHE-Ei-2xt"/> |
| | | <constraint firstItem="vd5-iK-Ujb" firstAttribute="leading" secondItem="UdI-oe-WSO" secondAttribute="leading" id="CRk-D7-Sa0"/> |
| | | <constraint firstItem="9oA-7x-in6" firstAttribute="top" secondItem="EWl-m5-3O9" secondAttribute="top" constant="19" id="Kd6-sy-ai0"/> |
| | | <constraint firstAttribute="trailing" secondItem="nMG-SO-H2Z" secondAttribute="trailing" constant="11" id="NXe-Od-1mg"/> |
| | | <constraint firstAttribute="bottom" secondItem="xwt-lH-fyW" secondAttribute="bottom" constant="18" id="Ncc-MB-We2"/> |
| | | <constraint firstItem="UdI-oe-WSO" firstAttribute="top" secondItem="HZS-Oe-5LR" secondAttribute="top" id="ZyM-TK-6FN"/> |
| | | <constraint firstAttribute="trailing" secondItem="viA-yT-ZWk" secondAttribute="trailing" id="d0F-tv-fNn"/> |
| | | <constraint firstItem="viA-yT-ZWk" firstAttribute="top" secondItem="UdI-oe-WSO" secondAttribute="bottom" id="fFu-Xa-Vst"/> |
| | | <constraint firstItem="vd5-iK-Ujb" firstAttribute="top" secondItem="viA-yT-ZWk" secondAttribute="bottom" constant="7" id="kmP-P0-Yhd"/> |
| | | <constraint firstItem="nMG-SO-H2Z" firstAttribute="centerY" secondItem="UdI-oe-WSO" secondAttribute="centerY" id="ne0-kd-EzF"/> |
| | | <constraint firstItem="HZS-Oe-5LR" firstAttribute="top" secondItem="9oA-7x-in6" secondAttribute="bottom" constant="13" id="nvs-xY-hiH"/> |
| | | <constraint firstItem="HZS-Oe-5LR" firstAttribute="leading" secondItem="EWl-m5-3O9" secondAttribute="leading" constant="8" id="u6c-56-glh"/> |
| | | <constraint firstAttribute="trailing" secondItem="vd5-iK-Ujb" secondAttribute="trailing" constant="56" id="ucU-JO-6dg"/> |
| | | <constraint firstAttribute="trailing" secondItem="UdI-oe-WSO" secondAttribute="trailing" constant="125" id="z0n-ib-Q7m"/> |
| | | </constraints> |
| | | </view> |
| | | </subviews> |
| | | <constraints> |
| | | <constraint firstAttribute="bottom" secondItem="EWl-m5-3O9" secondAttribute="bottom" constant="6" id="8Fg-uF-Si8"/> |
| | | <constraint firstAttribute="trailing" secondItem="EWl-m5-3O9" secondAttribute="trailing" id="EfQ-Ub-XHB"/> |
| | | <constraint firstItem="EWl-m5-3O9" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" id="P02-wF-uT4"/> |
| | | <constraint firstItem="EWl-m5-3O9" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="6" id="avD-p2-D0M"/> |
| | | </constraints> |
| | | </tableViewCellContentView> |
| | | <viewLayoutGuide key="safeArea" id="njF-e1-oar"/> |
| | | <connections> |
| | | <outlet property="view_container" destination="EWl-m5-3O9" id="vyU-l1-0CY"/> |
| | | </connections> |
| | | <point key="canvasLocation" x="259.5419847328244" y="126.05633802816902"/> |
| | | </tableViewCell> |
| | | </objects> |
| | | </document> |
New file |
| | |
| | | // |
| | | // Home_1_TCell.swift |
| | | // DolphinEnglishLearnManager |
| | | // |
| | | // Created by 无故事王国 on 2024/5/17. |
| | | // |
| | | |
| | | import UIKit |
| | | |
| | | class Home_1_TCell: UITableViewCell { |
| | | |
| | | override func awakeFromNib() { |
| | | super.awakeFromNib() |
| | | selectionStyle = .none |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | <?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="22684"/> |
| | | <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="_Home_1_TCell" id="KGk-i7-Jjw" customClass="Home_1_TCell" customModule="DolphinEnglishLearnManager" customModuleProvider="target"> |
| | | <rect key="frame" x="0.0" y="0.0" width="320" height="44"/> |
| | | <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="320" height="44"/> |
| | | <autoresizingMask key="autoresizingMask"/> |
| | | <subviews> |
| | | <stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" translatesAutoresizingMaskIntoConstraints="NO" id="xga-Br-Izz"> |
| | | <rect key="frame" x="0.0" y="0.0" width="320" height="44"/> |
| | | <subviews> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="LLg-mN-hnD"> |
| | | <rect key="frame" x="0.0" y="0.0" width="80" height="44"/> |
| | | <fontDescription key="fontDescription" type="system" pointSize="14"/> |
| | | <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.79000000000000004" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="bXA-iA-Sgc"> |
| | | <rect key="frame" x="80" y="0.0" width="80" height="44"/> |
| | | <fontDescription key="fontDescription" type="system" pointSize="14"/> |
| | | <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.79000000000000004" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="tft-ra-5If"> |
| | | <rect key="frame" x="160" y="0.0" width="80" height="44"/> |
| | | <fontDescription key="fontDescription" type="system" pointSize="14"/> |
| | | <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.79000000000000004" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="UQ2-uJ-GO9"> |
| | | <rect key="frame" x="240" y="0.0" width="80" height="44"/> |
| | | <fontDescription key="fontDescription" type="system" pointSize="14"/> |
| | | <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.79000000000000004" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | </subviews> |
| | | </stackView> |
| | | </subviews> |
| | | <constraints> |
| | | <constraint firstAttribute="bottom" secondItem="xga-Br-Izz" secondAttribute="bottom" id="AtE-En-WKT"/> |
| | | <constraint firstItem="xga-Br-Izz" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" id="Khq-ji-jpd"/> |
| | | <constraint firstAttribute="trailing" secondItem="xga-Br-Izz" secondAttribute="trailing" id="cyE-9M-z5E"/> |
| | | <constraint firstItem="xga-Br-Izz" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" id="dHd-ao-jYA"/> |
| | | </constraints> |
| | | </tableViewCellContentView> |
| | | <point key="canvasLocation" x="139" y="21"/> |
| | | </tableViewCell> |
| | | </objects> |
| | | </document> |
New file |
| | |
| | | // |
| | | // AddressManageHandleVC.swift |
| | | // DolphinEnglishLearnManager |
| | | // |
| | | // Created by 无故事王国 on 2024/5/20. |
| | | // |
| | | |
| | | import UIKit |
| | | |
| | | class AddressManageHandleVC: BaseVC { |
| | | |
| | | @IBOutlet weak var view_container: UIView! |
| | | override func viewDidLoad() { |
| | | super.viewDidLoad() |
| | | |
| | | } |
| | | |
| | | override func setUI() { |
| | | super.setUI() |
| | | view_container.jq_addShadows(shadowColor: UIColor(hexStr: "#D9D9D9").withAlphaComponent(0.28), corner: 8, radius: 20, offset: CGSize(width: 0, height: 2), opacity: 1) |
| | | } |
| | | } |
New file |
| | |
| | | <?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="ipad12_9" orientation="landscape" layout="fullscreen" appearance="light"/> |
| | | <dependencies> |
| | | <deployment identifier="iOS"/> |
| | | <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22684"/> |
| | | <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="AddressManageHandleVC" customModule="DolphinEnglishLearnStudent" customModuleProvider="target"> |
| | | <connections> |
| | | <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/> |
| | | <outlet property="view_container" destination="qgb-Bj-4P0" id="eaY-Jn-MsE"/> |
| | | </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="1366" height="1024"/> |
| | | <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> |
| | | <subviews> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="qgb-Bj-4P0"> |
| | | <rect key="frame" x="239" y="47" width="888" height="614.5"/> |
| | | <subviews> |
| | | <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="Bml-2O-Jkw"> |
| | | <rect key="frame" x="0.0" y="0.0" width="888" height="216"/> |
| | | <subviews> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="gL0-u1-iqI"> |
| | | <rect key="frame" x="0.0" y="0.0" width="888" height="54"/> |
| | | <subviews> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="收件人姓名" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ah0-ec-HCT"> |
| | | <rect key="frame" x="14" y="18.5" width="71.5" height="17"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> |
| | | <nil key="textColor"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入收件人姓名" textAlignment="right" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="oWU-h5-9OT"> |
| | | <rect key="frame" x="104.5" y="0.0" width="764.5" height="54"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> |
| | | <textInputTraits key="textInputTraits"/> |
| | | </textField> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Uen-aK-Q1M"> |
| | | <rect key="frame" x="0.0" y="53.5" width="888" height="0.5"/> |
| | | <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="XCy-jl-IZa"/> |
| | | </constraints> |
| | | </view> |
| | | </subviews> |
| | | <constraints> |
| | | <constraint firstAttribute="bottom" secondItem="Uen-aK-Q1M" secondAttribute="bottom" id="3zj-HR-HYt"/> |
| | | <constraint firstItem="Uen-aK-Q1M" firstAttribute="leading" secondItem="gL0-u1-iqI" secondAttribute="leading" id="4Yk-Ed-kGC"/> |
| | | <constraint firstItem="ah0-ec-HCT" firstAttribute="centerY" secondItem="gL0-u1-iqI" secondAttribute="centerY" id="6hl-TP-L2A"/> |
| | | <constraint firstItem="oWU-h5-9OT" firstAttribute="top" secondItem="gL0-u1-iqI" secondAttribute="top" id="ESm-p3-34K"/> |
| | | <constraint firstAttribute="height" constant="54" id="IJG-Tb-gVo"/> |
| | | <constraint firstAttribute="trailing" secondItem="Uen-aK-Q1M" secondAttribute="trailing" id="OIA-XV-9b2"/> |
| | | <constraint firstItem="oWU-h5-9OT" firstAttribute="leading" secondItem="ah0-ec-HCT" secondAttribute="trailing" constant="19" id="OcR-ld-cPf"/> |
| | | <constraint firstAttribute="bottom" secondItem="oWU-h5-9OT" secondAttribute="bottom" id="pdz-74-YVb"/> |
| | | <constraint firstAttribute="trailing" secondItem="oWU-h5-9OT" secondAttribute="trailing" constant="19" id="r3R-4N-DlD"/> |
| | | <constraint firstItem="ah0-ec-HCT" firstAttribute="leading" secondItem="gL0-u1-iqI" secondAttribute="leading" constant="14" id="yKM-o1-uAk"/> |
| | | </constraints> |
| | | </view> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="pzg-aG-m2r"> |
| | | <rect key="frame" x="0.0" y="54" width="888" height="54"/> |
| | | <subviews> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="收件人电话" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qmm-Jk-RkU"> |
| | | <rect key="frame" x="14" y="18.5" width="71.5" height="17"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> |
| | | <nil key="textColor"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入收件人电话" textAlignment="right" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="fLZ-09-hXt" customClass="QMUITextField"> |
| | | <rect key="frame" x="104.5" y="0.0" width="764.5" height="54"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> |
| | | <textInputTraits key="textInputTraits" keyboardType="phonePad"/> |
| | | <userDefinedRuntimeAttributes> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="maximumTextLength"> |
| | | <integer key="value" value="11"/> |
| | | </userDefinedRuntimeAttribute> |
| | | </userDefinedRuntimeAttributes> |
| | | </textField> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="m7c-5g-7aN"> |
| | | <rect key="frame" x="0.0" y="53.5" width="888" height="0.5"/> |
| | | <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="exs-sq-0nR"/> |
| | | </constraints> |
| | | </view> |
| | | </subviews> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstAttribute="bottom" secondItem="fLZ-09-hXt" secondAttribute="bottom" id="6aU-3m-zB7"/> |
| | | <constraint firstAttribute="bottom" secondItem="m7c-5g-7aN" secondAttribute="bottom" id="CgK-zF-akg"/> |
| | | <constraint firstItem="fLZ-09-hXt" firstAttribute="leading" secondItem="qmm-Jk-RkU" secondAttribute="trailing" constant="19" id="DPY-M5-NQO"/> |
| | | <constraint firstItem="qmm-Jk-RkU" firstAttribute="leading" secondItem="pzg-aG-m2r" secondAttribute="leading" constant="14" id="Heo-HM-1uX"/> |
| | | <constraint firstItem="m7c-5g-7aN" firstAttribute="leading" secondItem="pzg-aG-m2r" secondAttribute="leading" id="IaR-PY-X2E"/> |
| | | <constraint firstAttribute="height" constant="54" id="OVr-4I-0qi"/> |
| | | <constraint firstAttribute="trailing" secondItem="m7c-5g-7aN" secondAttribute="trailing" id="QUx-yW-9DA"/> |
| | | <constraint firstAttribute="trailing" secondItem="fLZ-09-hXt" secondAttribute="trailing" constant="19" id="WeA-xm-WKk"/> |
| | | <constraint firstItem="qmm-Jk-RkU" firstAttribute="centerY" secondItem="pzg-aG-m2r" secondAttribute="centerY" id="eBj-TW-GLs"/> |
| | | <constraint firstItem="fLZ-09-hXt" firstAttribute="top" secondItem="pzg-aG-m2r" secondAttribute="top" id="vka-A8-vgA"/> |
| | | </constraints> |
| | | </view> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="HrP-X4-olT"> |
| | | <rect key="frame" x="0.0" y="108" width="888" height="54"/> |
| | | <subviews> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="所在城市" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="nQE-ee-ydX"> |
| | | <rect key="frame" x="14" y="18.5" width="57.5" height="17"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> |
| | | <nil key="textColor"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请选择" textAlignment="right" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="FIR-Ti-oMo" customClass="QMUITextField"> |
| | | <rect key="frame" x="90.5" y="0.0" width="753.5" height="54"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> |
| | | <textInputTraits key="textInputTraits" keyboardType="phonePad"/> |
| | | <userDefinedRuntimeAttributes> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="maximumTextLength"> |
| | | <integer key="value" value="11"/> |
| | | </userDefinedRuntimeAttribute> |
| | | </userDefinedRuntimeAttributes> |
| | | </textField> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="RaS-F3-Z6G"> |
| | | <rect key="frame" x="0.0" y="53.5" width="888" height="0.5"/> |
| | | <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="1bU-eZ-QZg"/> |
| | | </constraints> |
| | | </view> |
| | | <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_more" translatesAutoresizingMaskIntoConstraints="NO" id="cjf-3I-DOC"> |
| | | <rect key="frame" x="863" y="22" width="6" height="10"/> |
| | | </imageView> |
| | | </subviews> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstItem="cjf-3I-DOC" firstAttribute="leading" secondItem="FIR-Ti-oMo" secondAttribute="trailing" constant="19" id="5Hs-BO-mcP"/> |
| | | <constraint firstAttribute="trailing" secondItem="RaS-F3-Z6G" secondAttribute="trailing" id="8IR-R7-ulg"/> |
| | | <constraint firstAttribute="bottom" secondItem="RaS-F3-Z6G" secondAttribute="bottom" id="8RU-6v-9pr"/> |
| | | <constraint firstItem="FIR-Ti-oMo" firstAttribute="top" secondItem="HrP-X4-olT" secondAttribute="top" id="9v0-GU-DRy"/> |
| | | <constraint firstAttribute="trailing" secondItem="cjf-3I-DOC" secondAttribute="trailing" constant="19" id="IiA-OS-VQd"/> |
| | | <constraint firstItem="RaS-F3-Z6G" firstAttribute="leading" secondItem="HrP-X4-olT" secondAttribute="leading" id="RwP-WM-n8r"/> |
| | | <constraint firstAttribute="bottom" secondItem="FIR-Ti-oMo" secondAttribute="bottom" id="U32-3i-2Aw"/> |
| | | <constraint firstItem="nQE-ee-ydX" firstAttribute="leading" secondItem="HrP-X4-olT" secondAttribute="leading" constant="14" id="Xgd-EK-N8S"/> |
| | | <constraint firstItem="FIR-Ti-oMo" firstAttribute="leading" secondItem="nQE-ee-ydX" secondAttribute="trailing" constant="19" id="Z9I-sm-KCY"/> |
| | | <constraint firstAttribute="height" constant="54" id="dZt-uB-2f2"/> |
| | | <constraint firstItem="cjf-3I-DOC" firstAttribute="centerY" secondItem="HrP-X4-olT" secondAttribute="centerY" id="h3V-dz-Q8t"/> |
| | | <constraint firstItem="nQE-ee-ydX" firstAttribute="centerY" secondItem="HrP-X4-olT" secondAttribute="centerY" id="pQA-0y-qHp"/> |
| | | </constraints> |
| | | </view> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="eNK-zb-eqQ"> |
| | | <rect key="frame" x="0.0" y="162" width="888" height="54"/> |
| | | <subviews> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="所在城市" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="uwd-8E-QFK"> |
| | | <rect key="frame" x="14" y="18.5" width="57.5" height="17"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> |
| | | <nil key="textColor"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入" textAlignment="right" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="9Rg-uR-zdR" customClass="QMUITextField"> |
| | | <rect key="frame" x="90.5" y="0.0" width="778.5" height="54"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> |
| | | <textInputTraits key="textInputTraits" keyboardType="phonePad"/> |
| | | <userDefinedRuntimeAttributes> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="maximumTextLength"> |
| | | <integer key="value" value="11"/> |
| | | </userDefinedRuntimeAttribute> |
| | | </userDefinedRuntimeAttributes> |
| | | </textField> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="1bK-P9-OGL"> |
| | | <rect key="frame" x="0.0" y="53.5" width="888" height="0.5"/> |
| | | <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="oza-e2-xX2"/> |
| | | </constraints> |
| | | </view> |
| | | </subviews> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstAttribute="trailing" secondItem="9Rg-uR-zdR" secondAttribute="trailing" constant="19" id="Ffp-Yv-6hg"/> |
| | | <constraint firstItem="9Rg-uR-zdR" firstAttribute="top" secondItem="eNK-zb-eqQ" secondAttribute="top" id="Juy-4v-1zw"/> |
| | | <constraint firstAttribute="bottom" secondItem="1bK-P9-OGL" secondAttribute="bottom" id="Lr4-s0-5h2"/> |
| | | <constraint firstItem="uwd-8E-QFK" firstAttribute="leading" secondItem="eNK-zb-eqQ" secondAttribute="leading" constant="14" id="NTr-m6-of0"/> |
| | | <constraint firstAttribute="bottom" secondItem="9Rg-uR-zdR" secondAttribute="bottom" id="OtV-Pb-UFW"/> |
| | | <constraint firstAttribute="height" constant="54" id="TE3-H9-e5m"/> |
| | | <constraint firstItem="uwd-8E-QFK" firstAttribute="centerY" secondItem="eNK-zb-eqQ" secondAttribute="centerY" id="TT8-8r-fOg"/> |
| | | <constraint firstItem="9Rg-uR-zdR" firstAttribute="leading" secondItem="uwd-8E-QFK" secondAttribute="trailing" constant="19" id="TrI-bn-NEf"/> |
| | | <constraint firstAttribute="trailing" secondItem="1bK-P9-OGL" secondAttribute="trailing" id="b0o-0x-upF"/> |
| | | <constraint firstItem="1bK-P9-OGL" firstAttribute="leading" secondItem="eNK-zb-eqQ" secondAttribute="leading" id="gkx-px-UXi"/> |
| | | </constraints> |
| | | </view> |
| | | </subviews> |
| | | </stackView> |
| | | <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="X5q-Za-IDi"> |
| | | <rect key="frame" x="13" y="237" width="78" height="28"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="28" id="bzI-82-Yfj"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/> |
| | | <inset key="titleEdgeInsets" minX="0.0" minY="-3" maxX="0.0" maxY="0.0"/> |
| | | <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> |
| | | <state key="normal" title="设为默认" image="btn_choose_u"> |
| | | <color key="titleColor" red="0.0" green="0.0" blue="0.0" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/> |
| | | </state> |
| | | <state key="selected" title="设为默认" image="btn_choose"/> |
| | | </button> |
| | | </subviews> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstAttribute="width" secondItem="qgb-Bj-4P0" secondAttribute="height" multiplier="1:0.692" id="2UQ-68-UdJ"/> |
| | | <constraint firstItem="Bml-2O-Jkw" firstAttribute="top" secondItem="qgb-Bj-4P0" secondAttribute="top" id="73r-hT-fIq"/> |
| | | <constraint firstItem="Bml-2O-Jkw" firstAttribute="leading" secondItem="qgb-Bj-4P0" secondAttribute="leading" id="AqW-n8-1Ha"/> |
| | | <constraint firstAttribute="bottom" secondItem="Bml-2O-Jkw" secondAttribute="bottom" priority="750" id="ZEE-8U-YsJ"/> |
| | | <constraint firstItem="X5q-Za-IDi" firstAttribute="top" secondItem="Bml-2O-Jkw" secondAttribute="bottom" constant="21" id="hFb-X9-NHr"/> |
| | | <constraint firstAttribute="trailing" secondItem="Bml-2O-Jkw" secondAttribute="trailing" id="l5Q-qW-ZNU"/> |
| | | <constraint firstItem="X5q-Za-IDi" firstAttribute="leading" secondItem="qgb-Bj-4P0" secondAttribute="leading" constant="13" id="y3B-WM-o64"/> |
| | | </constraints> |
| | | </view> |
| | | <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="tQp-s7-qDk"> |
| | | <rect key="frame" x="525" y="918" width="316" height="47"/> |
| | | <color key="backgroundColor" red="0.25490196079999999" green="0.63529411759999999" blue="0.92156862750000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <constraints> |
| | | <constraint firstAttribute="width" secondItem="tQp-s7-qDk" secondAttribute="height" multiplier="1:0.148" id="Ziu-PL-WhU"/> |
| | | <constraint firstAttribute="width" constant="316" id="gAL-Xd-A8I"/> |
| | | </constraints> |
| | | <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="保存"/> |
| | | <userDefinedRuntimeAttributes> |
| | | <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> |
| | | <real key="value" value="8"/> |
| | | </userDefinedRuntimeAttribute> |
| | | </userDefinedRuntimeAttributes> |
| | | </button> |
| | | </subviews> |
| | | <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstItem="qgb-Bj-4P0" firstAttribute="top" secondItem="fnl-2z-Ty3" secondAttribute="top" constant="27" id="DHN-Jz-e7A"/> |
| | | <constraint firstItem="fnl-2z-Ty3" firstAttribute="bottom" secondItem="tQp-s7-qDk" secondAttribute="bottom" constant="59" id="KE1-XE-8aA"/> |
| | | <constraint firstItem="tQp-s7-qDk" firstAttribute="centerX" secondItem="fnl-2z-Ty3" secondAttribute="centerX" id="nl5-NS-fSq"/> |
| | | <constraint firstItem="qgb-Bj-4P0" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="239" id="vAz-C0-V6x"/> |
| | | <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="qgb-Bj-4P0" secondAttribute="trailing" constant="239" id="vaW-kC-duk"/> |
| | | </constraints> |
| | | <point key="canvasLocation" x="97.8515625" y="20.644216691068813"/> |
| | | </view> |
| | | </objects> |
| | | <resources> |
| | | <image name="btn_choose" width="28" height="28"/> |
| | | <image name="btn_choose_u" width="28" height="28"/> |
| | | <image name="icon_more" width="6" height="10"/> |
| | | <systemColor name="systemBackgroundColor"> |
| | | <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
| | | </systemColor> |
| | | </resources> |
| | | </document> |
New file |
| | |
| | | // |
| | | // AddressManageVC.swift |
| | | // DolphinEnglishLearnManager |
| | | // |
| | | // Created by 无故事王国 on 2024/5/20. |
| | | // |
| | | |
| | | import UIKit |
| | | |
| | | class AddressManageVC: BaseVC { |
| | | |
| | | enum AddressManageType{ |
| | | case handle |
| | | case choose |
| | | } |
| | | |
| | | private var tableView:UITableView! |
| | | private var addressManageType:AddressManageType! |
| | | |
| | | required init(type:AddressManageType) { |
| | | super.init(nibName: nil, bundle: nil) |
| | | self.addressManageType = type |
| | | } |
| | | |
| | | required init?(coder: NSCoder) { |
| | | fatalError("init(coder:) has not been implemented") |
| | | } |
| | | |
| | | override func viewDidLoad() { |
| | | super.viewDidLoad() |
| | | } |
| | | |
| | | |
| | | override func setUI() { |
| | | super.setUI() |
| | | var completeBtn:UIButton? |
| | | if addressManageType == .handle{ |
| | | completeBtn = UIButton(type: .custom) |
| | | completeBtn!.jq_cornerRadius = 8 |
| | | completeBtn!.addTarget(self, action: #selector(handleAction), for: .touchUpInside) |
| | | completeBtn!.setTitleColor(.white, for: .normal) |
| | | completeBtn!.titleLabel?.font = UIFont.systemFont(ofSize: 16, weight: .medium) |
| | | completeBtn!.setTitle("添加地址", for: .normal) |
| | | completeBtn!.backgroundColor = UIColor(hexStr: "#41A2EB") |
| | | view.addSubview(completeBtn!) |
| | | completeBtn!.snp.makeConstraints { make in |
| | | make.width.equalTo(316) |
| | | make.centerX.equalToSuperview() |
| | | make.bottom.equalToSuperview().offset(-31) |
| | | make.height.equalTo(47) |
| | | } |
| | | } |
| | | |
| | | |
| | | tableView = UITableView(frame: .zero, style: .plain) |
| | | tableView.delegate = self |
| | | tableView.dataSource = self |
| | | tableView.backgroundColor = .clear |
| | | tableView.separatorStyle = .none |
| | | tableView.register(UINib(nibName: "AddressManageTCell", bundle: nil), forCellReuseIdentifier: "_AddressManageTCell") |
| | | tableView.jq_addShadows(shadowColor: UIColor(hexStr: "#D9D9D9"), corner: 0, radius: 20, offset: CGSize(width: 0, height: 2), opacity: 1) |
| | | view.addSubview(tableView) |
| | | tableView.snp.makeConstraints { make in |
| | | make.top.equalTo(self.view.safeAreaLayoutGuide).offset(27) |
| | | make.left.equalTo(239) |
| | | make.right.equalTo(-239) |
| | | make.height.equalTo(47) |
| | | if completeBtn != nil{ |
| | | make.bottom.equalTo(completeBtn!.snp.top).offset(10) |
| | | }else{ |
| | | make.bottom.equalToSuperview() |
| | | } |
| | | } |
| | | } |
| | | |
| | | @objc func handleAction(){ |
| | | let vc = AddressManageHandleVC() |
| | | vc.title = "地址管理" |
| | | JQ_currentViewController().jq_push(vc: vc) |
| | | } |
| | | } |
| | | |
| | | extension AddressManageVC:UITableViewDelegate{ |
| | | |
| | | } |
| | | |
| | | extension AddressManageVC:UITableViewDataSource{ |
| | | func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { |
| | | let cell = tableView.dequeueReusableCell(withIdentifier: "_AddressManageTCell") as! AddressManageTCell |
| | | cell.isFist = indexPath.row == 0 |
| | | cell.isLast = indexPath.row == 9 |
| | | cell.isDefault(indexPath.row == 0) |
| | | |
| | | cell.btn_edit.isHidden = addressManageType == .choose |
| | | cell.btn_delete.isHidden = addressManageType == .choose |
| | | cell.img_more.isHidden = addressManageType != .choose |
| | | cell.btn_default.isHidden = addressManageType == .choose |
| | | |
| | | return cell |
| | | } |
| | | |
| | | func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { |
| | | return 10 |
| | | } |
| | | |
| | | func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { |
| | | return 78 |
| | | } |
| | | } |
New file |
| | |
| | | // |
| | | // CoinRecordHistoryVC.swift |
| | | // DolphinEnglishLearnManager |
| | | // |
| | | // Created by 无故事王国 on 2024/5/20. |
| | | // |
| | | |
| | | import UIKit |
| | | import RxRelay |
| | | |
| | | class CoinRecordHistoryViewModel{ |
| | | var selectDate = BehaviorRelay<Date?>(value:nil) |
| | | } |
| | | |
| | | class CoinRecordHistoryVC: BaseVC { |
| | | |
| | | @IBOutlet weak var view_menuTitle: UIView! |
| | | @IBOutlet weak var tableView: UITableView! |
| | | @IBOutlet weak var label_coin: UILabel! |
| | | @IBOutlet weak var btn_selectDate: UIButton! |
| | | |
| | | private var viewModel = CoinRecordHistoryViewModel() |
| | | override func viewDidLoad() { |
| | | super.viewDidLoad() |
| | | |
| | | } |
| | | |
| | | override func setUI() { |
| | | super.setUI() |
| | | view_menuTitle.jq_addCorners(corner: [.topLeft,.topRight], radius: 20) |
| | | tableView.delegate = self |
| | | tableView.dataSource = self |
| | | tableView.register(UINib(nibName: "Home_1_TCell", bundle: nil), forCellReuseIdentifier: "_Home_1_TCell") |
| | | tableView.separatorStyle = .none |
| | | } |
| | | |
| | | override func setRx() { |
| | | viewModel.selectDate.subscribe(onNext: {[weak self]date in |
| | | if let d = date{ |
| | | let formartDate = String(format: "%ld-%02ld", d.jq_nowYear(),d.jq_nowMonth()) |
| | | self?.btn_selectDate.setTitle(formartDate, for: .normal) |
| | | } |
| | | }).disposed(by: disposeBag) |
| | | } |
| | | |
| | | |
| | | @IBAction func chooseDateTimeAction(_ sender: UIButton) { |
| | | let year = viewModel.selectDate.value?.jq_nowYear() ?? Date().jq_nowYear() |
| | | let month = viewModel.selectDate.value?.jq_nowMonth() ?? Date().jq_nowMonth() |
| | | BitrhdayPickerView.show(title: "查询时间", type: .YM, defaultYear: year, defaultMonth: month, defaultDay: 0, minYear: 0) {[weak self] date in |
| | | self?.viewModel.selectDate.accept(date) |
| | | } |
| | | } |
| | | } |
| | | |
| | | extension CoinRecordHistoryVC:UITableViewDelegate{ |
| | | |
| | | } |
| | | |
| | | extension CoinRecordHistoryVC:UITableViewDataSource{ |
| | | func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { |
| | | let cell = tableView.dequeueReusableCell(withIdentifier: "_Home_1_TCell", for: indexPath) as! Home_1_TCell |
| | | |
| | | if indexPath.row % 2 == 0{ |
| | | cell.contentView.backgroundColor = UIColor(hexStr: "#F4FAFE") |
| | | }else{ |
| | | cell.contentView.backgroundColor = .white |
| | | } |
| | | |
| | | return cell |
| | | } |
| | | |
| | | func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { |
| | | return 5 |
| | | } |
| | | |
| | | func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { |
| | | return 40 |
| | | } |
| | | } |
New file |
| | |
| | | <?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="ipad12_9" orientation="landscape" layout="fullscreen" appearance="light"/> |
| | | <dependencies> |
| | | <deployment identifier="iOS"/> |
| | | <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22684"/> |
| | | <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="CoinRecordHistoryVC" customModule="DolphinEnglishLearnStudent" customModuleProvider="target"> |
| | | <connections> |
| | | <outlet property="btn_selectDate" destination="3Jm-Of-Dcm" id="qsy-0i-QGG"/> |
| | | <outlet property="label_coin" destination="8QY-yj-pnL" id="zMl-nz-9AN"/> |
| | | <outlet property="tableView" destination="CXF-w6-yPv" id="p0a-Ff-dbJ"/> |
| | | <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/> |
| | | <outlet property="view_menuTitle" destination="u4d-62-Qi9" id="5Zo-Rn-Ec7"/> |
| | | </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="1366" height="1024"/> |
| | | <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> |
| | | <subviews> |
| | | <stackView opaque="NO" contentMode="scaleToFill" spacing="6" translatesAutoresizingMaskIntoConstraints="NO" id="6id-1t-5Uz"> |
| | | <rect key="frame" x="549" y="47" width="268.5" height="36"/> |
| | | <subviews> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="查询时间:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="1YG-qG-YRK"> |
| | | <rect key="frame" x="0.0" y="0.0" width="64.5" height="36"/> |
| | | <fontDescription key="fontDescription" type="system" pointSize="14"/> |
| | | <nil key="textColor"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="sGC-8I-HbA"> |
| | | <rect key="frame" x="70.5" y="0.0" width="156" height="36"/> |
| | | <subviews> |
| | | <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="3Jm-Of-Dcm"> |
| | | <rect key="frame" x="16" y="3.5" width="135" 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.16862745098039217" green="0.17254901960784313" blue="0.23529411764705882" alpha="0.52000000000000002" colorSpace="custom" customColorSpace="sRGB"/> |
| | | </state> |
| | | <connections> |
| | | <action selector="chooseDateTimeAction:" destination="-1" eventType="touchUpInside" id="COg-wp-7Xr"/> |
| | | </connections> |
| | | </button> |
| | | </subviews> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstItem="3Jm-Of-Dcm" firstAttribute="centerY" secondItem="sGC-8I-HbA" secondAttribute="centerY" id="KQC-2f-zzM"/> |
| | | <constraint firstAttribute="width" constant="156" id="LAD-QX-hQR"/> |
| | | <constraint firstAttribute="trailing" secondItem="3Jm-Of-Dcm" secondAttribute="trailing" constant="5" id="PAm-7m-R1M"/> |
| | | <constraint firstItem="3Jm-Of-Dcm" firstAttribute="leading" secondItem="sGC-8I-HbA" secondAttribute="leading" constant="16" id="bcE-Pm-Edg"/> |
| | | </constraints> |
| | | <userDefinedRuntimeAttributes> |
| | | <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> |
| | | <real key="value" value="8"/> |
| | | </userDefinedRuntimeAttribute> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="ld_borderWidthXIB"> |
| | | <real key="value" value="1"/> |
| | | </userDefinedRuntimeAttribute> |
| | | <userDefinedRuntimeAttribute type="color" keyPath="ld_borderColorXIB"> |
| | | <color key="value" red="0.9137254901960784" green="0.89411764705882346" blue="0.89411764705882346" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | </userDefinedRuntimeAttribute> |
| | | </userDefinedRuntimeAttributes> |
| | | </view> |
| | | <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="8B4-O0-0IK"> |
| | | <rect key="frame" x="232.5" y="0.0" width="36" height="36"/> |
| | | <constraints> |
| | | <constraint firstAttribute="width" constant="36" id="L2s-63-TnI"/> |
| | | </constraints> |
| | | <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> |
| | | <state key="normal" image="btn_refresh"/> |
| | | </button> |
| | | </subviews> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="36" id="0vz-SC-Yss"/> |
| | | </constraints> |
| | | </stackView> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="h41-Kv-0dU"> |
| | | <rect key="frame" x="376.5" y="99" width="613" height="136"/> |
| | | <subviews> |
| | | <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" distribution="equalSpacing" spacing="8" translatesAutoresizingMaskIntoConstraints="NO" id="n0n-N2-UC2"> |
| | | <rect key="frame" x="270" y="29.5" width="73.5" height="77"/> |
| | | <subviews> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="8QY-yj-pnL"> |
| | | <rect key="frame" x="0.0" y="0.0" width="73.5" height="44"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="44" id="Wff-NG-0ls"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" name="Impact" family="Impact" pointSize="36"/> |
| | | <color key="textColor" red="0.96862745098039216" green="0.27450980392156865" blue="0.1764705882352941" 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="dfZ-HK-g71"> |
| | | <rect key="frame" x="0.0" y="52" width="73.5" height="25"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="25" id="k1W-R8-qMN"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="18"/> |
| | | <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.84999999999999998" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | </subviews> |
| | | </stackView> |
| | | </subviews> |
| | | <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
| | | <constraints> |
| | | <constraint firstItem="n0n-N2-UC2" firstAttribute="centerX" secondItem="h41-Kv-0dU" secondAttribute="centerX" id="FYl-hh-y1q"/> |
| | | <constraint firstAttribute="height" constant="136" id="GBC-Og-Xcx"/> |
| | | <constraint firstItem="n0n-N2-UC2" firstAttribute="centerY" secondItem="h41-Kv-0dU" secondAttribute="centerY" id="KqG-kC-da6"/> |
| | | <constraint firstAttribute="width" secondItem="h41-Kv-0dU" secondAttribute="height" multiplier="1:0.222" id="Tpp-Vn-C6t"/> |
| | | </constraints> |
| | | <userDefinedRuntimeAttributes> |
| | | <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> |
| | | <real key="value" value="8"/> |
| | | </userDefinedRuntimeAttribute> |
| | | </userDefinedRuntimeAttributes> |
| | | </view> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="u4d-62-Qi9"> |
| | | <rect key="frame" x="376.5" y="263" width="613" height="46"/> |
| | | <subviews> |
| | | <stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" translatesAutoresizingMaskIntoConstraints="NO" id="cEO-p5-yCx"> |
| | | <rect key="frame" x="0.0" y="0.0" width="613" height="46"/> |
| | | <subviews> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="时间" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="fG1-r6-ybo"> |
| | | <rect key="frame" x="0.0" y="0.0" width="153.5" height="46"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/> |
| | | <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="数量" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="M7l-Zc-0F0"> |
| | | <rect key="frame" x="153.5" y="0.0" width="153" height="46"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/> |
| | | <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="方式" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="PyX-EF-UjE"> |
| | | <rect key="frame" x="306.5" y="0.0" width="153" height="46"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/> |
| | | <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="类型" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="0H0-RS-1GQ"> |
| | | <rect key="frame" x="459.5" y="0.0" width="153.5" height="46"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/> |
| | | <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | </subviews> |
| | | </stackView> |
| | | </subviews> |
| | | <color key="backgroundColor" red="0.25490196078431371" green="0.63529411764705879" blue="0.92156862745098034" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <constraints> |
| | | <constraint firstItem="cEO-p5-yCx" firstAttribute="leading" secondItem="u4d-62-Qi9" secondAttribute="leading" id="0A6-iH-PQE"/> |
| | | <constraint firstAttribute="bottom" secondItem="cEO-p5-yCx" secondAttribute="bottom" id="QXW-cy-YUz"/> |
| | | <constraint firstItem="cEO-p5-yCx" firstAttribute="top" secondItem="u4d-62-Qi9" secondAttribute="top" id="gDT-cU-ETt"/> |
| | | <constraint firstAttribute="trailing" secondItem="cEO-p5-yCx" secondAttribute="trailing" id="qSE-H1-fkq"/> |
| | | <constraint firstAttribute="height" constant="46" id="tuz-lU-gFh"/> |
| | | </constraints> |
| | | </view> |
| | | <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="-1" estimatedSectionHeaderHeight="-1" sectionFooterHeight="-1" estimatedSectionFooterHeight="-1" translatesAutoresizingMaskIntoConstraints="NO" id="CXF-w6-yPv"> |
| | | <rect key="frame" x="376.5" y="309" width="613" height="715"/> |
| | | <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
| | | </tableView> |
| | | </subviews> |
| | | <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstItem="u4d-62-Qi9" firstAttribute="trailing" secondItem="h41-Kv-0dU" secondAttribute="trailing" id="3M6-RK-l7e"/> |
| | | <constraint firstItem="6id-1t-5Uz" firstAttribute="top" secondItem="fnl-2z-Ty3" secondAttribute="top" constant="27" id="6Ot-zv-91p"/> |
| | | <constraint firstItem="h41-Kv-0dU" firstAttribute="top" secondItem="6id-1t-5Uz" secondAttribute="bottom" constant="16" id="6tF-6k-FWQ"/> |
| | | <constraint firstItem="u4d-62-Qi9" firstAttribute="top" secondItem="h41-Kv-0dU" secondAttribute="bottom" constant="28" id="I9P-mS-b4V"/> |
| | | <constraint firstItem="CXF-w6-yPv" firstAttribute="trailing" secondItem="u4d-62-Qi9" secondAttribute="trailing" id="Ozv-B7-3Fh"/> |
| | | <constraint firstItem="fnl-2z-Ty3" firstAttribute="bottom" secondItem="CXF-w6-yPv" secondAttribute="bottom" id="S4K-IA-ZQi"/> |
| | | <constraint firstItem="6id-1t-5Uz" firstAttribute="centerX" secondItem="fnl-2z-Ty3" secondAttribute="centerX" id="bFz-1p-Q89"/> |
| | | <constraint firstItem="h41-Kv-0dU" firstAttribute="centerX" secondItem="fnl-2z-Ty3" secondAttribute="centerX" id="hSb-wb-caJ"/> |
| | | <constraint firstItem="u4d-62-Qi9" firstAttribute="leading" secondItem="h41-Kv-0dU" secondAttribute="leading" id="m8w-t5-Fl0"/> |
| | | <constraint firstItem="CXF-w6-yPv" firstAttribute="leading" secondItem="u4d-62-Qi9" secondAttribute="leading" id="mNz-Os-vxP"/> |
| | | <constraint firstItem="CXF-w6-yPv" firstAttribute="top" secondItem="u4d-62-Qi9" secondAttribute="bottom" id="t3Y-1o-1bl"/> |
| | | </constraints> |
| | | <point key="canvasLocation" x="100" y="21"/> |
| | | </view> |
| | | </objects> |
| | | <resources> |
| | | <image name="btn_refresh" width="21" height="22"/> |
| | | <systemColor name="systemBackgroundColor"> |
| | | <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
| | | </systemColor> |
| | | </resources> |
| | | </document> |
New file |
| | |
| | | // |
| | | // ExchangeRecordHistoryVC.swift |
| | | // DolphinEnglishLearnManager |
| | | // |
| | | // Created by 无故事王国 on 2024/5/20. |
| | | // |
| | | |
| | | import UIKit |
| | | |
| | | class ExchangeRecordHistoryVC: BaseVC { |
| | | |
| | | private var tableView:UITableView! |
| | | |
| | | override func viewDidLoad() { |
| | | super.viewDidLoad() |
| | | |
| | | } |
| | | |
| | | override func setUI() { |
| | | super.setUI() |
| | | tableView = UITableView(frame: .zero, style: .plain) |
| | | tableView.delegate = self |
| | | tableView.dataSource = self |
| | | tableView.backgroundColor = .clear |
| | | tableView.separatorStyle = .none |
| | | tableView.register(UINib(nibName: "GoodsItemTCell", bundle: nil), forCellReuseIdentifier: "_GoodsItemTCell") |
| | | view.addSubview(tableView) |
| | | tableView.snp.makeConstraints { make in |
| | | make.left.equalTo(239 * Config.RatioW) |
| | | make.right.equalTo(-239 * Config.RatioW) |
| | | make.top.equalTo(self.view.safeAreaLayoutGuide.snp.top).offset(27 * Config.RatioW) |
| | | make.bottom.equalTo(self.view.safeAreaLayoutGuide.snp.bottom).offset(-5) |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | extension ExchangeRecordHistoryVC:UITableViewDelegate{ |
| | | |
| | | } |
| | | |
| | | extension ExchangeRecordHistoryVC:UITableViewDataSource{ |
| | | func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { |
| | | let cell = tableView.dequeueReusableCell(withIdentifier: "_GoodsItemTCell") as! GoodsItemTCell |
| | | return cell |
| | | } |
| | | |
| | | func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { |
| | | return 10 |
| | | } |
| | | |
| | | func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { |
| | | return 221 * Config.RatioH |
| | | } |
| | | |
| | | |
| | | } |
New file |
| | |
| | | // |
| | | // StudyVC.swift |
| | | // DolphinEnglishLearnStudent |
| | | // |
| | | // Created by 无故事王国 on 2024/5/22. |
| | | // |
| | | |
| | | import UIKit |
| | | |
| | | class StudyVC: BaseVC { |
| | | @IBOutlet weak var view_menu: UIView! |
| | | @IBOutlet weak var tableView: UITableView! |
| | | |
| | | override func viewDidLoad() { |
| | | super.viewDidLoad() |
| | | |
| | | } |
| | | |
| | | override func setUI() { |
| | | super.setUI() |
| | | tableView.delegate = self |
| | | tableView.dataSource = self |
| | | tableView.register(UINib(nibName: "Home_1_TCell", bundle: nil), forCellReuseIdentifier: "_Home_1_TCell") |
| | | tableView.separatorStyle = .none |
| | | |
| | | } |
| | | |
| | | override func viewDidLayoutSubviews() { |
| | | super.viewDidLayoutSubviews() |
| | | view_menu.jq_addCorners(corner: [.topLeft,.topRight], radius: 20) |
| | | } |
| | | } |
| | | |
| | | extension StudyVC:UITableViewDelegate{ |
| | | |
| | | } |
| | | |
| | | extension StudyVC:UITableViewDataSource{ |
| | | func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { |
| | | let cell = tableView.dequeueReusableCell(withIdentifier: "_Home_1_TCell", for: indexPath) as! Home_1_TCell |
| | | |
| | | if indexPath.row % 2 == 0{ |
| | | cell.contentView.backgroundColor = UIColor(hexStr: "#F4FAFE") |
| | | }else{ |
| | | cell.contentView.backgroundColor = .white |
| | | } |
| | | |
| | | return cell |
| | | } |
| | | |
| | | func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { |
| | | return 5 |
| | | } |
| | | |
| | | func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { |
| | | return 40 |
| | | } |
| | | } |
New file |
| | |
| | | <?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="ipad10_9rounded" orientation="landscape" layout="fullscreen" appearance="light"/> |
| | | <dependencies> |
| | | <deployment identifier="iOS"/> |
| | | <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22684"/> |
| | | <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="StudyVC" customModule="DolphinEnglishLearnStudent" customModuleProvider="target"> |
| | | <connections> |
| | | <outlet property="tableView" destination="byc-YG-6j2" id="BDN-57-WDq"/> |
| | | <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/> |
| | | <outlet property="view_menu" destination="1HY-aY-obo" id="m6s-HL-ZwQ"/> |
| | | </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="1180" height="820"/> |
| | | <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> |
| | | <subviews> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="x3k-K2-glo"> |
| | | <rect key="frame" x="283.5" y="52" width="613" height="136"/> |
| | | <subviews> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="当前进度:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="6E8-Ab-gRb"> |
| | | <rect key="frame" x="22" y="17" width="96.5" height="29"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="29" id="bIR-GJ-Usg"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="21"/> |
| | | <color key="textColor" red="0.16862745098039217" green="0.21176470588235294" blue="0.28235294117647058" 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="SYT-bU-Qar"> |
| | | <rect key="frame" x="491.5" y="17" width="96.5" height="29"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="29" id="0YH-5q-Ccp"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="21"/> |
| | | <color key="textColor" red="0.16862745100000001" green="0.21176470589999999" blue="0.28235294119999998" 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="crR-lR-Tnj"> |
| | | <rect key="frame" x="23" y="58" width="14.5" height="22"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="22" id="QIB-yI-iy3"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" pointSize="16"/> |
| | | <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="r1z-jS-qK4"> |
| | | <rect key="frame" x="23" y="92" width="14.5" height="22"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="22" id="hFD-0q-Uwy"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" pointSize="16"/> |
| | | <nil key="textColor"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | </subviews> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstAttribute="width" secondItem="x3k-K2-glo" secondAttribute="height" multiplier="1:0.222" id="3C0-9H-hAq"/> |
| | | <constraint firstItem="r1z-jS-qK4" firstAttribute="top" secondItem="crR-lR-Tnj" secondAttribute="bottom" constant="12" id="4NZ-ha-9oF"/> |
| | | <constraint firstItem="6E8-Ab-gRb" firstAttribute="top" secondItem="x3k-K2-glo" secondAttribute="top" constant="17" id="B2L-vZ-JVR"/> |
| | | <constraint firstItem="crR-lR-Tnj" firstAttribute="leading" secondItem="x3k-K2-glo" secondAttribute="leading" constant="23" id="KW4-Yy-p5I"/> |
| | | <constraint firstItem="crR-lR-Tnj" firstAttribute="top" secondItem="6E8-Ab-gRb" secondAttribute="bottom" constant="12" id="Nna-34-c4E"/> |
| | | <constraint firstAttribute="height" constant="136" id="SnI-6o-cMn"/> |
| | | <constraint firstItem="r1z-jS-qK4" firstAttribute="leading" secondItem="crR-lR-Tnj" secondAttribute="leading" id="Su0-0g-Pl4"/> |
| | | <constraint firstItem="6E8-Ab-gRb" firstAttribute="leading" secondItem="x3k-K2-glo" secondAttribute="leading" constant="22" id="hVW-hh-43s"/> |
| | | <constraint firstItem="SYT-bU-Qar" firstAttribute="centerY" secondItem="6E8-Ab-gRb" secondAttribute="centerY" id="hbg-me-fve"/> |
| | | <constraint firstAttribute="trailing" secondItem="SYT-bU-Qar" secondAttribute="trailing" constant="25" id="hqy-r2-ptR"/> |
| | | </constraints> |
| | | <userDefinedRuntimeAttributes> |
| | | <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> |
| | | <real key="value" value="8"/> |
| | | </userDefinedRuntimeAttribute> |
| | | </userDefinedRuntimeAttributes> |
| | | </view> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Q0Z-Ir-Pcf"> |
| | | <rect key="frame" x="283.5" y="197" width="613" height="476"/> |
| | | <subviews> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="游戏测试成绩" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="7a7-SF-J1X"> |
| | | <rect key="frame" x="22" y="23" width="128.5" height="25.5"/> |
| | | <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="21"/> |
| | | <nil key="textColor"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="1HY-aY-obo"> |
| | | <rect key="frame" x="0.0" y="68.5" width="613" height="46"/> |
| | | <subviews> |
| | | <stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" translatesAutoresizingMaskIntoConstraints="NO" id="mSL-o7-Koy"> |
| | | <rect key="frame" x="0.0" y="0.0" width="613" height="46"/> |
| | | <subviews> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="时间" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="1j1-3c-m3Y"> |
| | | <rect key="frame" x="0.0" y="0.0" width="153.5" height="46"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/> |
| | | <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="游戏名称" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="L9n-Bg-sY1"> |
| | | <rect key="frame" x="153.5" y="0.0" width="153" height="46"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/> |
| | | <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="用时时间" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Vz2-MW-iZr"> |
| | | <rect key="frame" x="306.5" y="0.0" width="153" height="46"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/> |
| | | <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="正确率" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="BxB-1C-twj"> |
| | | <rect key="frame" x="459.5" y="0.0" width="153.5" height="46"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/> |
| | | <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | </subviews> |
| | | </stackView> |
| | | </subviews> |
| | | <color key="backgroundColor" red="0.25490196079999999" green="0.63529411759999999" blue="0.92156862750000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <constraints> |
| | | <constraint firstAttribute="trailing" secondItem="mSL-o7-Koy" secondAttribute="trailing" id="Pox-yQ-sHb"/> |
| | | <constraint firstAttribute="bottom" secondItem="mSL-o7-Koy" secondAttribute="bottom" id="Usd-cY-Pwz"/> |
| | | <constraint firstItem="mSL-o7-Koy" firstAttribute="leading" secondItem="1HY-aY-obo" secondAttribute="leading" id="lXF-UO-EGS"/> |
| | | <constraint firstAttribute="height" constant="46" id="pxa-lz-L66"/> |
| | | <constraint firstItem="mSL-o7-Koy" firstAttribute="top" secondItem="1HY-aY-obo" secondAttribute="top" id="w4F-kc-2Ia"/> |
| | | </constraints> |
| | | </view> |
| | | <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="-1" estimatedSectionHeaderHeight="-1" sectionFooterHeight="-1" estimatedSectionFooterHeight="-1" translatesAutoresizingMaskIntoConstraints="NO" id="byc-YG-6j2"> |
| | | <rect key="frame" x="0.0" y="114.5" width="613" height="361.5"/> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | </tableView> |
| | | </subviews> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstItem="7a7-SF-J1X" firstAttribute="top" secondItem="Q0Z-Ir-Pcf" secondAttribute="top" constant="23" id="5ek-LF-x9w"/> |
| | | <constraint firstItem="1HY-aY-obo" firstAttribute="leading" secondItem="Q0Z-Ir-Pcf" secondAttribute="leading" id="9VC-yK-0f0"/> |
| | | <constraint firstItem="byc-YG-6j2" firstAttribute="leading" secondItem="Q0Z-Ir-Pcf" secondAttribute="leading" id="Nvf-2P-aHG"/> |
| | | <constraint firstItem="byc-YG-6j2" firstAttribute="top" secondItem="1HY-aY-obo" secondAttribute="bottom" id="Qb0-c6-2AJ"/> |
| | | <constraint firstItem="1HY-aY-obo" firstAttribute="top" secondItem="7a7-SF-J1X" secondAttribute="bottom" constant="20" id="Rd1-5t-1RW"/> |
| | | <constraint firstItem="7a7-SF-J1X" firstAttribute="leading" secondItem="Q0Z-Ir-Pcf" secondAttribute="leading" constant="22" id="XkC-cE-SMK"/> |
| | | <constraint firstAttribute="bottom" secondItem="byc-YG-6j2" secondAttribute="bottom" id="bzm-73-grP"/> |
| | | <constraint firstAttribute="trailing" secondItem="byc-YG-6j2" secondAttribute="trailing" id="tqr-zm-xgY"/> |
| | | <constraint firstAttribute="trailing" secondItem="1HY-aY-obo" secondAttribute="trailing" id="uNS-ha-LB1"/> |
| | | </constraints> |
| | | <userDefinedRuntimeAttributes> |
| | | <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> |
| | | <real key="value" value="8"/> |
| | | </userDefinedRuntimeAttribute> |
| | | </userDefinedRuntimeAttributes> |
| | | </view> |
| | | </subviews> |
| | | <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstItem="x3k-K2-glo" firstAttribute="centerX" secondItem="fnl-2z-Ty3" secondAttribute="centerX" id="2VV-rc-ZEk"/> |
| | | <constraint firstItem="x3k-K2-glo" firstAttribute="top" secondItem="fnl-2z-Ty3" secondAttribute="top" constant="28" id="3SN-hj-aGB"/> |
| | | <constraint firstItem="Q0Z-Ir-Pcf" firstAttribute="trailing" secondItem="x3k-K2-glo" secondAttribute="trailing" id="WBL-S4-VeV"/> |
| | | <constraint firstItem="fnl-2z-Ty3" firstAttribute="bottom" secondItem="Q0Z-Ir-Pcf" secondAttribute="bottom" constant="127" id="eYq-Uy-Tiy"/> |
| | | <constraint firstItem="Q0Z-Ir-Pcf" firstAttribute="leading" secondItem="x3k-K2-glo" secondAttribute="leading" id="qYd-pz-O8f"/> |
| | | <constraint firstItem="Q0Z-Ir-Pcf" firstAttribute="top" secondItem="x3k-K2-glo" secondAttribute="bottom" constant="9" id="rR1-Ia-raL"/> |
| | | </constraints> |
| | | <userDefinedRuntimeAttributes> |
| | | <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> |
| | | <real key="value" value="8"/> |
| | | </userDefinedRuntimeAttribute> |
| | | </userDefinedRuntimeAttributes> |
| | | <point key="canvasLocation" x="139.83050847457628" y="19.756097560975608"/> |
| | | </view> |
| | | </objects> |
| | | <resources> |
| | | <systemColor name="systemBackgroundColor"> |
| | | <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
| | | </systemColor> |
| | | </resources> |
| | | </document> |
New file |
| | |
| | | // |
| | | // CommonWebVC.swift |
| | | // DolphinEnglishLearnManager |
| | | // |
| | | // Created by 无故事王国 on 2024/5/14. |
| | | // |
| | | |
| | | import UIKit |
| | | import WebKit |
| | | |
| | | class CommonWebVC: BaseVC { |
| | | |
| | | enum CommonWebType{ |
| | | case logoff |
| | | case userAgreement |
| | | case privacyAgreement |
| | | case userGuide |
| | | } |
| | | |
| | | private var type:CommonWebType! |
| | | |
| | | init(type:CommonWebType) { |
| | | super.init(nibName: nil, bundle: nil) |
| | | self.type = type |
| | | } |
| | | |
| | | required init?(coder: NSCoder) { |
| | | fatalError("init(coder:) has not been implemented") |
| | | } |
| | | |
| | | override func viewDidLoad() { |
| | | super.viewDidLoad() |
| | | |
| | | } |
| | | |
| | | override func setUI() { |
| | | super.setUI() |
| | | |
| | | |
| | | if type == .logoff{ |
| | | let completeBtn = UIButton(type: .custom) |
| | | completeBtn.jq_cornerRadius = 8 |
| | | completeBtn.addTarget(self, action: #selector(handleAction), for: .touchUpInside) |
| | | completeBtn.setTitleColor(.white, for: .normal) |
| | | completeBtn.titleLabel?.font = UIFont.systemFont(ofSize: 16, weight: .medium) |
| | | completeBtn.setTitle("确认(10s)", for: .normal) |
| | | completeBtn.backgroundColor = UIColor(hexStr: "#41A2EB") |
| | | view.addSubview(completeBtn) |
| | | completeBtn.snp.makeConstraints { make in |
| | | make.width.equalTo(316) |
| | | make.centerX.equalToSuperview() |
| | | make.bottom.equalToSuperview().offset(-91) |
| | | make.height.equalTo(47) |
| | | } |
| | | |
| | | var time = 10 //倒计时时间 |
| | | let queue = DispatchQueue.global() |
| | | let timer = DispatchSource.makeTimerSource(flags: [], queue: queue) |
| | | timer.schedule(wallDeadline: DispatchWallTime.now(), repeating: .seconds(1)); |
| | | timer.setEventHandler(handler: { |
| | | if time <= 0 { |
| | | timer.cancel() |
| | | DispatchQueue.main.async(execute: { |
| | | completeBtn.setTitle("确认", for: .normal) |
| | | completeBtn.isUserInteractionEnabled = true |
| | | completeBtn.backgroundColor = UIColor(hexStr: "#41A2EB") |
| | | }); |
| | | }else { |
| | | DispatchQueue.main.async(execute: { |
| | | completeBtn.setTitle("确认\(time)s", for: .normal) |
| | | completeBtn.isUserInteractionEnabled = false |
| | | completeBtn.backgroundColor = .gray |
| | | }); |
| | | } |
| | | time -= 1 |
| | | }); |
| | | timer.resume() |
| | | } |
| | | } |
| | | |
| | | @objc func handleAction(sender:UIButton){ |
| | | CommonAlertView.show(content:"确认注销当前登录账户吗?") { |
| | | |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | // |
| | | // BitrhdayPickerView.swift |
| | | // JKFitness |
| | | // |
| | | // Created by 无故事王国 on 2024/2/20. |
| | | // |
| | | |
| | | import UIKit |
| | | import JQTools |
| | | |
| | | class BitrhdayPickerView: UIView { |
| | | |
| | | enum DateType { |
| | | case YMD |
| | | case YM |
| | | } |
| | | |
| | | private var view_content:UIView = { |
| | | let v = UIView() |
| | | v.backgroundColor = .white |
| | | return v |
| | | }() |
| | | |
| | | private var label_title:UILabel = { |
| | | let label = UILabel() |
| | | label.font = .systemFont(ofSize: 18, weight: .medium) |
| | | label.textColor = .black.withAlphaComponent(0.8) |
| | | return label |
| | | }() |
| | | |
| | | private var btn_close:UIButton = { |
| | | let btn = UIButton(type: .custom) |
| | | btn.setImage(UIImage(named: "btn_close_circle"), for: .normal) |
| | | return btn |
| | | }() |
| | | |
| | | private var btn_complete:UIButton = { |
| | | let btn = UIButton(type: .custom) |
| | | btn.setTitle("确认", for: .normal) |
| | | btn.titleLabel?.font = UIFont.systemFont(ofSize: 14, weight: .medium) |
| | | btn.setTitleColor(.white, for: .normal) |
| | | btn.backgroundColor = Config.ThemeColor |
| | | btn.jq_cornerRadius = 8 |
| | | return btn |
| | | }() |
| | | |
| | | |
| | | private var picker:UIPickerView = { |
| | | let pickerView = UIPickerView() |
| | | return pickerView |
| | | }() |
| | | |
| | | |
| | | private var minYear:Int = 1960 |
| | | private var maxYear:Int = Date().jq_nowYear() + 1 |
| | | private var defaultYear:Int? |
| | | private var defaultMonth:Int? |
| | | private var defaultDay:Int? |
| | | private var resultValue:Double = 0 |
| | | private var type:DateType! |
| | | private var clouse:((Date)->Void)! |
| | | |
| | | override init(frame: CGRect) { |
| | | super.init(frame: frame) |
| | | backgroundColor = UIColor.black.withAlphaComponent(0) |
| | | addSubview(view_content) |
| | | view_content.snp.makeConstraints { make in |
| | | make.left.right.equalToSuperview() |
| | | make.bottom.equalToSuperview().offset(JQ_ScreenW * 0.3278) |
| | | make.height.equalTo(JQ_ScreenW * 0.3278) |
| | | } |
| | | |
| | | |
| | | view_content.addSubview(btn_close) |
| | | btn_close.addTarget(self, action: #selector(closeAction), for: .touchUpInside) |
| | | btn_close.snp.makeConstraints { make in |
| | | make.top.equalTo(10) |
| | | make.right.equalTo(-11) |
| | | make.width.height.equalTo(23) |
| | | } |
| | | |
| | | view_content.addSubview(label_title) |
| | | label_title.snp.makeConstraints { make in |
| | | make.top.equalTo(30) |
| | | make.centerX.equalToSuperview() |
| | | make.height.equalTo(18) |
| | | } |
| | | |
| | | layoutIfNeeded() |
| | | } |
| | | |
| | | private func setUI(){ |
| | | var items = Array<String>() |
| | | if type == .YMD{ |
| | | items = ["年","月","日"] |
| | | }else{ |
| | | items = ["年","月"] |
| | | } |
| | | |
| | | let stackView = UIStackView() |
| | | stackView.axis = .horizontal |
| | | stackView.distribution = .fillEqually |
| | | stackView.spacing = 113 |
| | | view_content.addSubview(stackView) |
| | | stackView.snp.makeConstraints { make in |
| | | make.top.equalTo(label_title.snp.bottom).offset(27) |
| | | make.height.equalTo(25) |
| | | make.centerX.equalToSuperview() |
| | | } |
| | | |
| | | for (_,v) in items.enumerated(){ |
| | | let label = UILabel() |
| | | label.text = v |
| | | label.font = UIFont.systemFont(ofSize: 18, weight: .medium) |
| | | label.textColor = .black.withAlphaComponent(0.8) |
| | | label.textAlignment = .center |
| | | stackView.addArrangedSubview(label) |
| | | } |
| | | |
| | | view_content.addSubview(btn_complete) |
| | | btn_complete.snp.makeConstraints { make in |
| | | make.bottom.equalToSuperview().offset(-UIDevice.jq_safeEdges.bottom) |
| | | make.centerX.equalToSuperview() |
| | | make.width.equalTo(JQ_ScreenW * 0.1487) |
| | | make.height.equalTo(47) |
| | | } |
| | | |
| | | view_content.addSubview(picker) |
| | | picker.delegate = self |
| | | picker.dataSource = self |
| | | picker.snp.makeConstraints { make in |
| | | make.top.equalTo(label_title.snp.bottom).offset(50) |
| | | make.bottom.equalTo(btn_complete.snp.top) |
| | | make.centerX.equalToSuperview() |
| | | } |
| | | |
| | | btn_complete.addTarget(self, action: #selector(completeAction), for: .touchUpInside) |
| | | } |
| | | |
| | | required init?(coder: NSCoder) { |
| | | fatalError("init(coder:) has not been implemented") |
| | | } |
| | | |
| | | static func show(title:String,type:DateType,defaultYear:Int? = nil,defaultMonth:Int? = nil,defaultDay:Int? = nil,minYear:Int = 1960,clouse:@escaping (Date)->Void){ |
| | | let pickerView = BitrhdayPickerView(frame: sceneDelegate?.window?.frame ?? .zero) |
| | | pickerView.minYear = minYear |
| | | pickerView.clouse = clouse |
| | | pickerView.label_title.text = title |
| | | pickerView.defaultYear = defaultYear |
| | | pickerView.defaultMonth = defaultMonth |
| | | pickerView.defaultDay = defaultDay |
| | | pickerView.type = type |
| | | sceneDelegate?.window?.addSubview(pickerView) |
| | | pickerView.setUI() |
| | | |
| | | UIView.animate(withDuration: 0.35) { |
| | | pickerView.backgroundColor = UIColor.black.withAlphaComponent(0.7) |
| | | pickerView.view_content.snp.updateConstraints { make in |
| | | make.bottom.equalToSuperview() |
| | | } |
| | | pickerView.layoutIfNeeded() |
| | | }completion: { _ in |
| | | pickerView.picker.reloadAllComponents() |
| | | |
| | | switch type { |
| | | case .YMD: |
| | | if defaultDay != nil{ |
| | | pickerView.picker.selectRow(defaultDay! - 1, inComponent: 2, animated: true) |
| | | } |
| | | fallthrough |
| | | case .YM: |
| | | if defaultYear != nil{ |
| | | pickerView.picker.selectRow(defaultYear! - pickerView.minYear, inComponent: 0, animated: true) |
| | | } |
| | | if defaultMonth != nil{ |
| | | pickerView.picker.selectRow(defaultMonth! - 1, inComponent: 1, animated: true) |
| | | } |
| | | } |
| | | pickerView.picker.reloadAllComponents() |
| | | } |
| | | } |
| | | |
| | | @objc func closeAction(){ |
| | | UIView.animate(withDuration: 0.35) { |
| | | self.backgroundColor = UIColor.black.withAlphaComponent(0) |
| | | self.view_content.snp.updateConstraints { make in |
| | | make.bottom.equalToSuperview().offset(JQ_ScreenW * 0.3278) |
| | | } |
| | | self.layoutIfNeeded() |
| | | }completion: { _ in |
| | | self.removeFromSuperview() |
| | | } |
| | | } |
| | | |
| | | @objc func completeAction(){ |
| | | let year = picker.selectedRow(inComponent: 0) + minYear |
| | | let month = picker.selectedRow(inComponent: 1) + 1 |
| | | |
| | | var day = 1 |
| | | if type == .YMD{ |
| | | day = picker.selectedRow(inComponent: 2) + 1 |
| | | } |
| | | |
| | | clouse(Date.jq_format(year: year, month: month, day: day,hour: 0,minute: 0,second: 0)!) |
| | | closeAction() |
| | | } |
| | | } |
| | | |
| | | extension BitrhdayPickerView:UIPickerViewDelegate & UIPickerViewDataSource{ |
| | | func numberOfComponents(in pickerView: UIPickerView) -> Int { |
| | | if type == .YMD{ |
| | | return 3 |
| | | } |
| | | if type == .YM{ |
| | | return 2 |
| | | } |
| | | return 0 |
| | | } |
| | | |
| | | func pickerView(_ pickerView: UIPickerView, rowHeightForComponent component: Int) -> CGFloat { |
| | | return 40 |
| | | } |
| | | |
| | | func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView { |
| | | |
| | | var resultLabel:UILabel? |
| | | if let label = view as? UILabel{ |
| | | resultLabel = label |
| | | }else{ |
| | | resultLabel = UILabel() |
| | | resultLabel!.font = UIFont.systemFont(ofSize: 18, weight: .semibold) |
| | | resultLabel!.textColor = UIColor(hexStr: "#3C3C3C") |
| | | resultLabel!.textAlignment = .center |
| | | } |
| | | |
| | | if component == 0{ |
| | | resultLabel!.text = "\(minYear + row)" |
| | | } |
| | | |
| | | if component == 1{ |
| | | resultLabel!.text = String(format: "%02ld", row + 1) |
| | | } |
| | | |
| | | if component == 2{ |
| | | |
| | | resultLabel!.text = String(format: "%02ld", row + 1) |
| | | } |
| | | |
| | | return resultLabel! |
| | | } |
| | | |
| | | func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { |
| | | if component == 0{ |
| | | return maxYear - minYear |
| | | } |
| | | |
| | | if component == 1{ |
| | | if pickerView.selectedRow(inComponent: 0) + minYear == Date().jq_nowYear(){ |
| | | return Date().jq_nowMonth() |
| | | } |
| | | return 12 |
| | | } |
| | | |
| | | if component == 2{ |
| | | if pickerView.selectedRow(inComponent: 0) + minYear == Date().jq_nowYear() && pickerView.selectedRow(inComponent: 1) + 1 == Date().jq_nowMonth(){ |
| | | return Date().jq_nowDay() |
| | | } |
| | | return Date.jq_getDays(pickerView.selectedRow(inComponent: 0) + minYear, pickerView.selectedRow(inComponent: 1) + 1) |
| | | } |
| | | |
| | | return 0 |
| | | } |
| | | |
| | | func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { |
| | | if component == 0{ |
| | | pickerView.reloadComponent(1) |
| | | if type == .YMD{ |
| | | pickerView.reloadComponent(2) |
| | | } |
| | | } |
| | | |
| | | if component == 1 && type == .YMD{ |
| | | pickerView.reloadComponent(2) |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | // |
| | | // CommonAlertView.swift |
| | | // DolphinEnglishLearnManager |
| | | // |
| | | // Created by 无故事王国 on 2024/5/17. |
| | | // |
| | | |
| | | import UIKit |
| | | |
| | | class CommonAlertView: UIView,JQNibView{ |
| | | |
| | | @IBOutlet weak var view_container: UIView! |
| | | @IBOutlet weak var label_content: UILabel! |
| | | @IBOutlet weak var btn_complete: UIButton! |
| | | @IBOutlet weak var btn_close: UIButton! |
| | | @IBOutlet weak var cons_btnClose: NSLayoutConstraint! |
| | | |
| | | private var clouse:(()->Void)! |
| | | override func awakeFromNib() { |
| | | super.awakeFromNib() |
| | | self.alpha = 0 |
| | | view_container.transform = .init(scaleX: 0.1, y: 0.1) |
| | | layoutIfNeeded() |
| | | } |
| | | |
| | | static func show(isSinple:Bool = false, content:String,clouse:@escaping ()->Void){ |
| | | let commonAlertView = CommonAlertView.jq_loadNibView() |
| | | sceneDelegate?.window?.addSubview(commonAlertView) |
| | | commonAlertView.label_content.text = content |
| | | commonAlertView.clouse = clouse |
| | | commonAlertView.frame = sceneDelegate?.window?.frame ?? .zero |
| | | |
| | | if isSinple{ |
| | | commonAlertView.btn_complete.isHidden = true |
| | | commonAlertView.cons_btnClose.constant = 219 * Config.RatioW |
| | | commonAlertView.btn_close.backgroundColor = Config.ThemeColor |
| | | commonAlertView.btn_close.jq_borderWidth = 0 |
| | | commonAlertView.btn_close.setTitleColor(.white, for: .normal) |
| | | } |
| | | |
| | | UIView.animate(withDuration: 0.4) { |
| | | commonAlertView.alpha = 1 |
| | | commonAlertView.view_container.transform = .init(translationX: 1.0, y: 1.0) |
| | | commonAlertView.layoutIfNeeded() |
| | | } |
| | | } |
| | | |
| | | @IBAction func closeAction(_ sender: UIButton) { |
| | | UIView.animate(withDuration: 0.4) { |
| | | self.alpha = 0 |
| | | self.view_container.transform = .init(scaleX: 0.1, y: 0.1) |
| | | } completion: { _ in |
| | | self.removeFromSuperview() |
| | | } |
| | | } |
| | | |
| | | @IBAction func completeAction(_ sender: UIButton) { |
| | | UIView.animate(withDuration: 0.4) { |
| | | self.alpha = 0 |
| | | self.view_container.transform = .init(scaleX: 0.1, y: 0.1) |
| | | } completion: { _ in |
| | | self.removeFromSuperview() |
| | | self.clouse() |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | <?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="ipad12_9" orientation="portrait" layout="fullscreen" appearance="light"/> |
| | | <dependencies> |
| | | <deployment identifier="iOS"/> |
| | | <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22684"/> |
| | | <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="DolphinEnglishLearnManager" customModuleProvider="target"> |
| | | <rect key="frame" x="0.0" y="0.0" width="1024" height="1366"/> |
| | | <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> |
| | | <subviews> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="iXV-rC-7jh"> |
| | | <rect key="frame" x="307.5" y="569" width="409" height="248.5"/> |
| | | <subviews> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="提示" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="lyG-sK-hpk"> |
| | | <rect key="frame" x="186" y="32" width="37" height="21.5"/> |
| | | <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="18"/> |
| | | <nil key="textColor"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <stackView opaque="NO" contentMode="scaleToFill" spacing="27" translatesAutoresizingMaskIntoConstraints="NO" id="4CG-pJ-vfV"> |
| | | <rect key="frame" x="67" y="182.5" width="275" height="40"/> |
| | | <subviews> |
| | | <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="eUg-Ri-V3v"> |
| | | <rect key="frame" x="0.0" y="0.0" width="124" height="40"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="40" id="8OA-Ib-Rfl"/> |
| | | <constraint firstAttribute="width" constant="124" id="Wam-9U-4f6"/> |
| | | </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="关闭"> |
| | | <color key="titleColor" red="0.25490196079999999" green="0.63529411759999999" blue="0.92156862750000001" 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="4"/> |
| | | </userDefinedRuntimeAttribute> |
| | | <userDefinedRuntimeAttribute type="color" keyPath="ld_borderColorXIB"> |
| | | <color key="value" red="0.25490196079999999" green="0.63529411759999999" blue="0.92156862750000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | </userDefinedRuntimeAttribute> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="ld_borderWidthXIB"> |
| | | <real key="value" value="1"/> |
| | | </userDefinedRuntimeAttribute> |
| | | </userDefinedRuntimeAttributes> |
| | | <connections> |
| | | <action selector="closeAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="QtB-fw-4O8"/> |
| | | </connections> |
| | | </button> |
| | | <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Qeb-KI-yJN"> |
| | | <rect key="frame" x="151" y="0.0" width="124" height="40"/> |
| | | <color key="backgroundColor" red="0.25490196079999999" green="0.63529411759999999" blue="0.92156862750000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="40" id="gA3-ga-PM7"/> |
| | | <constraint firstAttribute="width" constant="124" id="sTB-P5-uWe"/> |
| | | </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="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> |
| | | <real key="value" value="4"/> |
| | | </userDefinedRuntimeAttribute> |
| | | </userDefinedRuntimeAttributes> |
| | | <connections> |
| | | <action selector="completeAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="Frc-fB-CAw"/> |
| | | </connections> |
| | | </button> |
| | | </subviews> |
| | | </stackView> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="CVE-yP-zb4"> |
| | | <rect key="frame" x="20" y="99.5" width="369" height="20"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="20" id="nwo-4g-f7n"/> |
| | | </constraints> |
| | | <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> |
| | | </subviews> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstItem="4CG-pJ-vfV" firstAttribute="top" secondItem="CVE-yP-zb4" secondAttribute="bottom" constant="63" id="B5i-qR-HdF"/> |
| | | <constraint firstItem="4CG-pJ-vfV" firstAttribute="centerX" secondItem="iXV-rC-7jh" secondAttribute="centerX" id="KVF-n3-qVT"/> |
| | | <constraint firstItem="CVE-yP-zb4" firstAttribute="top" secondItem="lyG-sK-hpk" secondAttribute="bottom" constant="46" id="LHn-X6-s5n"/> |
| | | <constraint firstAttribute="width" constant="408.56999999999999" id="LYU-a3-xpN"/> |
| | | <constraint firstAttribute="trailing" secondItem="CVE-yP-zb4" secondAttribute="trailing" constant="20" id="XcM-RH-MOg"/> |
| | | <constraint firstAttribute="bottom" secondItem="4CG-pJ-vfV" secondAttribute="bottom" constant="26" id="cEB-nM-gID"/> |
| | | <constraint firstItem="lyG-sK-hpk" firstAttribute="centerX" secondItem="iXV-rC-7jh" secondAttribute="centerX" id="dXZ-Ev-3vZ"/> |
| | | <constraint firstItem="CVE-yP-zb4" firstAttribute="centerX" secondItem="iXV-rC-7jh" secondAttribute="centerX" id="sAa-RM-EM2"/> |
| | | <constraint firstItem="lyG-sK-hpk" firstAttribute="top" secondItem="iXV-rC-7jh" secondAttribute="top" constant="32" id="t4W-8p-o9L"/> |
| | | <constraint firstItem="CVE-yP-zb4" firstAttribute="leading" secondItem="iXV-rC-7jh" secondAttribute="leading" constant="20" id="yiR-k6-hOd"/> |
| | | </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="iXV-rC-7jh" firstAttribute="centerY" secondItem="vUN-kp-3ea" secondAttribute="centerY" id="CQd-Q7-Cd5"/> |
| | | <constraint firstItem="iXV-rC-7jh" firstAttribute="centerX" secondItem="vUN-kp-3ea" secondAttribute="centerX" id="Dog-nm-40j"/> |
| | | </constraints> |
| | | <connections> |
| | | <outlet property="btn_close" destination="eUg-Ri-V3v" id="tyN-SJ-Of9"/> |
| | | <outlet property="btn_complete" destination="Qeb-KI-yJN" id="HYR-zf-9Y4"/> |
| | | <outlet property="cons_btnClose" destination="Wam-9U-4f6" id="Tsy-Di-28D"/> |
| | | <outlet property="label_content" destination="CVE-yP-zb4" id="wNk-0t-cph"/> |
| | | <outlet property="view_container" destination="iXV-rC-7jh" id="TzA-4l-9IR"/> |
| | | </connections> |
| | | <point key="canvasLocation" x="140" y="21"/> |
| | | </view> |
| | | </objects> |
| | | <resources> |
| | | <systemColor name="systemBackgroundColor"> |
| | | <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
| | | </systemColor> |
| | | </resources> |
| | | </document> |
New file |
| | |
| | | // |
| | | // CommonInputView.swift |
| | | // DolphinEnglishLearnManager |
| | | // |
| | | // Created by 无故事王国 on 2024/5/20. |
| | | // |
| | | |
| | | import UIKit |
| | | |
| | | class CommonInputView: UIView,JQNibView { |
| | | |
| | | @IBOutlet weak var view_container: UIView! |
| | | @IBOutlet weak var label_title: UILabel! |
| | | @IBOutlet weak var label_hint: UILabel! |
| | | @IBOutlet weak var tf_input: UITextField! |
| | | private var clouse:((String)->Void)! |
| | | |
| | | override func awakeFromNib() { |
| | | super.awakeFromNib() |
| | | self.alpha = 0 |
| | | view_container.transform = .init(scaleX: 0.1, y: 0.1) |
| | | layoutIfNeeded() |
| | | } |
| | | |
| | | static func show( _ title:String,hintTitle:String,clouse:@escaping (String)->Void){ |
| | | let commonAlertView = CommonInputView.jq_loadNibView() |
| | | sceneDelegate?.window?.addSubview(commonAlertView) |
| | | commonAlertView.label_title.text = title |
| | | commonAlertView.label_hint.text = hintTitle |
| | | commonAlertView.clouse = clouse |
| | | commonAlertView.frame = sceneDelegate?.window?.frame ?? .zero |
| | | |
| | | UIView.animate(withDuration: 0.4) { |
| | | commonAlertView.alpha = 1 |
| | | commonAlertView.view_container.transform = .init(translationX: 1.0, y: 1.0) |
| | | commonAlertView.layoutIfNeeded() |
| | | } |
| | | } |
| | | |
| | | @IBAction func closeAction(_ sender: UIButton) { |
| | | UIView.animate(withDuration: 0.4) { |
| | | self.alpha = 0 |
| | | self.view_container.transform = .init(scaleX: 0.1, y: 0.1) |
| | | } completion: { _ in |
| | | self.removeFromSuperview() |
| | | } |
| | | } |
| | | |
| | | @IBAction func completeAction(_ sender: UIButton) { |
| | | |
| | | guard !tf_input.text!.isEmpty else { |
| | | alertError(msg: "请输入");return |
| | | } |
| | | let text = tf_input.text! |
| | | |
| | | UIView.animate(withDuration: 0.4) { |
| | | self.alpha = 0 |
| | | self.view_container.transform = .init(scaleX: 0.1, y: 0.1) |
| | | } completion: { _ in |
| | | self.removeFromSuperview() |
| | | self.clouse(text) |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | <?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="ipad10_5" orientation="portrait" layout="fullscreen" appearance="light"/> |
| | | <dependencies> |
| | | <deployment identifier="iOS"/> |
| | | <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22684"/> |
| | | <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="CommonInputView" customModule="DolphinEnglishLearnManager" customModuleProvider="target"> |
| | | <rect key="frame" x="0.0" y="0.0" width="834" height="1112"/> |
| | | <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> |
| | | <subviews> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="aTu-ac-nDC"> |
| | | <rect key="frame" x="213" y="443.5" width="408" height="245"/> |
| | | <subviews> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="提示" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="CM3-8b-5R5"> |
| | | <rect key="frame" x="185.5" y="32" width="37" height="18"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="18" id="f7t-r4-sa3"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="18"/> |
| | | <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <stackView opaque="NO" contentMode="scaleToFill" spacing="27" translatesAutoresizingMaskIntoConstraints="NO" id="GI4-lv-pPf"> |
| | | <rect key="frame" x="66.5" y="179" width="275" height="40"/> |
| | | <subviews> |
| | | <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="THe-jt-YIv"> |
| | | <rect key="frame" x="0.0" y="0.0" width="124" height="40"/> |
| | | <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
| | | <constraints> |
| | | <constraint firstAttribute="width" secondItem="THe-jt-YIv" secondAttribute="height" multiplier="1:0.32" id="0ol-46-y42"/> |
| | | <constraint firstAttribute="width" constant="124" id="P2W-FU-6oD"/> |
| | | </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="关闭"> |
| | | <color key="titleColor" red="0.25490196079999999" green="0.63529411759999999" blue="0.92156862750000001" 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="4"/> |
| | | </userDefinedRuntimeAttribute> |
| | | <userDefinedRuntimeAttribute type="color" keyPath="ld_borderColorXIB"> |
| | | <color key="value" red="0.25490196079999999" green="0.63529411759999999" blue="0.92156862750000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | </userDefinedRuntimeAttribute> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="ld_borderWidthXIB"> |
| | | <real key="value" value="1"/> |
| | | </userDefinedRuntimeAttribute> |
| | | </userDefinedRuntimeAttributes> |
| | | <connections> |
| | | <action selector="closeAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="HXK-Pq-WVN"/> |
| | | </connections> |
| | | </button> |
| | | <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Smc-3N-N0n"> |
| | | <rect key="frame" x="151" y="0.0" width="124" height="40"/> |
| | | <color key="backgroundColor" red="0.25490196079999999" green="0.63529411759999999" blue="0.92156862750000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <constraints> |
| | | <constraint firstAttribute="width" secondItem="Smc-3N-N0n" secondAttribute="height" multiplier="1:0.32" id="Gs2-MJ-sgr"/> |
| | | <constraint firstAttribute="width" constant="124" id="RXY-cw-y10"/> |
| | | <constraint firstAttribute="width" secondItem="Smc-3N-N0n" secondAttribute="height" multiplier="1:0.32" id="zYE-8p-JTm"/> |
| | | </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="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> |
| | | <real key="value" value="4"/> |
| | | </userDefinedRuntimeAttribute> |
| | | </userDefinedRuntimeAttributes> |
| | | <connections> |
| | | <action selector="completeAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="LkC-0h-1IS"/> |
| | | </connections> |
| | | </button> |
| | | </subviews> |
| | | </stackView> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="姓名:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Qwi-Cc-CYp"> |
| | | <rect key="frame" x="59" y="96.5" width="41" height="19.5"/> |
| | | <constraints> |
| | | <constraint firstAttribute="width" constant="41" id="vTc-C9-MAn"/> |
| | | </constraints> |
| | | <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> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="AES-WH-hsy"> |
| | | <rect key="frame" x="105" y="83.5" width="236.5" height="45.5"/> |
| | | <subviews> |
| | | <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="vOk-AH-OKW"> |
| | | <rect key="frame" x="16" y="0.0" width="220.5" height="45.5"/> |
| | | <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.37" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <fontDescription key="fontDescription" type="system" pointSize="16"/> |
| | | <textInputTraits key="textInputTraits"/> |
| | | </textField> |
| | | </subviews> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstItem="vOk-AH-OKW" firstAttribute="centerY" secondItem="AES-WH-hsy" secondAttribute="centerY" id="0Sa-Od-Zku"/> |
| | | <constraint firstAttribute="bottom" secondItem="vOk-AH-OKW" secondAttribute="bottom" id="19L-KH-woI"/> |
| | | <constraint firstAttribute="trailing" secondItem="vOk-AH-OKW" secondAttribute="trailing" id="IdQ-Gb-QGa"/> |
| | | <constraint firstItem="vOk-AH-OKW" firstAttribute="top" secondItem="AES-WH-hsy" secondAttribute="top" id="N1h-2w-crt"/> |
| | | <constraint firstItem="vOk-AH-OKW" firstAttribute="leading" secondItem="AES-WH-hsy" secondAttribute="leading" constant="16" id="nYx-hP-KvP"/> |
| | | </constraints> |
| | | <userDefinedRuntimeAttributes> |
| | | <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> |
| | | <real key="value" value="3"/> |
| | | </userDefinedRuntimeAttribute> |
| | | <userDefinedRuntimeAttribute type="color" keyPath="ld_borderColorXIB"> |
| | | <color key="value" red="0.93333333333333335" green="0.93333333333333335" blue="0.93333333333333335" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | </userDefinedRuntimeAttribute> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="ld_borderWidthXIB"> |
| | | <real key="value" value="1"/> |
| | | </userDefinedRuntimeAttribute> |
| | | </userDefinedRuntimeAttributes> |
| | | </view> |
| | | </subviews> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstItem="AES-WH-hsy" firstAttribute="leading" secondItem="Qwi-Cc-CYp" secondAttribute="trailing" constant="5" id="4gK-wN-X9u"/> |
| | | <constraint firstItem="CM3-8b-5R5" firstAttribute="centerX" secondItem="aTu-ac-nDC" secondAttribute="centerX" id="ASx-O9-cXf"/> |
| | | <constraint firstAttribute="bottom" secondItem="GI4-lv-pPf" secondAttribute="bottom" constant="26" id="HEd-Lx-ZfI"/> |
| | | <constraint firstItem="CM3-8b-5R5" firstAttribute="top" secondItem="aTu-ac-nDC" secondAttribute="top" constant="32" id="Puc-m7-hT6"/> |
| | | <constraint firstItem="GI4-lv-pPf" firstAttribute="top" secondItem="Qwi-Cc-CYp" secondAttribute="bottom" constant="63" id="WRx-7O-3IC"/> |
| | | <constraint firstItem="GI4-lv-pPf" firstAttribute="top" secondItem="AES-WH-hsy" secondAttribute="bottom" constant="50" id="ZBe-Bw-Q3m"/> |
| | | <constraint firstAttribute="width" constant="408" id="aS1-2Q-peX"/> |
| | | <constraint firstItem="GI4-lv-pPf" firstAttribute="centerX" secondItem="aTu-ac-nDC" secondAttribute="centerX" id="fmv-Wh-ahj"/> |
| | | <constraint firstItem="AES-WH-hsy" firstAttribute="centerY" secondItem="Qwi-Cc-CYp" secondAttribute="centerY" id="kNH-of-fPV"/> |
| | | <constraint firstItem="GI4-lv-pPf" firstAttribute="trailing" secondItem="AES-WH-hsy" secondAttribute="trailing" id="sCh-W2-MNE"/> |
| | | <constraint firstAttribute="width" secondItem="aTu-ac-nDC" secondAttribute="height" multiplier="1:0.6" id="u01-xe-RDR"/> |
| | | <constraint firstItem="Qwi-Cc-CYp" firstAttribute="leading" secondItem="aTu-ac-nDC" secondAttribute="leading" constant="59" id="vHk-EM-8MN"/> |
| | | </constraints> |
| | | <userDefinedRuntimeAttributes> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> |
| | | <real key="value" value="8"/> |
| | | </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="aTu-ac-nDC" firstAttribute="centerY" secondItem="vUN-kp-3ea" secondAttribute="centerY" id="u5z-Yo-s1G"/> |
| | | <constraint firstItem="aTu-ac-nDC" firstAttribute="centerX" secondItem="vUN-kp-3ea" secondAttribute="centerX" id="x4m-bJ-yce"/> |
| | | </constraints> |
| | | <connections> |
| | | <outlet property="label_hint" destination="Qwi-Cc-CYp" id="z4z-rs-Io8"/> |
| | | <outlet property="label_title" destination="CM3-8b-5R5" id="3Kx-tk-chw"/> |
| | | <outlet property="tf_input" destination="vOk-AH-OKW" id="eeR-6B-yD6"/> |
| | | <outlet property="view_container" destination="aTu-ac-nDC" id="qDD-bp-aam"/> |
| | | </connections> |
| | | <point key="canvasLocation" x="97.841726618705039" y="20.50359712230216"/> |
| | | </view> |
| | | </objects> |
| | | <resources> |
| | | <systemColor name="systemBackgroundColor"> |
| | | <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
| | | </systemColor> |
| | | </resources> |
| | | </document> |
New file |
| | |
| | | // |
| | | // SceneDelegate.swift |
| | | // DolphinEnglishLearnStudent |
| | | // |
| | | // Created by 无故事王国 on 2024/5/22. |
| | | // |
| | | |
| | | import UIKit |
| | | import SVProgressHUD |
| | | |
| | | class SceneDelegate: UIResponder, UIWindowSceneDelegate { |
| | | |
| | | var window: UIWindow? |
| | | |
| | | func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { |
| | | guard let windowScene = (scene as? UIWindowScene) else { return } |
| | | |
| | | window = UIWindow(windowScene: windowScene) |
| | | window?.frame = windowScene.coordinateSpace.bounds |
| | | if #available(iOS 13.0, *) { |
| | | window?.overrideUserInterfaceStyle = .light |
| | | } |
| | | |
| | | SVProgressHUD.setMaximumDismissTimeInterval(1.5) |
| | | SVProgressHUD.setDefaultMaskType(.custom) |
| | | |
| | | loginSuccess() |
| | | } |
| | | |
| | | 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. |
| | | // Release any resources associated with this scene that can be re-created the next time the scene connects. |
| | | // The scene may re-connect later, as its session was not necessarily discarded (see `application:didDiscardSceneSessions` instead). |
| | | } |
| | | |
| | | func sceneDidBecomeActive(_ scene: UIScene) { |
| | | // Called when the scene has moved from an inactive state to an active state. |
| | | // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive. |
| | | } |
| | | |
| | | func sceneWillResignActive(_ scene: UIScene) { |
| | | // Called when the scene will move from an active state to an inactive state. |
| | | // This may occur due to temporary interruptions (ex. an incoming phone call). |
| | | } |
| | | |
| | | func sceneWillEnterForeground(_ scene: UIScene) { |
| | | // Called as the scene transitions from the background to the foreground. |
| | | // Use this method to undo the changes made on entering the background. |
| | | } |
| | | |
| | | func sceneDidEnterBackground(_ scene: UIScene) { |
| | | // Called as the scene transitions from the foreground to the background. |
| | | // Use this method to save data, release shared resources, and store enough scene-specific state information |
| | | // to restore the scene back to its current state. |
| | | } |
| | | } |
| | | |
| | | extension SceneDelegate{ |
| | | func loginSuccess(){ |
| | | let tabBar = BaseTabBarVC() |
| | | let homeNav = BaseNav(rootViewController: HomeVC()) |
| | | homeNav.tabBarItem = UITabBarItem(title: "首页", image: UIImage(named: "nav_home"), selectedImage: UIImage(named: "nav_home_s")!.withRenderingMode(.alwaysOriginal)) |
| | | |
| | | let marketNav = BaseNav(rootViewController: MarketVC()) |
| | | marketNav.tabBarItem = UITabBarItem(title: "商城", image: UIImage(named: "nav_market"), selectedImage: UIImage(named: "nav_market_s")!.withRenderingMode(.alwaysOriginal)) |
| | | |
| | | let meNav = BaseNav(rootViewController: MeVC()) |
| | | meNav.tabBarItem = UITabBarItem(title: "我的", image: UIImage(named: "nav_me"), selectedImage: UIImage(named: "nav_me_s")!.withRenderingMode(.alwaysOriginal)) |
| | | |
| | | |
| | | tabBar.viewControllers = [homeNav,marketNav,meNav] |
| | | sceneDelegate?.window?.rootViewController = tabBar |
| | | sceneDelegate?.window?.makeKeyAndVisible() |
| | | } |
| | | |
| | | func needLogin(){ |
| | | sceneDelegate?.window?.rootViewController = BaseNav(rootViewController: LoginVC()) |
| | | sceneDelegate?.window?.makeKeyAndVisible() |
| | | } |
| | | } |
| | | |
New file |
| | |
| | | # Uncomment the next line to define a global platform for your project |
| | | # platform :ios, '9.0' |
| | | |
| | | target 'DolphinEnglishLearnStudent' do |
| | | # Comment the next line if you don't want to use dynamic frameworks |
| | | use_frameworks! |
| | | |
| | | # Pods for DolphinEnglishLearnStudent |
| | | pod 'JQTools',:path=> '/Users/yvkd/MyProject/JQTools' # 个人开发库 |
| | | pod 'SwifterSwift' # Swift便捷常用工具库 |
| | | pod 'FFPage' # 分页 |
| | | pod 'SPPageMenu' # 配合FFPage 顶部导航分页 |
| | | # pod 'Alamofire' # 网络请求框架 |
| | | pod 'SVProgressHUD' # 提示框组件 |
| | | pod 'CryptoSwift' # 常用加密算法 |
| | | |
| | | end |