Ich benutze die Haneke-Bibliothek zum Download, laden & Cache-Bilder. Dies funktioniert hervorragend, außer wenn zu schnell gescrollt wird, lädt es das falsche Bild oder manchmal überhaupt kein Bild.Swift - UITableView - Falsche Bilder laden beim schnellen Scrollen
Es scrollt schneller als es im Hintergrund herunterladen kann, so dass das nächste Bild in der Warteschlange in die falsche Zelle geladen werden kann.
Hier ist der Code zum Anfordern der Bilder über das Netzwerk & aus dem Cache.
let fetcher_net = NetworkFetcher<UIImage>(URL: finished_URL!)
let fetcher_disk = DiskFetcher<UIImage>(path: check_apost)
cache.fetch(fetcher: fetcher_disk).onSuccess { image in
//cell.card_imageIV.hnk_fetcher.cancelFetch()
//print("Image Cache found")
cell.card_imageIV.image = image
}.onFailure{ image in
//print("Unavailable to find image cache, fetching from network")
cache.fetch(fetcher: fetcher_net).onSuccess { image in
//print("Network image request SUCCESS")
cell.card_imageIV.image = image
}
}
Auch in der benutzerdefinierten Zelle Swift-Datei, gibt es alles, was ich in dem folgenden Verfahren stellen kann, die jede Anforderung zu stoppen, wenn die Zellen aus dem Bildschirm sind?
override func prepareForReuse() {
super.prepareForReuse()
// Increment the generation when the cell is recycled
//card_imageIV.hnk_cancelSetImage()
//card_imageIV.image = nil
}
Ich habe versucht, dies seit Wochen herauszufinden. Wenn jemand über bessere Bibliotheken verfügt, um dieses Problem zu beheben, lassen Sie es mich wissen.