Przeglądaj źródła

对旧入库,进行需求 UI 变动

100Years 1 miesiąc temu
rodzic
commit
574c31bdcc
21 zmienionych plików z 111 dodań i 28 usunięć
  1. 16 4
      AIRingtone.xcodeproj/project.pbxproj
  2. 22 0
      AIRingtone/Assets.xcassets/Tabbar/tabbar_select_discover.imageset/Contents.json
  3. BIN
      AIRingtone/Assets.xcassets/Tabbar/tabbar_select_discover.imageset/tabbar_select_discover@2x.png
  4. BIN
      AIRingtone/Assets.xcassets/Tabbar/tabbar_select_discover.imageset/tabbar_select_discover@3x.png
  5. 22 0
      AIRingtone/Assets.xcassets/Tabbar/tabbar_unSelect_discover.imageset/Contents.json
  6. BIN
      AIRingtone/Assets.xcassets/Tabbar/tabbar_unSelect_discover.imageset/tabbar_unSelect_discover@2x.png
  7. BIN
      AIRingtone/Assets.xcassets/Tabbar/tabbar_unSelect_discover.imageset/tabbar_unSelect_discover@3x.png
  8. 1 1
      AIRingtone/Assets.xcassets/Theme/theme_banner.imageset/Contents.json
  9. BIN
      AIRingtone/Assets.xcassets/Theme/theme_banner.imageset/theme_banner@2x 1.png
  10. BIN
      AIRingtone/Assets.xcassets/Theme/theme_banner.imageset/theme_banner@2x.png
  11. BIN
      AIRingtone/Assets.xcassets/Theme/theme_banner.imageset/theme_banner@3x.png
  12. 8 4
      AIRingtone/Business/TSAIPhotoVC/TSAIPhotoVC.swift
  13. 1 1
      AIRingtone/Business/TSAIRintoneVC/TSAIRintoneVC/View/TSAIRintoneHistoryCell.swift
  14. 1 1
      AIRingtone/Business/TSAIRintoneVC/TSGeneralRintoneVC/TSGeneralRintoneVC.swift
  15. 12 0
      AIRingtone/Business/TSDiscoverVC/TSDiscoverVC.swift
  16. 6 6
      AIRingtone/Business/TSTabBarController/TSTabBarController.swift
  17. 1 1
      AIRingtone/Business/TSThemeVC/TSThemeBrowseVC/TSThemeBrowseVC.swift
  18. 1 1
      AIRingtone/Business/TSThemeVC/TSThemeBrowseVC/VM/TSThemeBrowseVM.swift
  19. 1 1
      AIRingtone/Business/TSThemeVC/TSThemeSetVC/TSThemeSetVC.swift
  20. 13 3
      AIRingtone/Business/TSThemeVC/TSThemeVC/TSThemeVC.swift
  21. 6 5
      AIRingtone/Common/Tool/TSBusinessAudioPlayer.swift

+ 16 - 4
AIRingtone.xcodeproj/project.pbxproj

@@ -104,6 +104,7 @@
 		A899D3622D82D89C00AB9C1C /* TSButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = A899D3612D82D89000AB9C1C /* TSButton.swift */; };
 		A899D36F2D83C3DC00AB9C1C /* TSTutorialPopupVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = A899D36E2D83C3D500AB9C1C /* TSTutorialPopupVC.swift */; };
 		A899D3742D87B15F00AB9C1C /* TSPurchaseTool.swift in Sources */ = {isa = PBXBuildFile; fileRef = A899D3732D87B15D00AB9C1C /* TSPurchaseTool.swift */; };
+		A899D3842D88303E00AB9C1C /* TSDiscoverVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = A899D3832D88303D00AB9C1C /* TSDiscoverVC.swift */; };
 		A8C6436C2D79A8C8001068D0 /* TSAIRintoneHistoryCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8C6436B2D79A8C7001068D0 /* TSAIRintoneHistoryCell.swift */; };
 		A8CC55822D797720002E0CAA /* TSGeneralPicBrowseVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8CC55812D79771F002E0CAA /* TSGeneralPicBrowseVC.swift */; };
 		A8CC55862D798E2D002E0CAA /* TSTextGeneralRintoneVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8CC55852D798E2D002E0CAA /* TSTextGeneralRintoneVC.swift */; };
@@ -219,6 +220,7 @@
 		A899D3612D82D89000AB9C1C /* TSButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TSButton.swift; sourceTree = "<group>"; };
 		A899D36E2D83C3D500AB9C1C /* TSTutorialPopupVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TSTutorialPopupVC.swift; sourceTree = "<group>"; };
 		A899D3732D87B15D00AB9C1C /* TSPurchaseTool.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TSPurchaseTool.swift; sourceTree = "<group>"; };
+		A899D3832D88303D00AB9C1C /* TSDiscoverVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TSDiscoverVC.swift; sourceTree = "<group>"; };
 		A8C6436B2D79A8C7001068D0 /* TSAIRintoneHistoryCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TSAIRintoneHistoryCell.swift; sourceTree = "<group>"; };
 		A8CC55812D79771F002E0CAA /* TSGeneralPicBrowseVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TSGeneralPicBrowseVC.swift; sourceTree = "<group>"; };
 		A8CC55852D798E2D002E0CAA /* TSTextGeneralRintoneVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TSTextGeneralRintoneVC.swift; sourceTree = "<group>"; };
@@ -315,6 +317,7 @@
 		A80EDE632D718B19003CD332 /* Business */ = {
 			isa = PBXGroup;
 			children = (
+				A899D3822D88303300AB9C1C /* TSDiscoverVC */,
 				A83F871B2D79408300D29B1B /* Data */,
 				A899D34C2D82C61C00AB9C1C /* TSPurchaseMembershipVC */,
 				A868A8A12D7560B900F6D884 /* VIewTool */,
@@ -805,6 +808,14 @@
 			path = TSPurchaseManager;
 			sourceTree = "<group>";
 		};
+		A899D3822D88303300AB9C1C /* TSDiscoverVC */ = {
+			isa = PBXGroup;
+			children = (
+				A899D3832D88303D00AB9C1C /* TSDiscoverVC.swift */,
+			);
+			path = TSDiscoverVC;
+			sourceTree = "<group>";
+		};
 		A8C6436A2D79A8BD001068D0 /* View */ = {
 			isa = PBXGroup;
 			children = (
@@ -994,6 +1005,7 @@
 				A868A9072D77EED800F6D884 /* TSTGPTitleView.swift in Sources */,
 				A868A8C22D76A2A700F6D884 /* UIFont+TSEx.swift in Sources */,
 				A868A91A2D78559800F6D884 /* TSProgressState.swift in Sources */,
+				A899D3842D88303E00AB9C1C /* TSDiscoverVC.swift in Sources */,
 				A868A8C92D76A45900F6D884 /* TSThemeSetItemView.swift in Sources */,
 				A868A9002D77E55800F6D884 /* TSPromptStyleView.swift in Sources */,
 				A83F87202D794FF000D29B1B /* TSAIPhotoImageCell.swift in Sources */,
@@ -1107,7 +1119,7 @@
 				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
 				CLANG_ENABLE_MODULES = YES;
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 2;
+				CURRENT_PROJECT_VERSION = 1;
 				DEVELOPMENT_TEAM = 65UD255J84;
 				GENERATE_INFOPLIST_FILE = YES;
 				INFOPLIST_FILE = AIRingtone/Info.plist;
@@ -1126,7 +1138,7 @@
 					"$(inherited)",
 					"$(PROJECT_DIR)/AIRingtone/Common/Tool/TSBandRingTool/libmp3",
 				);
-				MARKETING_VERSION = 1.2;
+				MARKETING_VERSION = 1.3;
 				PRODUCT_BUNDLE_IDENTIFIER = ai.ringtones.com;
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
@@ -1149,7 +1161,7 @@
 				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
 				CLANG_ENABLE_MODULES = YES;
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 2;
+				CURRENT_PROJECT_VERSION = 1;
 				DEVELOPMENT_TEAM = 65UD255J84;
 				GENERATE_INFOPLIST_FILE = YES;
 				INFOPLIST_FILE = AIRingtone/Info.plist;
@@ -1168,7 +1180,7 @@
 					"$(inherited)",
 					"$(PROJECT_DIR)/AIRingtone/Common/Tool/TSBandRingTool/libmp3",
 				);
-				MARKETING_VERSION = 1.2;
+				MARKETING_VERSION = 1.3;
 				PRODUCT_BUNDLE_IDENTIFIER = ai.ringtones.com;
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";

+ 22 - 0
AIRingtone/Assets.xcassets/Tabbar/tabbar_select_discover.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "tabbar_select_discover@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "tabbar_select_discover@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
AIRingtone/Assets.xcassets/Tabbar/tabbar_select_discover.imageset/tabbar_select_discover@2x.png


BIN
AIRingtone/Assets.xcassets/Tabbar/tabbar_select_discover.imageset/tabbar_select_discover@3x.png


+ 22 - 0
AIRingtone/Assets.xcassets/Tabbar/tabbar_unSelect_discover.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "tabbar_unSelect_discover@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "tabbar_unSelect_discover@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
AIRingtone/Assets.xcassets/Tabbar/tabbar_unSelect_discover.imageset/tabbar_unSelect_discover@2x.png


BIN
AIRingtone/Assets.xcassets/Tabbar/tabbar_unSelect_discover.imageset/tabbar_unSelect_discover@3x.png


+ 1 - 1
AIRingtone/Assets.xcassets/Theme/theme_banner.imageset/Contents.json

@@ -5,7 +5,7 @@
       "scale" : "1x"
     },
     {
-      "filename" : "theme_banner@2x.png",
+      "filename" : "theme_banner@2x 1.png",
       "idiom" : "universal",
       "scale" : "2x"
     },

BIN
AIRingtone/Assets.xcassets/Theme/theme_banner.imageset/theme_banner@2x 1.png


BIN
AIRingtone/Assets.xcassets/Theme/theme_banner.imageset/theme_banner@2x.png


BIN
AIRingtone/Assets.xcassets/Theme/theme_banner.imageset/theme_banner@3x.png


+ 8 - 4
AIRingtone/Business/TSAIPhotoVC/TSAIPhotoVC.swift

@@ -113,10 +113,14 @@ class TSAIPhotoVC: TSBaseVC {
     override func createView() {
         setViewBgImageNamed(named: kViewBJ)
         edgesForExtendedLayout = []
-        navBarContentView.addSubview(navBarView)
-        navBarView.snp.makeConstraints { make in
-            make.edges.equalToSuperview()
-        }
+        
+//        navBarContentView.addSubview(navBarView)
+//        navBarView.snp.makeConstraints { make in
+//            make.edges.equalToSuperview()
+//        }
+        
+        addNormalNavBarView()
+        setPageTitle("Ai Avatar".localized)
         
         contentView.addSubview(segmentedView)
         contentView.addSubview(pagingView)

+ 1 - 1
AIRingtone/Business/TSAIRintoneVC/TSAIRintoneVC/View/TSAIRintoneHistoryCell.swift

@@ -68,7 +68,7 @@ class TSAIRintoneHistoryCell: SwipeCollectionViewCell {
         didSet{
             ringView.isloading = isSelected
             if isSelected, self.ringView.isPlay == false{
-                TSBusinessAudioPlayer.shared.playRingtone(ringtone: model?.response.musicUrl)
+                TSBusinessAudioPlayer.shared.playUrlString( model?.response.musicUrl)
             }else{
                 TSBusinessAudioPlayer.shared.stop()
                 backgroundColor = .cardColor

+ 1 - 1
AIRingtone/Business/TSAIRintoneVC/TSGeneralRintoneVC/TSGeneralRintoneVC.swift

@@ -109,7 +109,7 @@ class TSGeneralRintoneVC: TSBottomAlertVC {
         if audioPlayer.isPlaying{
             audioPlayer.stop()
         }else{
-            audioPlayer.playRingtone(ringtone: infoModel?.response.musicUrl)
+            audioPlayer.playUrlString( infoModel?.response.musicUrl)
         }
     }
     

+ 12 - 0
AIRingtone/Business/TSDiscoverVC/TSDiscoverVC.swift

@@ -0,0 +1,12 @@
+//
+//  TSDiscoverVC.swift
+//  AIRingtone
+//
+//  Created by 100Years on 2025/3/17.
+//
+
+class TSDiscoverVC: TSBaseVC {
+    override func createView() {
+        view.backgroundColor = .green
+    }
+}

+ 6 - 6
AIRingtone/Business/TSTabBarController/TSTabBarController.swift

@@ -24,19 +24,19 @@ class TSTabBarController: UITabBarController {
     }
 
     @objc private func setUpData() {
-        viewControllerArray = ["TSThemeVC", "TSAIRintoneVC","TSAIPhotoVC","TSSetingVC"]
-        titleArray = ["Theme","Ringtone","Poster","Setting"]
+        viewControllerArray = ["TSAIRintoneVC","TSDiscoverVC","TSThemeVC","TSSetingVC"]
+        titleArray = ["RinTone","Discover","Contact","Setting"]
         
         selectedImageArray = [
-            "tabbar_select_theme",
             "tabbar_select_rintone",
-            "tabbar_select_avatar",
+            "tabbar_select_discover",
+            "tabbar_select_theme",
             "tabbar_select_setting"
         ]
         unselectedImageArray = [
-            "tabbar_unSelect_theme",
             "tabbar_unSelect_rintone",
-            "tabbar_unSelect_avatar",
+            "tabbar_unSelect_discover",
+            "tabbar_unSelect_theme",
             "tabbar_unSelect_setting"
         ]
 

+ 1 - 1
AIRingtone/Business/TSThemeVC/TSThemeBrowseVC/TSThemeBrowseVC.swift

@@ -213,7 +213,7 @@ extension TSThemeBrowseVC {
         if browseViewModel.audioPlayer?.playerUsable == true {
             browseViewModel.audioPlayer?.play()
         }else{
-            browseViewModel.audioPlayer?.playRingtone(ringtone: currentModel?.ringtone)
+            browseViewModel.audioPlayer?.playUrlString( currentModel?.ringtone)
         }
     }
 }

+ 1 - 1
AIRingtone/Business/TSThemeVC/TSThemeBrowseVC/VM/TSThemeBrowseVM.swift

@@ -18,7 +18,7 @@ class TSThemeBrowseVM {
         if finallyIndex != currentIndex{
             finallyIndex = currentIndex
             audioPlayer?.stop()
-            audioPlayer?.playRingtone(ringtone: ringtone)
+            audioPlayer?.playUrlString( ringtone)
             finallyIndexChange?()
         }
     }

+ 1 - 1
AIRingtone/Business/TSThemeVC/TSThemeSetVC/TSThemeSetVC.swift

@@ -157,7 +157,7 @@ extension TSThemeSetVC {
         if audioPlayer.isPlaying{
             audioPlayer.stop()
         }else{
-            audioPlayer.playRingtone(ringtone: model.ringtone)
+            audioPlayer.playUrlString( model.ringtone)
         }
     }
     

+ 13 - 3
AIRingtone/Business/TSThemeVC/TSThemeVC/TSThemeVC.swift

@@ -24,7 +24,18 @@ class TSThemeVC: TSBaseVC {
             make.width.equalTo(375)
             make.height.equalTo(48)
         }
-
+        
+        let tutorialsBtn = UIButton.createButton(image: UIImage(named: "tutorials")){[weak self]  in
+            guard let self = self else { return }
+            kPushVC(target: self, modelVC: TSThemeTutorialsVC())
+        }
+        navBarView.barView.addSubview(tutorialsBtn)
+        tutorialsBtn.snp.makeConstraints { make in
+            make.trailing.equalTo(-16)
+            make.centerY.equalToSuperview()
+            make.width.equalTo(24)
+            make.height.equalTo(24)
+        }
         return navBarView
     }()
     
@@ -46,8 +57,7 @@ class TSThemeVC: TSBaseVC {
         cp.itemDidSelectedHandler = { [weak self] (object, indexPath) in
             guard let self = self else { return }
             if indexPath.section == 0{
-                let browseVC = TSThemeTutorialsVC()
-                kPushVC(target: self, modelVC: browseVC)
+                kPushVC(target: self, modelVC: TSAIPhotoVC())
                 return
             }
             

+ 6 - 5
AIRingtone/Common/Tool/TSBusinessAudioPlayer.swift

@@ -48,7 +48,7 @@ class TSBusinessAudioPlayer {
         }
         return false
     }
-    
+    var currentURLString:String = ""
     //加载音乐可能 2-3 秒有结果,停止加载后播放.
     private var isStopPlayingAfterLoading:Bool = false
     private var loadingLogic:(show: () -> Void, hide: () -> Void)?
@@ -56,8 +56,9 @@ class TSBusinessAudioPlayer {
         self.stateChangeBlock = stateChangeBlock
     }
     
-    func playRingtone(ringtone:String?) {
-        if let ringtone = ringtone {
+    func playUrlString(_ urlString:String?) {
+        if let urlString = urlString {
+            self.currentURLString = urlString
             loadingLogic = kCreateLoadingLogic { [weak self]  in
                 guard let self = self else { return }
                 self.stateChangeBlock(.loading(0.0))
@@ -68,11 +69,11 @@ class TSBusinessAudioPlayer {
 
             loadingLogic?.show()
             isStopPlayingAfterLoading = false
-            TSCommonTool.downloadAndCacheFile(from: ringtone) { [weak self] path, error in
+            TSCommonTool.downloadAndCacheFile(from: urlString) { [weak self] path, error in
                 guard let self = self else { return }
                 loadingLogic?.hide()
                 
-                if isStopPlayingAfterLoading == true{
+                if isStopPlayingAfterLoading == true || currentURLString != urlString{
                     self.stop()
                     isStopPlayingAfterLoading = false
                     return