瀏覽代碼

loading view 不在使用 gif 使用图片 减少加载时间

jsonwang 3 年之前
父節點
當前提交
664e6b299a

+ 23 - 0
BFRecordScreenKit/Assets/BFRecordScreenKit.xcassets/stuckPoint_edit_loading.imageset/Contents.json

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

二進制
BFRecordScreenKit/Assets/BFRecordScreenKit.xcassets/stuckPoint_edit_loading.imageset/stuckPoint_edit_loading.png


二進制
BFRecordScreenKit/Assets/BFRecordScreenKit.xcassets/stuckPoint_edit_loading.imageset/stuckPoint_edit_loading@2x.png


二進制
BFRecordScreenKit/Assets/BFRecordScreenKit.xcassets/stuckPoint_edit_loading.imageset/stuckPoint_edit_loading@3x.png


二進制
BFRecordScreenKit/Assets/stuckPoint_edit_loading.gif


+ 0 - 3
BFRecordScreenKit/Classes/RecordScreen/Controller/BFRecordScreenController.swift

@@ -684,9 +684,6 @@ public class BFRecordScreenController: BFBaseViewController {
 
     @objc func didBecomeActive() {
         BFLog(message: "进入活跃状态")
-        
-        loadingView.startGIF()
-        
     }
 
     @objc func willResignActive() {

+ 19 - 23
BFRecordScreenKit/Classes/RecordScreen/View/BFLoadingView.swift

@@ -12,15 +12,10 @@ import UIKit
 
 class BFLoadingView: UIView {
     var cancelHandle: (() -> Void)?
-
-    // gif每一帧图
-    public var gifImages: [UIImage]?
-    // gif播放时长
-    public var duration: Double?
-
+    
     public lazy var loadingImage: UIImageView = {
         let loadingImage = UIImageView()
-        loadingImage.tintColor = UIColor.hexColor(hexadecimal: BFConfig.shared.styleColor.rawValue)
+        loadingImage.image = imageInRecordScreenKit(by: "stuckPoint_edit_loading")
         return loadingImage
     }()
 
@@ -49,13 +44,6 @@ class BFLoadingView: UIView {
         addSubview(closedBtn)
         addSubview(titleL)
 
-        let data = try? Data(contentsOf: URL(fileURLWithPath: currentBundle()!.path(forResource: "stuckPoint_edit_loading", ofType: ".gif")!))
-        if data != nil {
-            PQPHAssetVideoParaseUtil.parasGIFImage(data: data!, isRenderingColor: UIColor.hexColor(hexadecimal: BFConfig.shared.styleColor.rawValue)) { [weak self] _, images, duration in
-                self?.gifImages = images
-                self?.duration = duration
-            }
-        }
     }
 
     required init?(coder _: NSCoder) {
@@ -76,18 +64,26 @@ class BFLoadingView: UIView {
     public func loadShow() {
     
         isHidden = false
-        loadingImage.displayGIF(data: nil, images: gifImages, repeatCount: .max, duration: duration ?? 2)
+        loadingImage.layer.removeAllAnimations()
+        loadingImage.isHidden = false
+        // 1.创建动画
+        let rotationAnim = CABasicAnimation(keyPath: "transform.rotation.z")
+        // 2.设置动画的属性
+        rotationAnim.fromValue = 0
+        rotationAnim.toValue = Double.pi * 2
+        rotationAnim.repeatCount = MAXFLOAT
+        rotationAnim.duration = 1
+        // 这个属性很重要 如果不设置当页面运行到后台再次进入该页面的时候 动画会停止
+        rotationAnim.isRemovedOnCompletion = false
+        // 3.将动画添加到layer中
+        loadingImage.layer.add(rotationAnim, forKey: nil)
     }
-    
-    //启动动画
-    public func startGIF(){
-        loadingImage.displayGIF(data: nil, images: gifImages, repeatCount: .max, duration: duration ?? 2)
-    }
-    
-    
+ 
     public func removeLoading(){
         isHidden = true
-        loadingImage.removePlayGIF()
+        
+        loadingImage.layer.removeAllAnimations()
+        loadingImage.isHidden = true
         
     }