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 随机生成背景颜色的更多相关文章
- [JS9] document's bgColor改变背景颜色
<HTML> <HEAD> <TITLE>设置背景颜色</TITLE> </HEAD> <BODY> <CENTER> ...
- iOS 原生实现生成二维码(CoreImage)工具类,不依赖第三方库,可自定义背景颜色,添加logo(Swift 4.0)
import Foundation import CoreImage import UIKit extension UIColor { var coreImageColor: CIColor { re ...
- iOS-点击视图,视图背景颜色随机更改
一.效果图 二.代码 - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the v ...
- js随机生成验证码及其颜色
今天迎来了2018年第一场雪,这个美好的日子,总的写点什么纪念一下,在这里写了一个在js中使用Math.random()函数,随机生成四位数的验证码及其验证码换颜色. js代码如下: var arra ...
- js随机背景颜色
// 要求: 随机生成颜色RGB 核心点 :(0,0,0) rgb 每一组的数字取值范围是 0~255 // 需要随机生成 0~255 之间的整数 function getRandom(min, ma ...
- ios开发之--随机背景颜色
记录个随机背景颜色的方法: + (UIColor*) randomColor{ NSInteger r = arc4random() % ; NSInteger g = arc4random() % ...
- 随机产生div背景颜色变化
使一个DIV在每次刷新后变化背景颜色,很容易想到JS的random()函数:通过每次刷新页面产生使背景rgb随机产生 <!doctype html> <html> <he ...
- JavaScript随机生成颜色以及十六进制颜色 与RGB颜色值的相互转换
/** * 随机生成颜色 * @return 随机生成的十六进制颜色 */ function randomColor(){ var colorStr=Math.floor(Math.random()* ...
- js随机生成验证码以及随机颜色
Javascript通过Math.random()随机生成验证码. 代码如下: <!DOCTYPE html><html> <head> <meta char ...
随机推荐
- Swift (if while)
Swift 分支 if if后的括号可以省略 if后只能接bool值 if后的大括号不能省略 let num1 = 3.0 let num2 = 4.0 let bool : Bool = true ...
- 自己用js写的日历(在考勤中使用,显示员工的日期的考勤情况)
1.HTML部分 <div id="AttendanceDataDetailDiv"> <div class="A_close"> &l ...
- http - referer
以前对Http中Referer的认识不够透彻.最近理了理,记录一下. 1 Referer可以记录访问的来源,统计访问量,可以用来防盗链. 2 客户端用js不能篡改Referer,用一些插件什么的可以达 ...
- Ztree插件,定位节点时(focus)不能进入可视区域BUG解决方案
相关插件版本: jquery.ztree.exedit-3.4.js jquery.ztree.all-3.4.js jquery-1.8.0.js function onAsyncSuccess(e ...
- 中科院分词ICTCLAS5.0_JNI 使用方法
1.简介 中国科学院计算技术研究所在多年研究基础上,耗时一年研制出了基于多层隐码模型的汉语词法分析系统 ICTCLAS(Institute of Computing Technology, Chine ...
- 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版,可下载一下安装)菜 ...
- tcp选项TCP_DEFER_ACCEPT
tcp选项TCP_DEFER_ACCEPT http://blog.chinaunix.net/uid-23207633-id-274317.html 之前在项目测试的时候,如果第三次握手发完裸ack ...
- LaTeX字体相关
以下内容均来自网络. 字体命令: 相应的字体声明都有相应的字体命令 family: \textrm{文本} \texttt{ } \textsf{ } shape : \textup{文本} \ ...
- Nagios监控ganglia的指标
这是nagios与ganglia整合的一部分内容 . 通常我们会把ganglia的监控发送给一个主机,我们可以在这个主机上执行nc localhost 8649 可以获取到所有发往这个主机的信息,以x ...
- css3 选择器(二)
接css3选择器(一) 八.结构性伪类选择器[:nth-child(n)] :nth-child(n)选择器用来匹配某个父元素的一个或多个特定的子元素,和jquery中一样. 其中"n&qu ...