2016-08-04 33 views
1

我用翠鳥https://github.com/onevcat/Kingfisher斯威夫特2解析和翠鳥緩存圖片

庫,以便我可以緩存圖像,如果有任何人都熟悉它,我想一​​些提示。 所以我有以下代碼

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

當我第一次進入它通常加載與這個好anymation圖像查看。但我也有一個刷新按鈕,這使查詢解析,並檢查是否有任何新的食譜,然後它從收集視圖中重新加載數據,並打印「完成」

這是否意味着它下載圖像再次?或者它從緩存中加載它們?

我在問,因爲它在單元格內以不同方式添加圖像,而不是第一次加載圖像。

有什麼想法?

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下載。所以這是正確的,但也是我的。恭喜! –

+0

當我調用tableview圖像刷新數據未更新使用翠鳥 –