Swift 中带有 RSS 提要数据源的表视图中的图像加载滞后

Image loading lag in tableview with RSS feed datasource in Swift

我正在使用 dispatch_async 从 rss 提要下载图像以避免滞后,但是当我快速滚动时,我可以看到图像在变化,这很烦人。我怎样才能避免这种情况?

这是我的代码:

let backgroundQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0)
    dispatch_async(backgroundQueue, {
        let url = NSURL(string: fImage)
        let data = NSData(contentsOfURL: url!)
        dispatch_async(dispatch_get_main_queue(), { 
            if data != nil {
                self.thumbnailIMG.image = UIImage(data: data!)!
            } else {
                self.thumbnailIMG.image = UIImage(named: "logo_new2")!
            }

         })

     })

这样试试:

import UIKit

class ViewController: UIViewController {

@IBOutlet weak var thumbnailIMG: UIImageView!
override func viewDidLoad() {
    super.viewDidLoad()
    self.thumbnailIMG.image = UIImage(named: "logo_new2")
    if let checkedUrl = NSURL(string: "http://staging.api.cheapeat.com.au/restaurants/1/photo") {
        downloadImage(checkedUrl)
    }
}
func downloadImage(url:NSURL){

    getDataFromUrl(url) { data in
        dispatch_async(dispatch_get_main_queue()) {

            self.thumbnailIMG.image = UIImage(data: data!)
        }
    }
}

func getDataFromUrl(urL:NSURL, completion: ((data: NSData?) -> Void)) {
    NSURLSession.sharedSession().dataTaskWithURL(urL) { (data, response, error) in
        completion(data: NSData(data: data))
        }.resume()
    }
}

这对我来说并不滞后。

也许这对你也有帮助。