码迷,mamicode.com
首页 > 其他好文 > 详细

swift 随机生成背景颜色

时间:2014-06-18 13:36:57      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:class   blog   code   java   ext   color   

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 随机生成背景颜色,布布扣,bubuko.com

swift 随机生成背景颜色

标签:class   blog   code   java   ext   color   

原文地址:http://www.cnblogs.com/sxlfybb/p/3791826.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!