如何使用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