如何异步将图像插入CollectionView

时间:2019-03-01 17:22:22

标签: swift

我正在尝试将图像异步插入collectionView,因为图像会使渲染变慢。该代码可以插入图像,但是某些图像显示两次。如何在collectionView的正确位置设置图像?

class fooCollectionViewCell {
   imageView.loadImageAsynchronously(url: "https://~")
}

extension UIImageView {
    func loadImageAsynchronously(url: URL?) -> Void {

        if url == nil {
            self.image = UIImage(named: "no_image")
            return
        }

        DispatchQueue.global().async {
            do {
                let imageData: Data? = try Data(contentsOf: url!)
                DispatchQueue.main.async {
                    if let data = imageData {
                        self.image = UIImage(data: data)
                    } else {
                        self.image = UIImage(named: "no_image")
                    }
                }
            } catch {
                DispatchQueue.main.async {
                    self.image = UIImage(named: "no_image")
                }
            }
        }
    }
}

0 个答案:

没有答案