Ich habe eine sehr einfache iOS App - sie hat TableView und eine Liste von benutzerdefinierten Zellen in diesem TableView. Es gibt eine ImageView (die downloadedFrom Methode, um Bilder zu laden) in jeder Zelle.Bilder werden nicht richtig geladen
Nachdem ich meinen Xcode auf Version 8 aktualisiert und das Projekt auf Swift 2.3 umgestellt habe, habe ich ein sehr interessantes Ergebnis bekommen, wenn ich die Liste der Elemente in TableView neu lade - die ersten Zellen auf dem Bildschirm haben keine Bilder und wenn ich anfange nach unten zu scrollen sehen Sie, dass andere Bilder gut geladen sind. Beim Zurückblättern nach oben - alle Bilder sind in Ordnung.
Ich habe auch versucht, die Art des Ladens von Bildern in die Bibliothek namens SDWebImage ändern, aber das Ergebnis ist das gleiche. Was ist falsch?
extension UIImageView {
func downloadedFrom(link link:String, contentMode mode: UIViewContentMode) {
guard
let url = NSURL(string: link)
else {return}
contentMode = mode
NSURLSession.sharedSession().dataTaskWithURL(url, completionHandler: { (data, response, error) -> Void in
guard
let httpURLResponse = response as? NSHTTPURLResponse where httpURLResponse.statusCode == 200,
let mimeType = response?.MIMEType where mimeType.hasPrefix("image"),
let data = data where error == nil,
let image = UIImage(data: data)
else { return }
dispatch_async(dispatch_get_main_queue()) {() -> Void in
self.image = image
}
}).resume()
}}
SDWebImage funktioniert perfekt, wenn Sie brauchen, dann lade ich meinen Code, den ich verwende –
Ich bin sicher, dass es gut funktioniert, aber es zeigt das gleiche Verhalten: erste Zellen haben keine Bilder, bis ich scroll – moonvader
Dann Platzhalter für verwenden Dies . Es zeigt Ihnen Ihr Platzhalterbild, bis Ihr Bild nicht heruntergeladen und nicht in die Bildansicht geladen wurde. –