在开发中,我们有时需要生成一些随机的颜色。但 UIColor 没有提供方法或属性来直接获取随机颜色,这里对其进行扩展,方便使用。

1,扩展UIColor,增加随机颜色属性

1
2
3
4
5
6
7
8
9
10
11
12
extension UIColor {
    //返回随机颜色
    class var randomColor: UIColor {
        get {
            let red = CGFloat(arc4random()%256)/255.0
            let green = CGFloat(arc4random()%256)/255.0
            let blue = CGFloat(arc4random()%256)/255.0
            return UIColor(red: red, green: green, blue: blue, alpha: 1.0)
        }
    }
}

2,使用样例

这里我们使用随机颜色来创建一个马赛克墙
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import UIKit
 
class ViewControllerUIViewController {
 
    override func viewDidLoad() {
        super.viewDidLoad()
         
        //马赛克宽度
        let itemWidth = 5
         
        //行数
        let rowNums = Int(self.view.bounds.height)/itemWidth
         
        //列数
        let colNums = Int(self.view.bounds.width)/itemWidth
         
        for in 0...rowNums {
            for in 0...colNums{
                let item = UIView(frame: CGRect(x: j*itemWidth, y: i*itemWidth,
                                                width: itemWidth, height: itemWidth))
                //使用随机颜色
                item.backgroundColor = UIColor.randomColor
                self.view.addSubview(item)
            }
        }
    }
 
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}
 
extension UIColor {
    //返回随机颜色
    class var randomColor:UIColor{
        get
        {
            let red = CGFloat(arc4random()%256)/255.0
            let green = CGFloat(arc4random()%256)/255.0
            let blue = CGFloat(arc4random()%256)/255.0
            return UIColor(red: red, green: green, blue: blue, alpha: 1.0)
        }
    }
}
 

Swift - 生成随机颜色(Extension UIColor)的更多相关文章

  1. iOS 生成随机颜色(UIColor)

    #import <UIKit/UIKit.h> @interface UIColor (RandomColor) +(UIColor *) randomColor; @end #impor ...

  2. Swift主题色顶级解决方案

    一.常规主题色使用点 应用在发布前都会对主题色进行设置,以统一应用的风格(可能有多套主题).在主题色设置上有几个方面,如下: 1. TabBar部分,设置图片高亮.文本高度颜色2. Navigatio ...

  3. Swift主题色顶级解决方案一

    一.常规主题色使用点 应用在发布前都会对其主题色进行设置,以统一应用的风格(可能有多套主题).在主题色设置上有几个方面,如下: 1.TabBar部分,设置图片高亮.文本高度颜色 2.Navigatio ...

  4. Swift扩展(Extension)

    在现有类和结构体的类型基础上,扩展新的功能. 语法: extension SomeType{ // new functionality to add to SomeType goes here } A ...

  5. js几种生成随机颜色方法

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  6. php生成随机颜色代码

    function rand_color($color_array) { $color = dechex(rand(3355443,13421772)); if (in_array($color, $c ...

  7. JS生成随机颜色(rgb)

    /*随机获取颜色*/ function getRandomColor() { var r = Math.floor(Math.random() * 256); var g = Math.floor(M ...

  8. swift中的类拓展 extension

    以添加颜色为例,new 一个swift文件夹 不是cocoa类 也不需要继承什么. 然后 import UIKit protocol ColorDalegate{ class func mainCol ...

  9. [Swift]扩展UIColor:实现十六进制颜色字符串与UIColor之间的相互转换

    对[UIColor]进行扩展 import UIKit extension UIColor { // Hex String -> UIColor convenience init(hexStri ...

随机推荐

  1. Win+Ctrl键设置

    转载:http://www.win7u.com/jc/9156.html Ctrl+V:这是Win10命令提示符里新增的, Win+Prt Sc:屏幕截图.按下该快捷键后,Win8系统教程.你知道wi ...

  2. redis-windows执行redis-cli查询

    1.无密码时的访问 redis-cli -h redis > redis > keys *1) "myset"2) "mysortset" redi ...

  3. iOS多线程的详情使用示例--简进祥

    大家都知道,在开发过程中应该尽可能减少用户等待时间,让程序尽可能快的完成运算.可是无论是哪种语言开发的程序最终往往转换成汇编语言进而解释成机器码来执行.但是机器码是按顺序执行的,一个复杂的多步操作只能 ...

  4. android开发之线程

              线程(android) 在java中我们学习了线程,线程,是进程的一个单位,在程序要运行时,会开启线程,运行程序,我们要创建线程就需要我们去继承接口Thread或者实现Runabl ...

  5. linux重定向

    常用FD有3个,为0(stdin,标准输入).1(stdout,标准输出).2(stderr,标准错误输出),默认与keyboard.monitor有关: cmd > file 把 stdout ...

  6. session 和 cookie区别

    1.存在位置cookie是储存在客服端,session是存在服务器端的文件系统/数据库/memcache  2.安全性 session是储存在服务器端,安全性高一些, 3.网络传输量 cookie通过 ...

  7. 《Python核心编程》18.多线程编程(二)

    18.1没有线程支持 #!/usr/bin/env python # -*- coding:utf-8 -*- from time import sleep, ctime def loop0(): p ...

  8. codevs1183 泥泞的道路

    题目描述 Description CS有n个小区,并且任意小区之间都有两条单向道路(a到b,b到a)相连.因为最近下了很多暴雨,很多道路都被淹了,不同的道路泥泞程度不同.小A经过对近期天气和地形的科学 ...

  9. tyvj1013 找啊找啊找GF

    描述 "找啊找啊找GF,找到一个好GF,吃顿饭啊拉拉手,你是我的好GF.再见.""诶,别再见啊..."七夕...七夕...七夕这个日子,对于sqybi这种单身的 ...

  10. [Python] 机器学习库资料汇总

    声明:以下内容转载自平行宇宙. Python在科学计算领域,有两个重要的扩展模块:Numpy和Scipy.其中Numpy是一个用python实现的科学计算包.包括: 一个强大的N维数组对象Array: ...