2017-06-18 8 views
0

私は迅速に新しいです。誰が助けることができますか?私は3つのリンクを持つ配列を持っています。この配列から1つのリンクを取り、UIImageViewで次に2番目のリンクを表示し、次に3番目に表示できますか?私は1つのリンクで作るが、どのように私が配列で作ることができるか理解していない。 Thnx。リンクから配列の値を取得するにはどうすればよいですか?

class ViewController: UIViewController { 

    @IBOutlet weak var imgView: UIImageView! 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     var image = UIImage() 
     var imageData: Data? 
     let links = ["http://s.ill.in.ua/i/gallery/950x0/2694/146192.jpg","http://s.ill.in.ua/i/gallery/950x0/2694/146190.jpg","http://s.ill.in.ua/i/gallery/950x0/2694/146202.jpg"] 
     let url = URL(string: links[0]) 
     do { 
      imageData = try Data(contentsOf: url!) 
     } 
     catch { 
      print("error") 
     } 
     if let value = imageData { 
      image = UIImage(data:value)! 
      imgView.image = image 
     } 
    } 

} 
+0

イメージビューに3つのリンクを1つずつ表示すると、最後のものだけが表示され、コンピュータが速すぎます。 Btw:**決して**リモートの 'URL'からデータをロードする' Data(contentsOf')のような同期メソッドを使用し、 'do-catch'式の後に' do'ブロックで失敗するデータを使用しないでください。 – vadian

+0

私はそれを理解していますが、おそらくDispatchQueueを遅延のために使用することができます –

+0

このリンクを使用して、簡単にサーバーからイメージをロードできます:https://stackoverflow.com/a/37019507/ 3400991 –

答えて

0

あなたは簡単にこのような配列を反復処理することができます

for link in links { 
    // This will iterate through array, so you can do something specific on each step 
    let url = URL(string: link) 
    do { 
     imageData = try Data(contentsOf: url!) 
    } 
    catch { 
     print("error") 
    } 
    if let value = imageData { 
     image = UIImage(data:value)! 
     imgView.image = image 
     print("Updated imageView with \(link)!") 
    } 
} 
+0

ありがとうございます) –

+0

あなたは大歓迎です。 –

0

ただ、この方法を使用します。

let links = ["http://s.ill.in.ua/i/gallery/950x0/2694/146192.jpg","http://s.ill.in.ua/i/gallery/950x0/2694/146190.jpg","http://s.ill.in.ua/i/gallery/950x0/2694/146202.jpg"] 

は(しばらくの間)には3種類のImageViewのを取るか、uがにテーブルビューを使用することができます画像を表示し、次のリンクを使用:https://stackoverflow.com/a/37019507/3400991

for linkValue in links { 
    yourimageview.imageFromServerURL(urlString: linkValue as! String) 
} 

これはあなたのイメージビューにイメージを表示する方法の1つです。

関連する問題