Ich versuche, eine Liste von Elementen anzuzeigen. Mein Endspiel zeigt ein Raster mit Bildern aus einer Reihe von Strings, bei denen es sich um URLs und Dateinamen in meiner IOS-App handelt.Anzeige UIImage mit einem Bild von einer URL
Ich habe eine Collection, die ein Raster von Bildern über ein Array von String-Dateinamen angezeigt wird, und das funktioniert:
Array:
var tableImages: [String] = ["car.jpg", "bus.jpg", "plane.jpg"]
Code, der funktioniert:
cell.imgCell.image = UIImage(named: tableImages[indexPath.row])
Mein nächster Schritt ist das Ermitteln des Codes zum Anzeigen eines Gitters von Bildern über ein Array von String-URLs. Und das ist meine Frage. Wie zeige ich ein Bild von einer URL an?
Array:
var tableImages: [String] = ["http://www.hotelstmarie.com/wp-content/uploads/2014/12/HSM_Guest-Rooms_1500x750-06-02-2015.jpg", "http://media-cdn.tripadvisor.com/media/photo-s/03/4f/b0/58/aviva-by-kameel.jpg"]
Code, das funktioniert:
?
Hinweise:
Ich habe andere Stackoverflow Fragen über die Angelegenheit überprüft, aber sie sind von Jahren und der Umzug to swift hat ihre Antworten veraltet gemacht.
Nachdem ich herausfinden, wie man URL-Bilder anzeigen werde ich nur einige if-Anweisungen zu erkennen, URL oder Dateiname, um es zu meinem Endspiel zu machen, aber das ist nicht Teil dieser Frage.
EDIT 1
-Code um meinen Code oben:
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell: CollViewCell = collectionView.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath) as! CollViewCell
cell.labelCell.text = tableData[indexPath.row]
cell.imgCell.image = UIImage(named: tableImages[indexPath.row])
return cell
}
EDIT 2
Alamofire Verwendung:
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell: CollViewCell = collectionView.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath) as! CollViewCell
cell.labelCell.text = tableData[indexPath.row]
let imageUrl = NSURL(string: tableImages[indexPath.row])
cell.imgCell.af_setImageWithUrl(imageUrl, placeholderImage: nil, filter: nil, imageTransition: .CrossDissolve(0.2))
return cell
}
gibt diesen Fehler:
Value of type 'UIImageView' has no member 'af_setImageWithUrl'
Danke für den Vorschlag, ich habe es gerade ausprobiert, kannst du meine Bearbeitung 2 sehen? – Rorschach
@Rorschach Am Anfang Ihrer Datei müssen Sie 'import AlamofireImage' zu Ihrem Projekt hinzufügen. Hier ist ein Link zum Repo mit Anweisungen zur Installation: https://github.com/Alamofire/AlamofireImage (es verwendet entweder Cocoapods oder Karthago) – EricDS
@Rorschach meine schlechte, ich schrieb den Namen der Methode falsch (ich tippte 'af_setImageWithUrl' und es war' af_setImageWithURL'). Ich habe meine Antwort mit der richtigen Methode bearbeitet. – EricDS