如何使用Swift制作随机背景颜色

我怎样才能使用Swift做一个随机的背景颜色函数?

import UIKit import AVFoundation class ViewController: UIViewController { var numberScreen = arc4random_uniform(20) var backgroundColor = arc4random() @IBOutlet weak var perfbadLabel: UILabel! @IBOutlet weak var randomNumber: UILabel! @IBOutlet weak var countLabel: UILabel! @IBOutlet weak var levelLabel: UILabel! var timer = NSTimer() var flashTimer = NSTimer() var count = 40 var labelcount = 1 var velocity = 0.25 //Color Background func colorBackground() { self.view.backgroundColor = UIColor.yellowColor() } 

您将需要一个函数来生成0到1范围内的随机CGFloat

 extension CGFloat { static func random() -> CGFloat { return CGFloat(arc4random()) / CGFloat(UInt32.max) } } 

然后你可以用这个来创build一个随机的颜色:

 extension UIColor { static func random() -> UIColor { return UIColor(red: .random(), green: .random(), blue: .random(), alpha: 1.0) } } 

如果你想要一个随机的阿尔法,只需创build另一个随机数字。

你现在可以像这样分配你的视图的背景颜色:

 self.view.backgroundColor = .random() 

做一个函数来产生随机颜色:

 func getRandomColor() -> UIColor{ //Generate between 0 to 1 let red:CGFloat = CGFloat(drand48()) let green:CGFloat = CGFloat(drand48()) let blue:CGFloat = CGFloat(drand48()) return UIColor(red:red, green: green, blue: blue, alpha: 1.0) } 

现在,只要你需要随机颜色,你可以调用这个函数。

 self.view.backgroundColor = getRandomColor() 

对于Swift 3:

 extension CGFloat { static var random: CGFloat { return CGFloat(arc4random()) / CGFloat(UInt32.max) } } extension UIColor { static var random: UIColor { return UIColor(red: .random, green: .random, blue: .random, alpha: 1.0) } } 

用法:

 let myColor: UIColor = .random