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 ...
随机推荐
- git diff的用法
在git提交环节,存在三大部分:working tree(工作区), index file(暂存区:stage), commit(分支:master) working tree:就是你所工作在的目录, ...
- android中基于HTML模板的方式嵌入SWF
继上一篇 利用webview实现在andorid中嵌入swf 这篇继续说说通过html模板的方式来嵌入SWF,这样做的好处最直观的就是可以把html,swf和android代码串起来,交互操作很方便( ...
- ADO.Net(三)——数据库操作类
操作数据类 避免代码重用.造对象太多.不能分工开发 利用面向对象的方法,把数据访问的方式优化一下,利用封装类 一般封装成三个类: 1.数据连接类 提供数据连接对象 需要引用命名空间: using Sy ...
- Oracle索引梳理系列(一)- Oracle访问数据的方法
版权声明:本文发布于http://www.cnblogs.com/yumiko/,版权由Yumiko_sunny所有,欢迎转载.转载时,请在文章明显位置注明原文链接.若在未经作者同意的情况下,将本文内 ...
- Linux基础命令之cat使用方法大全
今天在学习部署安装openstack的时候,看到一个关于cat的奇怪用法,可能是本人的才疏学浅没见过这种写法,于是乎查阅资料了一番,并进行了总结,希望也能够帮助有需要的朋友. 以下是我总结的几种常用方 ...
- linux开机自动连接无线网络
1.右击无线网络图标的“编辑连接”. 2.在“无线”选项卡里,选择“编辑”. 3.在“无线安全性”选项卡里,输入无线密匙,并选中左下角的“对所有用户可 用”的选项点击应用,会提 ...
- Eclipse 各种小图标的含义
Eclipse的Package Explorer和Outline中用图标表示了很多内容,其实能看懂这些图标在编程中也是很有用的. 绿色的小圆表示公有类型:如果是实心的就是函数(),如果是圈就表示是变量 ...
- 【原】webapp开发中兼容Android4.0以下版本的css hack
话说现在的手机型号越来越多,主要还是android和ios这2个巨头称霸了江湖,而他们自带的浏览器内核是webkit,那对于做移动网页开发的同事来说,一般只要做好webkit内核浏览器的展现效果就行了 ...
- 关于TD-LTE网络MRO分析中的一些疑问
1.eNB天线到达角(LteScAOA)超出正常值范围 在OMC-R测量报告技术要求中此字段的定义为: "定义了一个用户相对参考方向的估计角度.测量参考方向应为正北,逆时针方向.可以辅助确定 ...
- NYOJ-取石子(六)
取石子(六) 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 最近TopCoder的PIAOYI和HRDV很无聊,于是就想了一个游戏,游戏是这样的:有n堆石子,两个人轮流 ...