简介

Colours–颜色库,包含各种100种预定义的颜色和方法,可以简化颜色相关的开发工作.

项目主页: Colours

最新示例: 点击下载

快速入门

安装

通过Cocoapods安装

pod 'Colours'

手动安装

把 Colours.h 和 Colours.m拖进你的工程里,在需要的地方引入头文件即可:

#import "Colours.h"

使用

调色板,一组预定义的颜色

具体可点击这里查看: 100个预定义的颜色

使用预定义的颜色

Colours 预定义了100 多种颜色,用法和使用iOS系统预定义的方式一样:

[UIColor indigoColor]; // indigoColor是Colours预定义的一种颜色.

颜色相关的工具方法

十六进制字符串与颜色的相互转换

UIColor *newColor = [UIColor colorFromHexString:@"#f587e4"];
NSString *hexString = [newColor hexString];

RGBA与颜色的相互转换.

RGBA数组与颜色的相互转换
NSArray *colorArray = [[UIColor seafoamColor] rgbaArray];// 数组中存储四个NSNumber对象分别代表RGBA的四个值,取值范围 0-1.
UIColor *newColor = [UIColor colorFromRGBAArray:colorArray];
RGBA字典与颜色的相互转换

预定义的四个键是:

  • kColoursRGBA_R
  • kColoursRGBA_G
  • kColoursRGBA_B
  • kColoursRGBA_A
NSDictionary *colorDict = [[UIColor seafoamColor] rgbaDictionary];
UIColor *newColor = [UIColor colorFromRGBADictionary:colorDict]; // 你可以获取某个单独的值:
NSNumber *r = colorDict[kColoursRGBA_R];

HSBA数组与颜色的相互转换

NSArray *colorArray = [[UIColor seafoamColor] hsbaArray];// 数组中存储四个NSNumber,分别代表H(色调),S(色饱和度),B(亮度),A(透明度)的值.
NSDictionary *colorDict = [[UIColor seafoamColor] hsbaDictionary];

HSBA与颜色的相互转换

与RGBA与颜色的相互转换类似,预定义的键是:

  • kColoursHSBA_H  色调
  • kColoursHSBA_S  色饱和度
  • kColoursHSBA_B  色亮度
  • kColoursHSBA_A  透明度
NSArray *colorArray = [[UIColor seafoamColor] hsbaArray];
NSDictionary *colorDict = [[UIColor seafoamColor] hsbaDictionary]; UIColor *newColor1 = [UIColor colorFromHSBAArray:colorArray];
UIColor *newColor2 = [UIColor colorFromHSBADictionary:colorDictionary];

CIELAB 与颜色的相互转换

与RGBA与颜色的相互转换类似,预定义的键是:

  • kColoursCIE_L
  • kColoursCIE_A
  • kColoursCIE_B
  • kColoursCIE_alpha
NSArray *colorArray = [[UIColor seafoamColor] CIE_LabArray];
NSDictionary *colorDict = [[UIColor seafoamColor] CIE_LabDictionary]; UIColor *newColor1 = [UIColor colorFromCIE_LabArray:colorArray];
UIColor *newColor2 = [UIColor colorFromCIE_LabDictionary:colorDictionary];

CMYK 与颜色的相互转换

与RGBA与颜色的相互转换用法相似,预定义的键是:

  • kColoursCMYK_C 青
  • kColoursCMYK_M 品红
  • kColoursCMYK_Y 黄
  • kColoursCMYK_K 黑
NSArray *colorArray = [[UIColor seafoamColor] cmykArray];
NSDictionary *colorDict = [[UIColor seafoamColor] cmykDictionary]; UIColor *newColor1 = [UIColor colorFromCMYKArray:colorArray];
UIColor *newColor2 = [UIColor colorFromCMYKDictionary:colorDictionary];

获取所有颜色信息

colorComponents 方法会返回一个字典,包含RGBA, HSBA, CIE_LAB和CMYK预定义的所有键:

NSDictionary *components = [someColor colorComponents];
CGFloat H = components[kColoursHSBA_H];
CGFloat L = components[kColoursCIE_L];

如果你一次只想某个某一条颜色相关的信息,可以使用下面的方法:

CGFloat R = [[UIColor tomatoColor] red];
CGFloat G = [[UIColor tomatoColor] green];
CGFloat B = [[UIColor tomatoColor] blue];
CGFloat H = [[UIColor tomatoColor] hue];
CGFloat S = [[UIColor tomatoColor] saturation];
CGFloat B = [[UIColor tomatoColor] brightness];
CGFloat CIE_L = [[UIColor tomatoColor] CIE_Lightness];
CGFloat CIE_A = [[UIColor tomatoColor] CIE_a];
CGFloat CIE_B = [[UIColor tomatoColor] CIE_b];
CGFloat alpha = [[UIColor tomatoColor] alpha];

颜色变亮/变暗

// 取值范围 0->1
UIColor *lighterColor = [[UIColor seafoamColor] lighten:0.25f];
UIColor *darkerColor = [[UIColor seafoamColor] darken:0.25f];

获取对比色

// 根据给定的颜色,自动与之能形成对比色的黑色或白色.
UIColor *contrastingColor = [[UIColor seafoamColor] blackOrWhiteContrastingColor];

获取互补色

// 返回一个给定颜色的互补色:色调改变,色调和饱和度不变.
UIColor *complementary = [[UIColor seafoamColor] complementaryColor];

获取两个颜色间的差别

// 此处的差别,综合考虑了人的感官,数学统计算法等,不是一般的RGB差值.
CGFloat distance = [someColor distanceFromColor:someOtherColor type:ColorDistanceCIE94];
BOOL isNoticablySimilar = distance < threshold;

基于一种颜色,产生多种对应的颜色方案

使用 colorSchemeOfType 方法可以基于某一个颜色,产生四个新的漂亮合适的颜色,并把全部五个颜色以数组形式返回.同一种颜色,不同的方案也会产生不同的颜色组合.

NSArray *colorScheme = [color colorSchemeOfType:ColorSchemeType];

可选颜色方案:

  • ColorSchemeAnalagous  近似色
  • ColorSchemeMonochromatic 单色
  • ColorSchemeTriad 混合色
  • ColorSchemeComplementary 互补色

下面是基于[UIColor seafoamColor]颜色的不同颜色方案返回值的示例:

ColorSchemeAnalagous

ColorSchemeMonochromatic

ColorSchemeTriad

ColorSchemeComplementary

Colours–颜色库,包含100种预定义的颜色和方法的更多相关文章

  1. 创建一个显示所有预定义系统颜色的ListBox

    原文 Creating a ListBox that Shows All Predefined System Colors 该System.Windows.SystemColors类包含了一系列揭露当 ...

  2. C++ 中常见预定义宏的使用

    http://blog.csdn.net/hgl868/article/details/7058906 替代字符串: #define DOWNLOAD_IMAGE_LOG /var/log/png.l ...

  3. 【二十三】php之预定义超全局变量

    php提供了九种预定义超全局变量: $_GET.$_POST.$_REQUEST.$_SERVER.$_ENV.$_FILE. $_COOKIE.$_SESSION. $GLOBALS 1.$_GET ...

  4. C#预定义类型

    C#提供了16中预定义类型,其中包括13种简单类型和三种非简单类型: 所有预定义类型的名称全部由小写字母组成.预定义的简单类型包括以下3种:11种数值类型.一种Unicode字符类型char.一种布尔 ...

  5. WPF中取得预定义颜色

    原文:WPF中取得预定义颜色 使用XAML代码取得.net预定义颜色:<Page    xmlns="http://schemas.microsoft.com/winfx/2006/x ...

  6. C#中获取当前系统中安装的所有字体及预定义颜色

    需要引用命名空间using System.Drawing.Text;.... //获取系统字体:InstalledFontCollection fc = new InstalledFontCollec ...

  7. Silverlight 预定义颜色速查表

    预定义颜色      可以使用 SolidColorBrush 绘制,它使用预定义纯色.这可以是 Colors 的静态属性 (Property) 名称,也可以是指定为 XAML 属性 (Attribu ...

  8. [Winform][C#]获取系统颜色预定义颜色和现有字体集

    转自: http://zhidao.baidu.com/link?url=ozY7tJRNBYHUsImE6jn1psqc8owib7MWcDMEmZw48q8iD9Hz9MWgnQQcBDO0VYO ...

  9. 第 16 章 C 预处理器和 C 库(预定义宏)

    /*------------------------------------- predef.c -- 预定义宏和预定义标识符 ------------------------------------ ...

随机推荐

  1. LeetCode 110.平衡二叉树(C++)

    给定一个二叉树,判断它是否是高度平衡的二叉树. 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1. 示例 1: 给定二叉树 [3,9,20,null,nu ...

  2. 初识contiki(2.7版本)

    一个偶然的机会,我接触到了contiki这个家伙. Contiki 是一个开源的.高度可移植的.采用 C 语言开发的非常小型的嵌入式操作系统,针对小内存微控制器设计,适用于联网嵌入式系统和无线传感器网 ...

  3. php高级教程

    PHP - 多维数组 多维数组指的是包含一个或多个数组的数组. 注释:数组的维度指示您需要选择元素的索引数. 对于二维数组,您需要两个索引来选取元素 对于三维数组,您需要三个索引来选取元素 PHP - ...

  4. for循环笔记

    JS获取元素方法——ById和ByTagName方法的区别 1.通过id获取,前面就只能是document,不能是其他的,但是ByTagName前面可以是document,也可以跟一个别的元素 #li ...

  5. android finish和system.exit(0)的区别

    finish是Activity的类,仅仅针对Activity,当调用finish()时,只是将活动推向后台,并没有立即释放内存,活动的资源并没有被清理:当调用System.exit(0)时,杀死了整个 ...

  6. CSS基础必备盒模型及清除浮动

    盒模型 盒模型是有两种标准的,一个是标准模型,一个是IE模型. css如何设置两种模型 这里用到了CSS3 的属性 box-sizing /* 标准模型 */ box-sizing:content-b ...

  7. 在使用angular和swiper插件中的一些问题

    在使用angular获取swiper图片的时候swiper就不会轮播. 解决方法: 1.使用计时器的方法,不是最优 settimeOut(function(){ mySwiper = new Swip ...

  8. JS的定时到底有多不准

    博客逐步迁移到,独立博客,原文地址,http://www.woniubi.cn/js_hide_tab_setinterval/ 我们一直都在说,JS的定时非常的不准确,但是很少有人去验证他,今天我就 ...

  9. Google面试准备

    本人小弱,面试过了Google的HC,虽然team match还没完成,到最后还有变数.但对自己这段时间的努力,也算一个交代了. 最初是一年半前Google的HR联系到我,然后第一次在电面就挂了.经过 ...

  10. Linux学习_按时间顺序解压多个文件,搜索文件中的内容

    ls的结果按时间数据先排序,再取末尾5个文件,再调用tar命令 ls -1 | sort -u | tail -5 |xargs -n1 tar xzvf 利用grep命令从文件中搜索. grep - ...