Browse Source

生成 loading 页面改版,做了初步设置

100Years 3 weeks ago
parent
commit
20ca6a5ce3

+ 21 - 1
AIEmoji.xcodeproj/project.pbxproj

@@ -96,6 +96,9 @@
 		A80EDE022D6F1CCD003CD332 /* TSPTPGeneratorVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = A80EDE012D6F1CCB003CD332 /* TSPTPGeneratorVC.swift */; };
 		A80EDE062D6F3491003CD332 /* TSPTPBrowseVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = A80EDE052D6F3490003CD332 /* TSPTPBrowseVC.swift */; };
 		A80EDE082D700395003CD332 /* rotatingAnimation.gif in Resources */ = {isa = PBXBuildFile; fileRef = A80EDE072D700395003CD332 /* rotatingAnimation.gif */; };
+		A81BECA32DD1EA1E005D06A2 /* TSGeneratorErrorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A81BECA22DD1EA18005D06A2 /* TSGeneratorErrorView.swift */; };
+		A81BECA62DD1EFAF005D06A2 /* TSGeneratorloadingContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A81BECA52DD1EF9E005D06A2 /* TSGeneratorloadingContentView.swift */; };
+		A81BECA82DD1F075005D06A2 /* Untitled.swift in Sources */ = {isa = PBXBuildFile; fileRef = A81BECA72DD1F071005D06A2 /* Untitled.swift */; };
 		A82D60792DB7703D00596190 /* TSAIExpandImageVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = A82D60782DB7703C00596190 /* TSAIExpandImageVC.swift */; };
 		A82D607B2DB7724700596190 /* TSAIExpandStyleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A82D607A2DB7724600596190 /* TSAIExpandStyleView.swift */; };
 		A82D607D2DB7748800596190 /* ai_expand_image_style.json in Resources */ = {isa = PBXBuildFile; fileRef = A82D607C2DB7748200596190 /* ai_expand_image_style.json */; };
@@ -358,6 +361,9 @@
 		A80EDE012D6F1CCB003CD332 /* TSPTPGeneratorVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TSPTPGeneratorVC.swift; sourceTree = "<group>"; };
 		A80EDE052D6F3490003CD332 /* TSPTPBrowseVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TSPTPBrowseVC.swift; sourceTree = "<group>"; };
 		A80EDE072D700395003CD332 /* rotatingAnimation.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = rotatingAnimation.gif; sourceTree = "<group>"; };
+		A81BECA22DD1EA18005D06A2 /* TSGeneratorErrorView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TSGeneratorErrorView.swift; sourceTree = "<group>"; };
+		A81BECA52DD1EF9E005D06A2 /* TSGeneratorloadingContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TSGeneratorloadingContentView.swift; sourceTree = "<group>"; };
+		A81BECA72DD1F071005D06A2 /* Untitled.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Untitled.swift; sourceTree = "<group>"; };
 		A82D60782DB7703C00596190 /* TSAIExpandImageVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TSAIExpandImageVC.swift; sourceTree = "<group>"; };
 		A82D607A2DB7724600596190 /* TSAIExpandStyleView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TSAIExpandStyleView.swift; sourceTree = "<group>"; };
 		A82D607C2DB7748200596190 /* ai_expand_image_style.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = ai_expand_image_style.json; sourceTree = "<group>"; };
@@ -1162,6 +1168,17 @@
 			path = TSPTPBrowseVC;
 			sourceTree = "<group>";
 		};
+		A81BECA42DD1EF91005D06A2 /* TSGeneratorloadingView */ = {
+			isa = PBXGroup;
+			children = (
+				A83404D22D9D23CA00C140E4 /* TSGeneratorloadingView.swift */,
+				A81BECA72DD1F071005D06A2 /* Untitled.swift */,
+				A81BECA52DD1EF9E005D06A2 /* TSGeneratorloadingContentView.swift */,
+				A81BECA22DD1EA18005D06A2 /* TSGeneratorErrorView.swift */,
+			);
+			path = TSGeneratorloadingView;
+			sourceTree = "<group>";
+		};
 		A82D60772DB7703000596190 /* TSAIExpandImageVC */ = {
 			isa = PBXGroup;
 			children = (
@@ -1806,7 +1823,7 @@
 				A83404DC2D9E1D8C00C140E4 /* ImagesAnimateScrollView.swift */,
 				A89EA6B92D5DDE4E000EB181 /* TSPageNullView.swift */,
 				A8F7763B2D3B429A00AA6E93 /* TSCommonloadingView.swift */,
-				A83404D22D9D23CA00C140E4 /* TSGeneratorloadingView.swift */,
+				A81BECA42DD1EF91005D06A2 /* TSGeneratorloadingView */,
 				A8F776282D3A709200AA6E93 /* UILabel */,
 				A8F775342D38FC9A00AA6E93 /* TSViewTool.swift */,
 			);
@@ -2205,6 +2222,7 @@
 				A80E72652D409B0D00C64288 /* DiyStaticElement.swift in Sources */,
 				A80EDE002D6EFD22003CD332 /* TSPhotoPickerManager.swift in Sources */,
 				A89EA6B42D5C9D43000EB181 /* TSAIChatHistoryVM.swift in Sources */,
+				A81BECA32DD1EA1E005D06A2 /* TSGeneratorErrorView.swift in Sources */,
 				A8BA766F2DA65824000B6707 /* TSAIListPhotoGeneratorBaseVM.swift in Sources */,
 				A80E72532D3F985E00C64288 /* TSWallpaperVC.swift in Sources */,
 				A8FB02B32D3E39A40031A396 /* TSEmojisModel.swift in Sources */,
@@ -2319,6 +2337,7 @@
 				A8F775172D38EB7400AA6E93 /* TSTabBarController.swift in Sources */,
 				A80E73E12D533E5800C64288 /* TSPurchaseVC.swift in Sources */,
 				A80EDDE02D6EB1B9003CD332 /* TSPTPGeneratorCell.swift in Sources */,
+				A81BECA62DD1EFAF005D06A2 /* TSGeneratorloadingContentView.swift in Sources */,
 				A8F776352D3A7C2B00AA6E93 /* TSGenmojiColSectionView.swift in Sources */,
 				A80327B32D813D4900AF7878 /* TSTTPInputVC.swift in Sources */,
 				A80E724F2D3F6D7F00C64288 /* DiyFixedTextElement.swift in Sources */,
@@ -2362,6 +2381,7 @@
 				A89EA67A2D59D25F000EB181 /* TSAIChatVM.swift in Sources */,
 				A80EDDF02D6EC045003CD332 /* TSPTPStyleModel.swift in Sources */,
 				A85E47BE2D68999B0018D62D /* ShareActivityItemProvider.swift in Sources */,
+				A81BECA82DD1F075005D06A2 /* Untitled.swift in Sources */,
 				A8F7763C2D3B429B00AA6E93 /* TSCommonloadingView.swift in Sources */,
 				A8BA76752DA67E66000B6707 /* TSAIListHistoryBaseVC.swift in Sources */,
 				A8F776322D3A771400AA6E93 /* TSGenmojiCollectionViewModel.swift in Sources */,

+ 65 - 0
AIEmoji/Business/VIewTool/TSGeneratorloadingView/TSGeneratorErrorView.swift

@@ -0,0 +1,65 @@
+//
+//  TSGeneratorloadingView+Error.swift
+//  AIEmoji
+//
+//  Created by 100Years on 2025/5/12.
+//
+
+class TSGeneratorErrorView: TSBaseView {
+    
+    lazy var cusStackView: UIStackView = {
+        let cusStackView = UIStackView()
+        cusStackView.axis = .vertical
+        return cusStackView
+    }()
+    
+    lazy var imageView: UIImageView = {
+        let imageView = UIImageView.createImageView(imageName: "failed_big")
+        return imageView
+    }()
+    
+    lazy var textLabel: UILabel = {
+        let textLabel = UILabel.createLabel(font: .font(size: 14),textColor: .white,textAlignment: .center,numberOfLines: 0)
+        return textLabel
+    }()
+    
+    lazy var submitBtn: UIButton = {
+        let btn = UIButton.createButton(title: "Generate in the background".localized,backgroundColor: .white.withAlphaComponent(0.2),font: .font(size: 16),titleColor: .themeColor,corner: 24)
+        btn.titleLabel?.adjustsFontSizeToFitWidth = true
+        return btn
+    }()
+    
+    override func creatUI() {
+        
+        contentView.addSubview(cusStackView)
+        cusStackView.snp.makeConstraints { make in
+            make.edges.equalToSuperview()
+        }
+        
+        cusStackView.addArrangedSubview(imageView)
+        imageView.snp.makeConstraints { make in
+            make.top.equalTo(0)
+            make.width.height.equalTo(56)
+            make.centerX.equalToSuperview()
+            make.bottom.equalTo(0)
+        }
+        
+        cusStackView.addArrangedSubview(textLabel)
+        textLabel.snp.makeConstraints { make in
+            make.top.equalTo(12)
+            make.leading.equalTo(24)
+            make.trailing.equalTo(-24)
+            make.bottom.equalTo(0)
+        }
+        
+        cusStackView.addArrangedSubview(submitBtn)
+        submitBtn.snp.makeConstraints { make in
+            make.top.equalTo(28)
+            make.width.equalTo(250)
+            make.height.equalTo(48)
+            make.centerX.equalToSuperview()
+            make.bottom.equalTo(0)
+        }
+    }
+}
+

+ 320 - 0
AIEmoji/Business/VIewTool/TSGeneratorloadingView/TSGeneratorloadingContentView.swift

@@ -0,0 +1,320 @@
+//
+//  TSGeneratorloadingContentView.swift
+//  AIEmoji
+//
+//  Created by 100Years on 2025/5/12.
+//
+
+import Kingfisher
+
+class TSGeneratorloadingContentView: TSBaseView {
+    lazy var generatorContentView: UIView = {
+        let generatorContentView = UIView()
+        generatorContentView.backgroundColor = .clear
+        return generatorContentView
+    }()
+    
+    lazy var imageView: UIImageView = {
+        let imageView = UIImageView.createImageView(imageName: "failed_big")
+        imageView.isHidden = true
+        return imageView
+    }()
+    
+    lazy var animatedImageView: AnimatedImageView = {
+        let animatedImageView = AnimatedImageView()
+        animatedImageView.autoPlayAnimatedImage = false
+        if let gifURL = Bundle.main.url(forResource: "rotatingAnimation", withExtension: "gif") {
+            animatedImageView.kf.setImage(with: gifURL, options: [.cacheOriginalImage]) { result in
+                switch result {
+                case .success(let value):
+                    print("GIF 加载成功: \(value.source.url?.absoluteString ?? "")")
+                case .failure(let error):
+                    print("GIF 加载失败: \(error.localizedDescription)")
+                }
+            }
+        }
+        
+        return animatedImageView
+    }()
+    
+    
+    lazy var generatorCusStackView: TSCustomStackView = {
+        let generatorCusStackView = TSCustomStackView(axis: .vertical,spacing: 0)
+        generatorCusStackView.scrollView.isScrollEnabled = false
+        return generatorCusStackView
+    }()
+    
+    lazy var timeLabel: UILabel = {
+        let textLabel = UILabel.createLabel(font: .font(size: 18,weight: .semibold),textColor: .white,textAlignment: .center)
+        return textLabel
+    }()
+    
+    lazy var textLabel: UILabel = {
+        let textLabel = UILabel.createLabel(font: .font(size: 18),textColor: .white,textAlignment: .center,numberOfLines: 0)
+        return textLabel
+    }()
+    
+    lazy var infoLabel: UILabel = {
+        let textLabel = UILabel.createLabel(font: .font(size: 14),textColor: .white.withAlphaComponent(0.6),textAlignment: .center,numberOfLines: 0)
+        return textLabel
+    }()
+    
+    private var targetView: UIView = UIView()
+    
+//    lazy var blurEffect: UIVisualEffectView = {
+//        let blurEffect = createBlurEffectView(style: .dark)
+//        blurEffect.alpha = 0.9
+//        return blurEffect
+//    }()
+    
+    lazy var blurEffect: TSDynamicBlurView = {
+        return TSDynamicBlurView()
+    }()
+    
+    
+    lazy var regenerateBtn: UIButton = {
+        let regenerateBtn = UIButton.createButton(title: "Regenerate".localized,backgroundImage: kSubmitBtnNormalbg,font: .font(size: 12),titleColor: "#111111".uiColor,corner: 22)
+//        regenerateBtn.contentEdgeInsets = UIEdgeInsets(top: 0, left: 28, bottom: 0, right:28)
+        regenerateBtn.isHidden = true
+        return regenerateBtn
+    }()
+    
+    lazy var backgroundGenerateBtn: UIButton = {
+        let btn = UIButton.createButton(title: "Generate in the background".localized,font: .font(size: 16),titleColor: .themeColor,corner: 24)
+        btn.layer.borderColor = UIColor.themeColor.cgColor
+        btn.layer.borderWidth = 1.0
+        btn.titleLabel?.adjustsFontSizeToFitWidth = true
+        return btn
+    }()
+    
+    lazy var xBtn: UIButton = {
+        let xBtn = UIButton.createButton(image: UIImage(named: "close_gray")) { [weak self]  in
+            guard let self = self else { return }
+            self.isHidden = true
+        }
+        xBtn.isHidden = true
+        return xBtn
+    }()
+    
+
+    override func creatUI() {
+        contentView.addSubview(blurEffect)
+        blurEffect.snp.makeConstraints { make in
+            make.edges.equalToSuperview()
+        }
+
+        contentView.addSubview(generatorContentView)
+        generatorContentView.snp.makeConstraints { make in
+            make.edges.equalToSuperview()
+        }
+        
+        setUpGeneratorContentView()
+
+        //关闭按钮
+        contentView.addSubview(xBtn)
+        xBtn.snp.makeConstraints { make in
+            make.top.equalTo(k_Height_StatusBar + 4)
+            make.leading.equalTo(16)
+            make.width.equalTo(36)
+            make.height.equalTo(36)
+        }
+        
+        timeLabel.superview?.isHidden = true
+        infoLabel.superview?.isHidden = true
+        setBackgroundGenerateBtnHidden(true)
+        
+    }
+    
+    
+    func setUpGeneratorContentView(){
+        let imageViewTop = 225
+        generatorContentView.addSubview(imageView)
+        imageView.snp.makeConstraints { make in
+            make.width.height.equalTo(200.0)
+            make.centerX.equalToSuperview()
+            make.top.equalTo(imageViewTop)
+        }
+        
+        generatorContentView.addSubview(animatedImageView)
+        animatedImageView.snp.makeConstraints { make in
+            make.width.height.equalTo(200.0)
+            make.centerX.equalToSuperview()
+            make.top.equalTo(imageViewTop)
+        }
+  
+        generatorContentView.addSubview(generatorCusStackView)
+        generatorCusStackView.snp.makeConstraints { make in
+            make.top.equalTo(imageView.snp.bottom).offset(-20)
+            make.leading.equalTo(0)
+            make.trailing.equalTo(0)
+            make.bottom.equalTo(0)
+        }
+        
+        generatorCusStackView.addSubviewToStackWhiteBoard(timeLabel)
+        timeLabel.snp.makeConstraints { make in
+            make.top.equalTo(0)
+            make.leading.equalTo(16)
+            make.trailing.equalTo(-16)
+            make.height.equalTo(27)
+            make.bottom.equalTo(-17)
+        }
+        
+        generatorCusStackView.addSubviewToStackWhiteBoard(textLabel)
+        textLabel.snp.makeConstraints { make in
+            make.top.equalTo(0)
+            make.leading.equalTo(16)
+            make.trailing.equalTo(-16)
+            make.bottom.equalTo(-8)
+        }
+        
+        generatorCusStackView.addSubviewToStackWhiteBoard(infoLabel)
+        infoLabel.snp.makeConstraints { make in
+            make.top.equalTo(0)
+            make.leading.equalTo(16)
+            make.trailing.equalTo(-16)
+            make.bottom.equalTo(-20)
+        }
+        
+        generatorCusStackView.addSubviewToStackWhiteBoard(backgroundGenerateBtn)
+        backgroundGenerateBtn.snp.makeConstraints { make in
+            make.top.equalTo(20)
+            make.leading.equalTo(32)
+            make.trailing.equalTo(-32)
+            make.height.equalTo(48)
+            make.bottom.equalTo(0)
+        }
+        
+        generatorCusStackView.addSubviewToStackWhiteBoard(regenerateBtn)
+        regenerateBtn.snp.makeConstraints { make in
+            make.top.equalTo(20)
+            make.centerX.equalToSuperview()
+            make.height.equalTo(44)
+            make.width.equalTo(126*kDesignScale)
+            make.bottom.equalTo(0)
+        }
+    }
+
+    override func dealThings() {
+        // 监听应用生命周期事件
+        NotificationCenter.default.addObserver(
+            self,
+            selector: #selector(handleAppDidEnterBackground),
+            name: UIApplication.didEnterBackgroundNotification,
+            object: nil
+        )
+        
+        NotificationCenter.default.addObserver(
+            self,
+            selector: #selector(handleAppWillEnterForeground),
+            name: UIApplication.willEnterForegroundNotification,
+            object: nil
+        )
+    }
+    
+    
+    lazy var isRotating = false{
+        didSet{
+            if isRotating == true{
+                startRotating(view: imageView)
+            }else{
+                stopRotating(view: imageView)
+            }
+        }
+    }
+    
+    
+    /// 开始旋转
+    func startRotating(view:UIView,duration: Double = 2.0) {
+        kDelayMainShort {
+            self.animatedImageView.startAnimating()
+        }
+    }
+
+    /// 停止旋转
+    func stopRotating(view:UIView) {
+        animatedImageView.stopAnimating()
+    }
+    
+    func showLoading(text:String){
+        animatedImageView.isHidden = false
+        imageView.isHidden = true
+        
+        textLabel.text = text
+        isRotating = true
+    }
+    
+    func showError(text:String){
+        animatedImageView.isHidden = true
+        
+        imageView.isHidden = false
+        imageView.image = UIImage(named: "failed_big")
+        
+        textLabel.text = text
+        isRotating = false
+    }
+    
+    @objc private func handleAppDidEnterBackground() {
+        stopRotating(view: targetView)
+    }
+
+    @objc private func handleAppWillEnterForeground() {
+        isRotating = isRotating
+    }
+    
+    func setBackgroundColor(color:UIColor){
+        blurEffect.removeFromSuperview()
+        contentView.backgroundColor = color
+    }
+}
+
+
+extension TSGeneratorloadingContentView{
+    
+    func updateShowProgress(text:String) {
+        isHidden = false
+        showLoading(text: text)
+        isRotating = true
+        
+        if timeLabel.text?.count ?? 0 > 0 {
+            timeLabel.superview?.isHidden = false
+        }
+        
+        if infoLabel.text?.count ?? 0 > 0 {
+            infoLabel.superview?.isHidden = false
+        }
+    }
+    
+    func updateShowLoading(text:String){
+        isHidden = false
+        showLoading(text: text)
+        isRotating = true
+        
+        if timeLabel.text?.count ?? 0 > 0 {
+            timeLabel.superview?.isHidden = false
+        }
+        
+        if infoLabel.text?.count ?? 0 > 0 {
+            infoLabel.superview?.isHidden = false
+        }
+    }
+    
+    func updateShowError(text:String?){
+        isHidden = false
+        showError(text: text ?? kGenerateFailed)
+        isRotating = false
+        timeLabel.superview?.isHidden = true
+        infoLabel.superview?.isHidden = true
+        setBackgroundGenerateBtnHidden(true)
+    }
+    
+    func updateShowSuccess(){
+        isHidden = true
+        isRotating = false
+        setBackgroundGenerateBtnHidden(true)
+    }
+    
+    
+    func setBackgroundGenerateBtnHidden(_ isHidden:Bool){
+        backgroundGenerateBtn.superview?.isHidden = isHidden
+    }
+}

+ 47 - 31
AIEmoji/Business/VIewTool/TSGeneratorloadingView.swift → AIEmoji/Business/VIewTool/TSGeneratorloadingView/TSGeneratorloadingView.swift

@@ -9,7 +9,15 @@ import Kingfisher
 
 class TSGeneratorloadingView: TSBaseView {
     
-    lazy var imageView: UIImageView = {
+    
+    
+    lazy var generatorContentView: UIView = {
+        let generatorContentView = UIView()
+        generatorContentView.backgroundColor = .clear
+        return generatorContentView
+    }()
+    
+    lazy var failedImageView: UIImageView = {
         let imageView = UIImageView.createImageView(imageName: "failed_big")
         imageView.isHidden = true
         return imageView
@@ -33,11 +41,10 @@ class TSGeneratorloadingView: TSBaseView {
     }()
     
     
-    
-    lazy var cusStackView: TSCustomStackView = {
-        let cusStackView = TSCustomStackView(axis: .vertical,spacing: 0)
-        cusStackView.scrollView.isScrollEnabled = false
-        return cusStackView
+    lazy var generatorCusStackView: TSCustomStackView = {
+        let generatorCusStackView = TSCustomStackView(axis: .vertical,spacing: 0)
+        generatorCusStackView.scrollView.isScrollEnabled = false
+        return generatorCusStackView
     }()
     
     lazy var timeLabel: UILabel = {
@@ -94,35 +101,59 @@ class TSGeneratorloadingView: TSBaseView {
     
 
     override func creatUI() {
-
         contentView.addSubview(blurEffect)
         blurEffect.snp.makeConstraints { make in
             make.edges.equalToSuperview()
         }
+
+        contentView.addSubview(generatorContentView)
+        generatorContentView.snp.makeConstraints { make in
+            make.edges.equalToSuperview()
+        }
+        
+        setUpGeneratorContentView()
+
+        //关闭按钮
+        contentView.addSubview(xBtn)
+        xBtn.snp.makeConstraints { make in
+            make.top.equalTo(k_Height_StatusBar + 4)
+            make.leading.equalTo(16)
+            make.width.equalTo(36)
+            make.height.equalTo(36)
+        }
+        
+        timeLabel.superview?.isHidden = true
+        infoLabel.superview?.isHidden = true
+        setBackgroundGenerateBtnHidden(true)
+        
+    }
+    
+    
+    func setUpGeneratorContentView(){
         let imageViewTop = 225
-        contentView.addSubview(imageView)
+        generatorContentView.addSubview(imageView)
         imageView.snp.makeConstraints { make in
             make.width.height.equalTo(200.0)
             make.centerX.equalToSuperview()
             make.top.equalTo(imageViewTop)
         }
         
-        contentView.addSubview(animatedImageView)
+        generatorContentView.addSubview(animatedImageView)
         animatedImageView.snp.makeConstraints { make in
             make.width.height.equalTo(200.0)
             make.centerX.equalToSuperview()
             make.top.equalTo(imageViewTop)
         }
   
-        contentView.addSubview(cusStackView)
-        cusStackView.snp.makeConstraints { make in
+        generatorContentView.addSubview(generatorCusStackView)
+        generatorCusStackView.snp.makeConstraints { make in
             make.top.equalTo(imageView.snp.bottom).offset(-20)
             make.leading.equalTo(0)
             make.trailing.equalTo(0)
             make.bottom.equalTo(0)
         }
         
-        cusStackView.addSubviewToStackWhiteBoard(timeLabel)
+        generatorCusStackView.addSubviewToStackWhiteBoard(timeLabel)
         timeLabel.snp.makeConstraints { make in
             make.top.equalTo(0)
             make.leading.equalTo(16)
@@ -131,7 +162,7 @@ class TSGeneratorloadingView: TSBaseView {
             make.bottom.equalTo(-17)
         }
         
-        cusStackView.addSubviewToStackWhiteBoard(textLabel)
+        generatorCusStackView.addSubviewToStackWhiteBoard(textLabel)
         textLabel.snp.makeConstraints { make in
             make.top.equalTo(0)
             make.leading.equalTo(16)
@@ -139,7 +170,7 @@ class TSGeneratorloadingView: TSBaseView {
             make.bottom.equalTo(-8)
         }
         
-        cusStackView.addSubviewToStackWhiteBoard(infoLabel)
+        generatorCusStackView.addSubviewToStackWhiteBoard(infoLabel)
         infoLabel.snp.makeConstraints { make in
             make.top.equalTo(0)
             make.leading.equalTo(16)
@@ -147,7 +178,7 @@ class TSGeneratorloadingView: TSBaseView {
             make.bottom.equalTo(-20)
         }
         
-        cusStackView.addSubviewToStackWhiteBoard(backgroundGenerateBtn)
+        generatorCusStackView.addSubviewToStackWhiteBoard(backgroundGenerateBtn)
         backgroundGenerateBtn.snp.makeConstraints { make in
             make.top.equalTo(20)
             make.leading.equalTo(32)
@@ -156,7 +187,7 @@ class TSGeneratorloadingView: TSBaseView {
             make.bottom.equalTo(0)
         }
         
-        cusStackView.addSubviewToStackWhiteBoard(regenerateBtn)
+        generatorCusStackView.addSubviewToStackWhiteBoard(regenerateBtn)
         regenerateBtn.snp.makeConstraints { make in
             make.top.equalTo(20)
             make.centerX.equalToSuperview()
@@ -164,21 +195,6 @@ class TSGeneratorloadingView: TSBaseView {
             make.width.equalTo(126*kDesignScale)
             make.bottom.equalTo(0)
         }
-
-        
-        //关闭按钮
-        contentView.addSubview(xBtn)
-        xBtn.snp.makeConstraints { make in
-            make.top.equalTo(k_Height_StatusBar + 4)
-            make.leading.equalTo(16)
-            make.width.equalTo(36)
-            make.height.equalTo(36)
-        }
-        
-        timeLabel.superview?.isHidden = true
-        infoLabel.superview?.isHidden = true
-        setBackgroundGenerateBtnHidden(true)
-        
     }
 
     override func dealThings() {

+ 7 - 0
AIEmoji/Business/VIewTool/TSGeneratorloadingView/Untitled.swift

@@ -0,0 +1,7 @@
+//
+//  Untitled.swift
+//  AIEmoji
+//
+//  Created by 100Years on 2025/5/12.
+//
+

BIN
AIEmoji/Res/rotatingAnimation.gif