读取和写入 HTML/CSS 颜色,支持 RGB 十六进制三元组,RGB 和 RGBA,HSL 和 HSLA 以及 CSS3 命名颜色。
#import "UIColor+HTMLColors.h"
UIColor *red = [UIColor colorWithCSS:@"hsla(0, 100%, 50%, 1.0)"];
UIColor *green = [UIColor colorWithCSS:@"#00FF00"];
UIColor *blue = [UIColor colorWithCSS:@"rgb(0, 0, 255)"];
UIColor *clear = [UIColor colorWithCSS:@"transparent"];
UIColor *cyan = [UIColor colorWithCSS:@"cyan"];
解析基于 NSScanner,因此提供了扫描方法,便于与您的扫描需求集成。
NSScanner *scanner; // Defined elsewhere
UIColor *color;
if ([scanner scanCSSColor:&color]) {
// Congratulations, you've got a color
}
人们喜欢对称,能够用您能读取的格式写出颜色是很棒的。提供了写入方法,除了命名颜色以外的所有颜色都提供了方法,因为它们只涵盖了所有可能颜色的一小部分。
UIColor *color = [UIColor colorWithCSS:@"DarkOliveGreen"];
NSString *hsl = [color hslStringValue];
// => @"hsl(82, 39%, 30%)"
在表示形式之间转换可能会造成小的误差,因为组件被舍入(例如,色相舍入到最近的度数,百分比舍入到最近的 1%)。
版权(c)2012,James Lawton。保留所有权利。
在以下条件下,允许重新分发和使用源代码及二进制形式,可以修改或未经修改:
本软件由版权所有者和贡献者提供“逐样”,不提供任何明确的或暗示的保证,包括但不限于对适销性和适用于特定目的的暗示保证。在任何情况下,版权所有者或贡献者对任何直接、间接、偶然、特殊、示范性或后果性的损害(包括但不限于替代商品或服务的采购费用、使用、数据或利润的损失;或业务中断),不管是否已告知此类损害的可能,不得对此类损害负责。本软件的任何使用即使在被告知此类损害可能的情况下,也不得承担责任。