2016-06-30 13 views
0

enter image description hereenter image description here Ich habe diese Funktion, die eine XML-Datei ist, wollte ich die Bild-URL in einem Array speichern und es unter UIImageView anzeigen, aber wie es geht? Tue ich es falsch?Wie kann ich mein Bild aus dem xmlArray anzeigen?

func latestNews(){ 

    Alamofire.request(.POST, "https://api.jocom.com.my/feed", parameters: ["req" : "news"]) 

     .responseData { response in 

      print(response.request) // original URL request 

      print(response.result) // result of response serialization 

      let xmlLatestNews = SWXMLHash.parse(response.data!) 
      print(xmlLatestNews) 


      for elem in xmlLatestNews["rss"]["channel"]["item"]{ 

       let latestNewsImg: UIImageView = UIImageView(frame: CGRectMake(0.0, 0.0, 100, self.latestNewsScrollView.frame.size.height)) 
       latestNewsImg.backgroundColor = UIColor.redColor() 


       let thumbnailURL = NSURL(string: (elem["thumbnail"].element!.text!)) 

       //self.xmlArray is a NSURL array (var xmlArray = [NSURL]()) 

       self.xmlArray.append(thumbnailURL!) 


       self.latestNewsScrollView.addSubview(latestNewsImg) 
      } 


      print(self.xmlArray) 

    } 
} 

Antwort

0

Wenn viele Elemente vom Server zurückgegeben werden, würde ich normalerweise ein Modellobjekt erstellen, um diese Eigenschaften zu speichern. In Ihrem Fall, wenn es nur URL ist. Ich würde es als String-Array speichern.

var stringURLArray = [String]() 
stringURLArray.append(elem["thumbnail"].element!.text) 

Dann abrufen nur die Zeichenfolge zurück und zeigen das Bild

let stringURL = stringURLArray[indexPath.row] as? String 
let url = NSURL(string: stringURL) 
let data = NSData(contentsOfURL: url!) 
cell.yourImage.image = UIImage(data: data!) 

zu bestimmten Bild als Beispiel zuzuweisen.

let imageView1 = UIImageView(frame: CGRectMake(0, 0, 200, 50)) 
    let stringURL = stringURLArray[0] // you can choose which index you want 
    let url = NSURL(string: stringURL) 
    let data = NSData(contentsOfURL: url!) 
    imageView1.image = UIImage(data: data!) 
    self.view.addSubview(imageView1) 

Um eine Schleife zu erstellen und programmatisch Bild hinzufügen:

var position: CGFloat = 0.0 

    for urlString in (stringURLArray).reverse() { 
     let imageView1 = UIImageView(frame: CGRectMake(0 + position, 0, 200, 50)) 
     let url = NSURL(string: urlString) // 
     let data = NSData(contentsOfURL: url!) 
     imageView1.image = UIImage(data: data!) 
     self.view.addSubview(imageView1) 
     position += 200 // space out the width of each image 
    } 
+0

im nicht in einem Tableview angezeigt wird, nur eine normale Ansicht ist, wollte ich es in einem Bild Scroll-Ansicht angezeigt werden soll. wie es geht? Dies ist die Funktion, die ich bei viewdidload() aufrufen werde. – mimi93

+0

Wenn es viele Bilder gibt, können Sie eine for-Schleife auf dem Array in Ihrem Bild scrollview anzeigen, nachdem Sie alle Elemente in der Antwortvervollständigungs-Handler anfügen –

+0

können Sie mir zeigen Wie? Entschuldigung, ich bin sehr neu in all dem, und Ihre Hilfe wird sehr geschätzt – mimi93

Verwandte Themen