如何在swift中使用图像视图生成随机图像

我只是遵循treehouse课程,并创build了我的第一个Fun Fact应用程序。它们生成一个随机数组引号。

需要:

我已经放置图像视图使用storyboard.Already当按下一个button随机数组引号将生成。但我需要时,同一个buttonpressed随机图像应产生。我是新来的迅速。

这是factbook.swift

 struct FactBook { // stored in arry to show all quotes let factsArray = [ "You have to dream before your dreams can come true.", "To succeed in your mission, you must have single-minded devotion to your goal.", "You have to dream before your dreams can come true.", "Love your job but don't love your company, because you may not know when your company stops loving you.", "Failure will never overtake me if my definition to succeed is strong enough.", ] //make a random quote func randomFact() -> String { // // let unsignedRandomNumber = arc4random_uniform(unsignedArrayCount) // let unsignedArrayCount = UInt32(factsArray.count) let unsignedRandomNumber = arc4random_uniform(unsignedArrayCount) let randomNumber = Int(unsignedRandomNumber) // // let unsignedRandomNumber = arc4random_uniform(unsignedArrayCount) // let randomNumber = Int(signedRandomNumber) return factsArray[randomNumber] } } 

这是viewcontroller.swift

 class ViewController: UIViewController { @IBOutlet weak var funFactLabel: UILabel! @IBOutlet weak var funFactButton: UIButton! @IBOutlet weak var imgV: UIImageView! let factBook = FactBook() let colorWheel = ColorWheel() //method to define // let yourImage = UIImage(named: "apj") // let imageview = UIImageView(image: yourImage) override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. funFactLabel.text = factBook.randomFact() self.view.backgroundColor = UIColor(patternImage: UIImage(named: "apj")!) // let yourImage = UIImage(named: "apj") // let imageview = UIImageView(image: yourImage) // self.view.addSubview(imageview) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } @IBAction func showFunFact() { let randomColor = colorWheel.randomColor() view.backgroundColor = randomColor funFactButton.tintColor = randomColor //funFactButton.tintColor = clearcolor funFactLabel.text = factBook.randomFact() } } 

解决scheme主要是使用与随机文本相同的方法。 总结一下,你应该有一个图像arrays,并select一个随机图像的function。 然后从视图控制器调用该函数。 这种方法的一个可能的实现是:

将这个数组添加到你的FactBook

 let factsImagesArray = [ "image1.png", "image2.png", "image3.png", "image4.png", "image5.png", ] 

将此方法添加到您的FactBook

 func randomFactImage() -> UIImage { let unsignedArrayCount = UInt32(factsImageArray.count) let unsignedRandomNumber = arc4random_uniform(unsignedArrayCount) let randomNumber = Int(unsignedRandomNumber) return UIImage(named: factsImageArray[randomNumber])! } 

并在您的showFunFact更改showFunFact为:

 @IBAction func showFunFact() { let randomColor = colorWheel.randomColor() view.backgroundColor = randomColor funFactButton.tintColor = randomColor funFactLabel.text = factBook.randomFact() imgV.image = faceBook.randomFactImage() } 

Ofc你应该有你的资源image1.png,image2.png …

 @IBAction func randomimage(sender: AnyObject) { //list of Images in array let image : NSArray = [ UIImage(named: "1.jpg")!, UIImage(named: "2.jpg")!, UIImage(named: "3.jpg")!, UIImage(named: "4.jpg")!, UIImage(named: "5.jpg")!, UIImage(named: "6.jpg")!, UIImage(named: "7.jpg")!] //random image generating method let imagerange: UInt32 = UInt32(image.count) let randomimage = Int(arc4random_uniform(imagerange)) let generatedimage: AnyObject = image.objectAtIndex(randomimage) self.myimage.image = generatedimage as? UIImage }