Ich verwende diese Bibliothek in meiner App für Banner. Ich versuche, den Link zu erhalten, indem ich den JSON analysiere.
Die Bilder werden in der slideshow
-Ansicht nicht angezeigt. Wenn ich die slideshow
-Ansicht drücke, funktioniert alles gut. Ich dachte, dass es ein Problem mit meinem Complete-Handler gäbe.
Aber ich kann es noch nicht lösen:)
Sie haben wahrscheinlich ein Threading-Problem. Es gibt keine Garantie, dass der Banner-Beendigungshandler für den Hauptthread aufgerufen wird. Sie müssen explizit zum Hauptthread wechseln, bevor Sie irgendetwas tun, das Ihre Eigenschaften oder (besonders) die Schnittstelle berührt.
Ich denke, Ihr Problem könnte sein, dass Sie erwarten, dass die Bilder sofort verfügbar sind, aber sie müssen vorher heruntergeladen werden, damit sie nicht sofort verfügbar sind, nachdem Ihre viewDidLoad
-Methode beendet wurde. Deshalb sollten Sie Ihre Diashow wahrscheinlich in der viewDidLoad
und nicht in Ihrer bannershow()
-Methode konfigurieren. So etwas könnte eine Verbesserung sein:
}
Sie führen eine Schleife in Banners fun aus
für den Index in 0 ... count-1 {
let Bild: String = json ["image_path"] [index] .stringValue
lass quelle: AlamofireSource = AlamofireSource (urlString: image)!
self.Banner.append (Quelle)
}
Ersetzen Sie diesen Code in einer anderen Methode und platzieren Sie ein optionales
var Bild: String? = json ["image_path"] [index] .stringValue
oder legen Sie ein Daumenbild, damit Sie bestätigen, dass das Bild erfolgreich heruntergeladen wurde oder nicht.
Lass es mich wissen, wenn es funktioniert
Danke, Happy Coding
Nicht wirklich sicher, aber ich nehme an, dass, da Ihre Bilder heruntergeladen werden müssen, sie null sind, wenn Sie self.slideshow.setImageInputs(self.Banner)
aufrufen, wodurch das Bild intern aus der Liste in eine Bildansicht gesetzt wird, die in der scrollView hinzugefügt wird. Eine Möglichkeit, an die ich denken kann, ist die Verwendung von SDWebImage , um das Bild auf imageView zu setzen, so dass es die jeweiligen imageViews aktualisiert, sobald das Bild angezeigt wird bereit (heruntergeladen). Ich denke, Sie müssen es in der Klasse InputSource.swift
in der Methode setToImageView(_:)
verwenden. Sie müssen dies jedoch überprüfen, das ist das einzige mögliche Problem, das ich denken könnte, das Ihr Problem verursachen könnte.
Tags und Links ios swift viewdidload completionhandler