swift 随机生成背景颜色
2014-06-16 22:33
429 查看
swift是一门新语言,相关的文档资料现在基本上还不是很完整。在尝试开发过程中,走了不少弯路。在这里记录一下自己的”路“,希望以后能少走弯路。
生成随机背景颜色使用的语法和C#或者JAVA基本一致。
其中UIView是在设备上显示出来的从UIView继承到的对象,都会有这个属性。
其属性值是UIColor对象,而UIColor对象的构造函数有:
其它的构造函数比较复杂,相对来说先从这个构造函数入手,应该比较容易:
在这里注意的是rgb以及alpha值是CGFloat值,是Float的别名。最大值是1,而不是255,可能是OC继承过来比较特殊有意思的表示方式。开始我一直注意到这个,发现背景颜色一直不随着变化。
既然是随机产生颜色,就要使用到随机函数。swift里面有arc4random,rand,random以及rand_r函数可以使用,在这里使用random即可达到效果。
random随机函数返回的值是CLong, 而我们所需要的颜色值是CGFloat, 即:Float。需要在将生成的结果转换为Float
将以上代码放到按钮的事件里即可。记得VIEW上必须有个txta的文本框来查看结果。
总结:
1)swift里rgb颜色值最大是1的Float
2)除法运算符号是 / , %是求模的运算符。
生成随机背景颜色使用的语法和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 - 生成随机颜色(Extension UIColor)
- js随机生成网页背景颜色的方法
- 随机背景颜色的生成
- Swift - 生成随机颜色(Extension UIColor)
- js随机生成网页背景颜色的方法
- JSP彩色验证码,生成有4个随机数字和杂乱背景的图片,数字和背景颜色会改变,服务器端刷新
- java随机生成十六进制颜色
- JS生成随机颜色
- vb.net 2010 生成随机颜色
- C#生成随机颜色
- C#生成随机颜色,返回16进制字符串
- js随机改变背景颜色
- 在.net(C#)中随机生成较深的颜色
- 随机颜色的生成
- 自动生成TabHost,TabHost背景颜色设置
- 生成随机颜色
- js随机改变背景颜色
- iphone 随机颜色生成
- C#生成一个复杂的验证码、背景随机、字体随机、中英文数字随机
- WPF生成随机颜色问题..