SDWebImage使用完成块进行预取

时间:2018-01-05 21:14:21

标签: ios swift sdwebimage

我的目标是覆盖一个带有加载屏幕的collectionView'直到SDWebImage将预先获取的图像数据中的所有图像加载到缓存中之后才会隐藏它。

在我的viewDidLoad中,我检索了一组图像URL,用于填充集合视图。一旦检索到它们,我计划使用SDWebImagePrefetcher来处理数组。

到目前为止,我有以下内容:

let urls : [URL] = [URL(string: "https://trialwebsite.com/image1.png")!,URL(string: "https://trialwebsite.com/image2.png")!,URL(string: "https://trialwebsite.com/image3.png")!]

 SDWebImagePrefetcher.shared().prefetchURLs(urls)

我正在努力弄清楚如何使用完成块来隐藏“加载”#39;一旦处理完所有图像,就会进行屏幕显示。

任何帮助都非常感激。

2 个答案:

答案 0 :(得分:0)

您可以使用prefetchURLs:completed:而不是prefetchURLs,它会有一个完成块(自编写Swift后关闭)参数包含finishedCountskippedCount无符号整数:

如方法文档中所述:

  

<强> completionBlock

     

预取完成时要调用的块

这似乎是你要求的。所以它会是这样的:

SDWebImagePrefetcher.shared().prefetchURLs(urls) { finishedCount, skippedCount in
    // hide the 'loading' screen...
    // you might need to implement your own counting logic 
    // to make sure that all images have been processed.
}

答案 1 :(得分:0)

在Swift v4.1&amp; SDWebImage v3.8.2

SDWebImagePrefetcher.shared().prefetchURLs(arrayOfURLS, progress: nil, completed: { finishedCount, skippedCount in
        print("Prefetch complete!")
    })