Explorar o código

Merge pull request #172 from onevcat/fix/image-extension-for-gif

Fix image extension for gif
Wei Wang %!s(int64=10) %!d(string=hai) anos
pai
achega
8cb10b07b3

+ 3 - 1
Kingfisher/ImageCache.swift

@@ -642,7 +642,9 @@ extension ImageCache {
 
 extension UIImage {
     var kf_imageCost: Int {
-        return Int(size.height * size.width * scale * scale)
+        return images == nil ?
+            Int(size.height * size.width * scale * scale) :
+            Int(size.height * size.width * scale * scale) * images!.count
     }
 }
 

+ 5 - 0
Kingfisher/UIImage+Extension.swift

@@ -91,6 +91,11 @@ extension UIImage {
 // MARK: - Normalization
 extension UIImage {
     public func kf_normalizedImage() -> UIImage {
+        // prevent animated image (GIF) lose it's images
+        if images != nil {
+            return self
+        }
+        
         if imageOrientation == .Up {
             return self
         }

+ 2 - 6
KingfisherTests/UIImageViewExtensionTests.swift

@@ -186,22 +186,18 @@ class UIImageViewExtensionTests: XCTestCase {
                 task1Completion = true
         }
         
-        let task2 = imageView.kf_setImageWithURL(URL, placeholderImage: nil, optionsInfo: nil, progressBlock: { (receivedSize, totalSize) -> () in
+        let _ = imageView.kf_setImageWithURL(URL, placeholderImage: nil, optionsInfo: nil, progressBlock: { (receivedSize, totalSize) -> () in
             
             }) { (image, error, cacheType, imageURL) -> () in
                 task2Completion = true
         }
         
-        let task3 = imageView.kf_setImageWithURL(URL, placeholderImage: nil, optionsInfo: nil, progressBlock: { (receivedSize, totalSize) -> () in
+        let _ = imageView.kf_setImageWithURL(URL, placeholderImage: nil, optionsInfo: nil, progressBlock: { (receivedSize, totalSize) -> () in
             
             }) { (image, error, cacheType, imageURL) -> () in
                 task3Completion = true
         }
         
-        // Prevent unused warning.
-        print(task2)
-        print(task3)
-        
         task1.cancel()
         
         dispatch_after(dispatch_time(DISPATCH_TIME_NOW, Int64(Double(NSEC_PER_SEC) * 0.09)), dispatch_get_main_queue()) { () -> Void in