2017-02-04 1 views
-2

Hallo bin ich eine App mit swift 2.2 bin eine Daten von dem Server in diesem Daten bekommen mehrere Bilder bekommen, die durch Kommas getrennt ist zB ..,wie man mehrere Bilder, die durch Kommas zur Sammlungsansicht getrennt sind, mit swift

{ 
    "success": 1, 
    "error": 0, 
    "message": [{ 
     "title": "aver monitor", 
     "image": "3037-1486200291.jpg,5056_25326756.jpg", 
     "views": "0", 
     "price": "12000", 
     "postdate": "2017-02-04 14:54:51", 
     "type": "0" 
    }] 
} 

in diesem Bild Wert bin Bilder bekommen Ich muss diese Bilder an die Sammlung zu übergeben.

die Bilder vom Server immer sind, dass ich nicht mehr als 5 überschreitet und will nur 5, so dass ich die Funktion als schrieb anzuzeigen:

func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { 
    return 5 
} 

i kann in der Lage, um den Wert zu trennen durch Komma getrennt mit durch string (",") wenn ich den Wert übergebe, bekomme ich das gleiche Bild für 5 mal. Ich muss ein anderes Bild in der ganzen Zelle laden. Wenn es nur ein Bild gibt, muss ich dieses bestimmte Bild in die erste Zelle laden andere Zellen sollten statisches Bild laden, das irgendein Bild sein kann.

Code versuchte ich:

let json = JSON(data: data!) 

let imgString = json["message"]["image"].stringvalue 

let myData = imgString.componentsseperatedbystring(",") 

meine Datenquelle Methode:

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { 
    let cell = collectionView.dequeueReusableCellWithReuseIdentifier("editPendingCell", forIndexPath: indexPath) as! pendingEditCollectionViewCell 

    cell.myImage.sd_setImageWithURL(NSURL(string:pendingImageString)) 

    return cell 
} 
+0

Nicht verwandt, dass JSON nicht gut gestaltet ist. 'image' sollte ein Array von Strings sein, kein String. Haben Sie eine Option, das zu beheben, anstatt das schlechte Design zu programmieren? Außerdem weiß ich nicht, wie 'json [" message "] [" image "]' funktioniert hat, weil "message" ein Array von Wörterbüchern ist. Es hätte 'json [" message "] [0] [" image "]' sein sollen. – Rob

+0

Das Problem liegt in "pendingImageString". Aber Sie zeigen uns nicht, wo Sie das einstellen, daher ist es ein bisschen schwierig, Ihnen zu sagen, wie Sie es beheben können, außer dass Sie wahrscheinlich das Array mit dem verwirrenden Namen 'myData', nicht' pendingImageString' referenzieren. – Rob

+0

Auch nicht verwandt, aber Klassen sollten mit Großbuchstaben beginnen, z.B. 'PendingEditCollectionViewCell', nicht' pendingEditCollectionViewCell'. – Rob

Antwort

0

Ok. Basierend auf Kommentaren scheint es Ihnen gelungen, das "image" Schlüssel/Wert-Paar aus Ihrem JSON zu extrahieren.

Ihr Code scheint korrekt zu sein. Sie haben eine Linie

let myData = imgString.componentsseperatedbystring(",") 

Dieser Code ein Array erstellen sollte myData, die Ihre Bildnamen enthalten würde. Es wäre besser imageNames benannt.

Sie sollten dies eine Instanzvariable machen, und dann indizieren, um das Bild für jede Ihrer Zellen zu holen.

Wenn Sie Probleme haben, müssen Sie den End-to-End-Code anzeigen, der Ihr Array von Dateinamen erstellt, zusammen mit Informationen darüber, wo Sie diese Informationen speichern.

+0

Ich habe diesen Prozess gemacht, was Sie oben erwähnt haben, jetzt muss ich neue Zelle einfügen .. für zB .. Ich muss nur fünf Zelle anzeigen, wenn ImageName zwei Bild bedeutet, die erfolgreich in meine Collectionview übergeben jetzt möchte ich statische Bilder zu zeigen die verbleibende Zelle .... wie macht man das ???? – user7333282

+0

Was meinst du mit "... statische Bilder auf die verbleibende Zelle anzeigen ..." Welche statischen Bilder und welche "verbleibende" Zelle? Ihre Beschreibung ist vage und unklar. –

Verwandte Themen