ich auf ButtonRows mit einem Bild arbeite, die asynchron heruntergeladen wird, hier ist mein Code:Bild wird nicht angezeigt, bis die Zeile geklickt wird/gestampft
futurSection <<< ButtonRow("aaa") {
$0.title = ""
}.cellUpdate { cell, row in
cell.imageView?.imageFromServerURL("http://example.com/0x0ss2.jpg")
row.reload()
}.cellSetup({ (cell, row) ->() in
row.cell.height = {
return 150
}
})
ich eine Erweiterung für die UIImageView verwendet:
extension UIImageView {
public func imageFromServerURL(urlString: String) {
NSURLSession.sharedSession().dataTaskWithURL(NSURL(string: urlString)!, completionHandler: { (data, response, error) -> Void in
if error != nil {
print(error)
return
}
dispatch_async(dispatch_get_main_queue(), {() -> Void in
let image = UIImage(data: data!)
self.image = image
self.layoutSubviews()
if let myViewController = self.parentViewController as? ShowDetails {
myViewController.form.rowByTag("aaa")?.updateCell()
}
})
}).resume()
}}
Aber das Bild in der Zeile wird nicht sichtbar, bis ich auf die Zeile selbst klicke. Ich habe sogar updateCell aufgerufen und neu geladen, aber id funktioniert nicht.
Vielen Dank!
Was tun raw.reload()? – CZ54
Haben Sie versucht, ein lokales Bild zu erstellen, hat das funktioniert? Möglicherweise sind die Zellen geladen, bevor sie die Antwort vom Server erhalten haben. Aktualisieren Sie die Zelle nach der Antwort vom Server? –
@bobby Ich habe nur versucht, wenn es da wäre. –