如何使用Swift创建随机颜色函数?
import UIKit
class ViewController: UIViewController {
var randomNumber = arc4random_uniform(20)
var randomColor = arc4random()
//Color Background randomly
func colorBackground() {
// TODO: set a random color
view.backgroundColor = UIColor.yellow
}
}
发布于 2015-04-22 01:34:04
您将需要一个函数来生成0到1范围内的随机CGFloat
:
extension CGFloat {
static func random() -> CGFloat {
return CGFloat(arc4random()) / CGFloat(UInt32.max)
}
}
然后,您可以使用此命令创建随机颜色:
extension UIColor {
static func random() -> UIColor {
return UIColor(
red: .random(),
green: .random(),
blue: .random(),
alpha: 1.0
)
}
}
如果你想要一个随机的alpha,也可以为它创建另一个随机数。
现在可以像这样指定视图的背景色:
self.view.backgroundColor = .random()
发布于 2017-04-12 17:39:03
对于Swift 4.2
extension UIColor {
static var random: UIColor {
return UIColor(
red: .random(in: 0...1),
green: .random(in: 0...1),
blue: .random(in: 0...1),
alpha: 1.0
)
}
}
对于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
发布于 2016-08-19 18:00:24
创建一个函数来生成随机颜色:
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()
https://stackoverflow.com/questions/29779128
复制相似问题