首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用Swift制作随机颜色

如何使用Swift制作随机颜色
EN

Stack Overflow用户
提问于 2015-04-22 01:24:52
回答 6查看 57.8K关注 0票数 99

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

    }
}
EN

回答 6

Stack Overflow用户

发布于 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()
票数 211
EN

Stack Overflow用户

发布于 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
票数 98
EN

Stack Overflow用户

发布于 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()
票数 36
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29779128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档