2016-08-04 17 views
1

Ich bin mit Kingfisher https://github.com/onevcat/KingfisherSwift 2 Parse und Kingfisher Cache Bilder

Bibliothek, so kann ich die Bilder zwischengespeichert werden und wenn es jemand mit ihm vertraut möchte ich einige Hinweise. So habe ich den folgenden Code

let myCache = ImageCache(name: recipesClass.objectId!) 
let queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0) 
let optionInfo: KingfisherOptionsInfo = [ 
    .DownloadPriority(0.5), 
    .CallbackDispatchQueue(queue), 
    .Transition(ImageTransition.Fade(1)), 
    .TargetCache(myCache) 
] 
if let imageFile = recipesClass[RECIPES_COVER] as? PFFile { 

let URL = NSURL(string: imageFile.url!)! 

cell.coverImage.kf_setImageWithURL(URL, placeholderImage: nil, 
    optionsInfo: optionInfo, 
    progressBlock: { receivedSize, totalSize in 
     print("\(indexPath.row + 1): \(receivedSize)/\(totalSize)") 
    }, 
    completionHandler: { image, error, cacheType, imageURL in 
     print("\(indexPath.row + 1): Finished") 
}) 

} else { 
    cell.coverImage.image = UIImage(named:"logo") 
} 

Wenn ich zuerst die Ansicht gibt Sie normalerweise die Bilder mit dieser guten anymation laden. Aber ich habe auch eine Schaltfläche zum Aktualisieren, die eine Abfrage zu Parse und es überprüft, ob es neue Rezept und dann lädt es die Daten aus der Sammlungsansicht neu und es "Fertig"

Gibt es bedeutet, dass es die Bilder herunterlädt nochmal? Oder es lädt sie aus Cache?

Ich frage, weil es die Bilder in den Zellen auf eine andere Weise anfügt als beim ersten Mal, dass es lädt.

Irgendeine Idee?

P.S. Was ich tun möchte, ist, dass ich in jeder Zelle das Bild mit der Objekt-ID jedes Rezepts zwischenspeichern möchte, also wenn die Zelle lädt und das Bild mit dieser eindeutigen Objekt-ID zwischengespeichert wird, um es aus dem Cache zu laden und nicht herunterzuladen .

Antwort

3

versuchen diesen Code:

var imageView:UIImageView!  
let mCa = ImageCache(name: "my_cache") 
    let imagePath = getImagePath("image url") 
    imageView.kf_setImageWithURL(NSURL(string: imagePath)!,placeholderImage: UIImage(named: "DefaultImageName"),optionsInfo: [.TargetCache(mCa)]) 
+0

Eigentlich nur runed ich einen Scheck und speichert es auf der Festplatte und es tut keine neuen Anfragen über eine URL zum Download machen. Also das ist richtig aber auch meins ist es auch. Glückwunsch! –

+0

wenn ich Auffrischungsdaten in Tabellenansicht Bild nicht mit Eisvogel aktualisiert aufrufen –