2016-08-04 11 views
1

私はので、私は、画像をキャッシュすることができますし、それに精通している誰もがある場合、私はいくつかのヒントが欲しいをKingFisher https://github.com/onevcat/Kingfisherスウィフト2解析とをKingFisherキャッシュ画像

ライブラリを使用しています。 私は最初、それはこの良いanymationで、通常の画像をロードするビューを入力するので、私は次のコード

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") 
} 

を持っています。しかし、私はまた、新しいレシピがあるかどうかチェックし、コレクションビューからデータを再ロードし、 "Finished"をプリントする、更新ボタンを持っています。

これは、再び?それとも、キャッシュからロードしますか?

最初にロードするのではなく、セルの内部に別の方法でイメージを追加するので、私は尋ねています。

P.S.私は何をしたいのですが、各セルでは、各レシピのオブジェクトIDでイメージをキャッシュしたいので、セルがロードされ、この一意のオブジェクトIDでキャッシュされたイメージがキャッシュからロードされ、 。

答えて

3

は、このコードを試してみてください。

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

は、実際に私はちょうどチェックをルーン文字が刻ま、それがディスク上にキャッシュし、それがURL経由でダウンロードするすべての新しい要求を行うdoesntの。だから、これは正しいですが、私もです。おめでとう! –

+0

キングフィッシャーを使用して更新されていないテーブルビューの画像をリフレッシュするとき –

関連する問題