2017-12-10 16 views
1

1から10までの乱数を生成するはずの私のアプリにコードを書きました。画像の名前はすべて1-10です。次に、そのイメージをUIImageViewの画面に表示することになっています。ここに私のコードは次のとおりです。Swiftコードが動作しないのはなぜですか?

import UIKit 
import Foundation 

class ViewController: UIViewController { 
    @IBOutlet var QuoteImage: UIImageView! 

    func randomImagePicker() { 
     var QuoteImages: [UIImage] { 
      var QuoteImages: [UIImage] = [] 
      // Create images named 1 - 10 
      let randomImageIndex = Int(arc4random_uniform(10) + 1) 
      // Assign the image property of the imageView to the element behind the random index in the images array 
      self.QuoteImage.image = QuoteImages[randomImageIndex] 
      let image = UIImage(named: "\(randomImageIndex)")! 
      QuoteImages.append(image) 
      // Create a random index 
      return QuoteImages 
     } 
    } 
} 
+0

「その画像」を表示しますか?どれ?最初の1つ?あなたは画像の配列を持っているので、私はあなたが見せたいと思っています。 – Rob

+0

無作為に生成された画像 –

+0

しかし、私はなぜ 'QuoteImages'が配列であるのか分かりません。 'UIImage 'ではなく、単なる' UIImage'ではないでしょうか?そして、 'QuoteImage'の' image'プロパティをあなたが選択したイメージに設定することができます。 – Rob

答えて

0

私は単純にインデックスを取得し、それに応じて画像ビューのimageプロパティを設定することをお勧めしたい:

class ViewController: UIViewController { 
    @IBOutlet var quoteImageView: UIImageView! 

    func randomImagePicker() { 
     let index = Int(arc4random_uniform(10) + 1) 
     quoteImageView.image = UIImage(named: "\(index)")! 
    } 
} 

あなたには、いくつかの他の目的のために配列が必要な場合は、説明しますあなたの意図は何だったのでしょうか、それをどのように実現するかを明確にすることができます。しかし、イメージビューのimageを何らかのランダムイメージに設定しようとしているだけの場合は、上記で十分です。

+0

ありがとうございます、これはビューに画像を表示しますか? –

+0

はい、 'randomImagePicker'を呼び出すと、イメージを設定する必要があります。率直に言えば、あなたのコードが "subscript out of range"(配列に画像を追加する前に 'self.QuoteImage.image = QuoteImages [randomImageIndex]'を設定している)でクラッシュしていないのはわかりません。そして、そうでなくても、あなたは 'self.QuoteImage.image'を設定しました。あなたが' UIImage(名前: "\(randomImageIndex)")!あなたは 'UIImage'を取得し、それに応じてイメージビューの' image'プロパティを設定するだけです。 – Rob

+0

正しく呼び出されない –

関連する問題