我有一个字符串,其中我用逗号分隔图片网址,然后将其拆分为数组: _______________
| | A | B |
|===+=====+=====|
| A | OK | X |
|---+-----+-----|
| B | X | OK |
|___|_____|_____|
。接下来,使用for循环我将下载的图像存储在let imagesLinks = imageLins.components(separatedBy: ",")
中:
imagesArray
现在的问题是它发送了调用但是没有调用for imag in imagesLinks
{
let img = UIImageView()
let activityIndicator: UIActivityIndicatorView = UIActivityIndicatorView.init(activityIndicatorStyle: .white)
let refreshBarButton: UIBarButtonItem = UIBarButtonItem(customView: activityIndicator)
self.navigationItem.rightBarButtonItem = refreshBarButton
activityIndicator.startAnimating()
let imgURL: URL = URL(string: "\(baseReportImageURL)\(imag)")!
img.sd_setImage(with: imgURL, completed: {
(image, error, cacheType, url) in
activityIndicator.stopAnimating()
imagesArray.append(image!)
self.photoCollection.reloadData()
})
// img.sd_setImage(with: imgURL, placeholderImage: nil,options: SDWebImageOptions(rawValue: 0), completed: { (image, error, cacheType, imageURL) in
// //activityIndicator.stopAnimating()
// imagesArray.append(image!)
// self.photoCollection.reloadData()
// })
}
块。如果我再次返回并再次推动视图控制器,它会立即进入completed:
块。所以我的假设是它可能已下载并缓存图像,当它再次被调用时,检查图像是否已经下载,因此它在那时运行块。 但是为什么它第一次跳过它?
其次,我在这个名为completed:
的自定义函数中调用来自viewDidLoad()
的自定义函数,这是我的for循环。此外,func downloadAndUpdateImagesAarray()
是一个集合视图,单元格上只有图像。