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 随机生成背景颜色的更多相关文章

  1. [JS9] document's bgColor改变背景颜色

    <HTML> <HEAD> <TITLE>设置背景颜色</TITLE> </HEAD> <BODY> <CENTER> ...

  2. iOS 原生实现生成二维码(CoreImage)工具类,不依赖第三方库,可自定义背景颜色,添加logo(Swift 4.0)

    import Foundation import CoreImage import UIKit extension UIColor { var coreImageColor: CIColor { re ...

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

    一.效果图 二.代码 - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the v ...

  4. js随机生成验证码及其颜色

    今天迎来了2018年第一场雪,这个美好的日子,总的写点什么纪念一下,在这里写了一个在js中使用Math.random()函数,随机生成四位数的验证码及其验证码换颜色. js代码如下: var arra ...

  5. js随机背景颜色

    // 要求: 随机生成颜色RGB 核心点 :(0,0,0) rgb 每一组的数字取值范围是 0~255 // 需要随机生成 0~255 之间的整数 function getRandom(min, ma ...

  6. ios开发之--随机背景颜色

    记录个随机背景颜色的方法: + (UIColor*) randomColor{ NSInteger r = arc4random() % ; NSInteger g = arc4random() % ...

  7. 随机产生div背景颜色变化

    使一个DIV在每次刷新后变化背景颜色,很容易想到JS的random()函数:通过每次刷新页面产生使背景rgb随机产生 <!doctype html> <html> <he ...

  8. JavaScript随机生成颜色以及十六进制颜色 与RGB颜色值的相互转换

    /** * 随机生成颜色 * @return 随机生成的十六进制颜色 */ function randomColor(){ var colorStr=Math.floor(Math.random()* ...

  9. js随机生成验证码以及随机颜色

    Javascript通过Math.random()随机生成验证码. 代码如下: <!DOCTYPE html><html> <head> <meta char ...

随机推荐

  1. Swift (if while)

    Swift 分支 if if后的括号可以省略 if后只能接bool值 if后的大括号不能省略 let num1 = 3.0 let num2 = 4.0 let bool : Bool = true ...

  2. 自己用js写的日历(在考勤中使用,显示员工的日期的考勤情况)

    1.HTML部分 <div id="AttendanceDataDetailDiv"> <div class="A_close"> &l ...

  3. http - referer

    以前对Http中Referer的认识不够透彻.最近理了理,记录一下. 1 Referer可以记录访问的来源,统计访问量,可以用来防盗链. 2 客户端用js不能篡改Referer,用一些插件什么的可以达 ...

  4. Ztree插件,定位节点时(focus)不能进入可视区域BUG解决方案

    相关插件版本: jquery.ztree.exedit-3.4.js jquery.ztree.all-3.4.js jquery-1.8.0.js function onAsyncSuccess(e ...

  5. 中科院分词ICTCLAS5.0_JNI 使用方法

    1.简介 中国科学院计算技术研究所在多年研究基础上,耗时一年研制出了基于多层隐码模型的汉语词法分析系统 ICTCLAS(Institute of Computing Technology, Chine ...

  6. android switch(String)错误:Cannot switch on a value of type String for source level below 1.7

    switch语句的判断条件可以接受int,byte,char,short,不能接受其他类型只有JDK版本1.7以上才可以支持String 设置如下可解决问题:(若没有JDK1.7版,可下载一下安装)菜 ...

  7. tcp选项TCP_DEFER_ACCEPT

    tcp选项TCP_DEFER_ACCEPT http://blog.chinaunix.net/uid-23207633-id-274317.html 之前在项目测试的时候,如果第三次握手发完裸ack ...

  8. LaTeX字体相关

    以下内容均来自网络.   字体命令: 相应的字体声明都有相应的字体命令 family: \textrm{文本} \texttt{ } \textsf{  } shape : \textup{文本} \ ...

  9. Nagios监控ganglia的指标

    这是nagios与ganglia整合的一部分内容 . 通常我们会把ganglia的监控发送给一个主机,我们可以在这个主机上执行nc localhost 8649 可以获取到所有发往这个主机的信息,以x ...

  10. css3 选择器(二)

    接css3选择器(一) 八.结构性伪类选择器[:nth-child(n)] :nth-child(n)选择器用来匹配某个父元素的一个或多个特定的子元素,和jquery中一样. 其中"n&qu ...