我的目标是覆盖一个带有加载屏幕的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;一旦处理完所有图像,就会进行屏幕显示。
任何帮助都非常感激。
答案 0 :(得分:0)
您可以使用prefetchURLs:completed:
而不是prefetchURLs
,它会有一个完成块(自编写Swift后关闭)参数包含finishedCount
和skippedCount
无符号整数:
如方法文档中所述:
<强> 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!")
})