swift 随机生成背景颜色

swift是一门新语言,相关的文档资料现在基本上还不是很完整。在尝试开发过程中,走了不少弯路。在这里记录一下自己的”路“,希望以后能少走弯路。

生成随机背景颜色使用的语法和C#或者JAVA基本一致。

UIView.backgroundColor = UIColor

其中UIView是在设备上显示出来的从UIView继承到的对象,都会有这个属性。

其属性值是UIColor对象,而UIColor对象的构造函数有:

    init(white: CGFloat, alpha: CGFloat)
    init(hue: CGFloat, saturation: CGFloat, brightness: CGFloat, alpha: CGFloat)
    init(red: CGFloat, green: CGFloat, blue: CGFloat, alpha: CGFloat)
    init(CGColor cgColor: CGColor!)
    init(patternImage image: UIImage!)
    init(CIColor ciColor: CIColor!)

其它的构造函数比较复杂,相对来说先从这个构造函数入手,应该比较容易:

init(red: CGFloat, green: CGFloat, blue: CGFloat, alpha: CGFloat)

在这里注意的是rgb以及alpha值是CGFloat值,是Float的别名。最大值是1,而不是255,可能是OC继承过来比较特殊有意思的表示方式。开始我一直注意到这个,发现背景颜色一直不随着变化。

既然是随机产生颜色,就要使用到随机函数。swift里面有arc4random,rand,random以及rand_r函数可以使用,在这里使用random即可达到效果。

random随机函数返回的值是CLong, 而我们所需要的颜色值是CGFloat, 即:Float。需要在将生成的结果转换为Float

        var color:Float = CGFloat(CGFloat(random())/CGFloat(RAND_MAX))
        var color1:Float = CGFloat(CGFloat(random())/CGFloat(RAND_MAX))
        var color2:Float = CGFloat(CGFloat(random())/CGFloat(RAND_MAX))
        var color3:Float = CGFloat(CGFloat(random())/CGFloat(RAND_MAX))
        txta.text = "result: \(color) \(color1) \(color2)";
        txta.backgroundColor = UIColor(red: color, green: color1, blue: color2, alpha: 1);

  

将以上代码放到按钮的事件里即可。记得VIEW上必须有个txta的文本框来查看结果。

总结:

1)swift里rgb颜色值最大是1的Float

2)除法运算符号是 / , %是求模的运算符。

swift 随机生成背景颜色

时间: 2024-08-24 01:20:00

swift 随机生成背景颜色的相关文章

js选择颜色小游戏(随机生成不含重复数字的数组,通过数组中的数控制定义好的数组)

<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>js网页版小游戏</title> <style media="screen"> .wrap { width: 577px; outline: 1px solid hotpink; margin: 100px auto; box-shadow: 0 0 5px; } .

小技巧----随机背景颜色

#define COLOR_VALUE arc4random() % 256 /255.0//宏定义 @interface FirstViewController (){    NSTimer *_timer;}//定义一个事件的属性 [self createBackCorlor];//方法的调用 #pragma mark - 定时器方法- (void)createBackCorlor{    _timer = [NSTimer scheduledTimerWithTimeInterval:0.

JavaScript随机生成颜色的方法

JavaScript随机生成颜色的方法 这篇文章主要介绍了JavaScript随机生成颜色的方法的相关资料,非常不错,代码简单易懂,具有参考借鉴价值,需要的朋友可以参考下 废话不多说了直接给大家贴js代码了,具体代码如下所述: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 <!DOCTYPE html> <html>

iOS-点击视图,视图背景颜色随机更改

一.效果图 二.代码 - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. self.title = @"背景颜色的随机显示"; } //点击视图,视图颜色随机更改 - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent

背景颜色的随机显示

直接上代码: - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. self.title=@"背景颜色的随机显示"; CGFloat red = (CGFloat)arc4random() / 0x100000000; CGFloat green = (CGFloat)arc4random() / 0x100000000; CGFloat blue =

随机产生div背景颜色变化

使一个DIV在每次刷新后变化背景颜色,很容易想到JS的random()函数:通过每次刷新页面产生使背景rgb随机产生 <!doctype html> <html> <head> <meta charset="utf-8"> <meta name="copyright"> <title>随机变化背景色</title> <style> #div1 { width:200px;

PHP生成随机的HTML颜色代码

实用的6位颜色代码生成小程序,适用于标签云中,以下是我 最近在做标签云的效果中,生成了随机的颜色效果,在此使用一下: <?php function randomColor() {     $str = '#';     for($i = 0 ; $i < 6 ; $i++) {         $randNum = rand(0 , 15);         switch ($randNum) {             case 10: $randNum = 'A'; break;     

swift – 具有圆角和背景颜色的NSButton

http://www.voidcn.com/article/p-srkqadwc-btx.html 我想要一个简单的按钮(带圆角的按钮),并添加背景. 我已经尝试过两件事情: 1 – 使用圆形按钮图像:这是很好的,直到我需要缩放按钮,这导致圆形部分看起来丑陋. 2 – 扩展按钮并添加颜色 – 但是当我点击按钮时,我有麻烦 – 我希望"推"状态与"常规"状态处于相同的颜色,但情况并非如此. 这是我用来扩展按钮的代码: override func drawRect(di

随机生成16位颜色

createRandomColor() { let color = Math.floor((Math.random() * 256 * 256 * 256)).toString(16) while (color.length < 6) {//随机生成的可能只有3-6位字符串 color += Math.floor((Math.random() * 16)).toString(16) } return color }