博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UIColor
阅读量:6232 次
发布时间:2019-06-21

本文共 3429 字,大约阅读时间需要 11 分钟。

  • UIColor、CIColor 和 CGColor 出现在不同的类库里面,其实就是颜色存储方式不同而已,比如 999 可以用 10 进制、2 进制、16 进制等存储。三者之间都是能够方便转换的,特别是很多构造函数。

1、UIColor 的创建

  • 1.1 使用系统定义好的颜色创建

UIColor *color1 = [UIColor blueColor];// 附带设置颜色的透明度UIColor *color1 = [[UIColor blackColor] colorWithAlphaComponent:0.5];
  • 1.2 由白色透明度创建

// alpha:透明度,1 不透明UIColor *color2 = [UIColor colorWithWhite:1 alpha:0.5];
  • 1.3 由三原色创建

// arc4random()%256/255.0 获取小于等于 1 大于 0 的随机数字CGFloat red = arc4random()%256/255.0;CGFloat green = arc4random()%256/255.0;CGFloat blue = arc4random()%256/255.0;// Red,green,blue 值的范围是 0 ~ 1,alpha:透明度,1 不透明UIColor *color3 = [UIColor colorWithRed:red green:green blue:blue alpha:1];
  • 1.4 由图片创建

UIColor *color4 = [UIColor colorWithPatternImage:[UIImage imageNamed:@"13"]];
  • 1.5 由 16 进制字符串创建

NSString *colorString = @"#FF0000";// 十六进制数字字符串转十进制数字NSString *s1 = [colorString substringWithRange:NSMakeRange(1, 2)];unsigned long c1 = strtoul([s1 UTF8String], 0, 16);NSString *s2 = [colorString substringWithRange:NSMakeRange(3, 2)];unsigned long c2 = strtoul([s2 UTF8String], 0, 16);NSString *s3 = [colorString substringWithRange:NSMakeRange(5, 2)];unsigned long c3 = strtoul([s3 UTF8String], 0, 16);// Red,green,blue 值的范围是 0 ~ 1,alpha:透明度,1 不透明UIColor *color5 = [UIColor colorWithRed:c1/255.0 green:c2/255.0 blue:c3/255.0 alpha:1];

2、UIColor 与 CIColor 和 CGColor 的相互转换

// UIColor 转 CGColorCGColorRef color = [[UIColor greenColor] CGColor];// CGColor 转 UIColorUIColor *CG_To_UIColor = [UIColor colorWithCGColor:self.outerCircleV.layer.borderColor];

3、由十六进制颜色值创建 RGB 颜色值

  • 适用于 0Xc83c23、#c83c23、c83c23 格式的十六进制颜色值。
/// 由十六进制颜色值创建 RGB 颜色值,带透明度设置+ (UIColor *)colorWithHexString:(NSString *)color alpha:(CGFloat)alpha {    NSString *cString = [[color stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] uppercaseString];    // String should be 6 or 8 characters    if ([cString length] < 6) {        return [UIColor clearColor];    }    // strip "0X" or "#" if it appears    if ([cString hasPrefix:@"0X"])        cString = [cString substringFromIndex:2];    if ([cString hasPrefix:@"#"])        cString = [cString substringFromIndex:1];    if ([cString length] != 6)        return [UIColor clearColor];    // Separate into r, g, b substrings    NSRange range;    range.location = 0;    range.length = 2;    // r、g、b    NSString *rString = [cString substringWithRange:range];    range.location = 2;    NSString *gString = [cString substringWithRange:range];    range.location = 4;    NSString *bString = [cString substringWithRange:range];    // Scan values    unsigned int r, g, b;    [[NSScanner scannerWithString:rString] scanHexInt:&r];    [[NSScanner scannerWithString:gString] scanHexInt:&g];    [[NSScanner scannerWithString:bString] scanHexInt:&b];    return [UIColor colorWithRed:((float) r / 255.0f) green:((float) g / 255.0f) blue:((float) b / 255.0f) alpha:alpha];}/// 由十六进制颜色值创建 RGB 颜色值+ (UIColor *)colorWithHexString:(NSString *)color {    return [UIColor colorWithHexString:color alpha:1.0f];}// 0X 前缀格式UIColor *color = [UIColor colorWithHexString:@"0Xc83c23"];UIColor *color = [UIColor colorWithHexString:@"0Xc83c23" alpha:0.5];// # 前缀格式UIColor *color = [UIColor colorWithHexString:@"#c83c23"];UIColor *color = [UIColor colorWithHexString:@"#c83c23" alpha:0.5];// 无前缀格式UIColor *color = [UIColor colorWithHexString:@"c83c23"];UIColor *color = [UIColor colorWithHexString:@"c83c23" alpha:0.5];

4、其他

转载于:https://www.cnblogs.com/CH520/p/9413500.html

你可能感兴趣的文章
计算机高手也不能编出俄罗斯方块——计算机达人成长之路(16)
查看>>
停电遭遇ORA-600
查看>>
JAVA设计模式--工厂方法模式
查看>>
移动物联网的Arduino开发板:Particle推出Electron
查看>>
SSM框架Spring+SpringMVC+MyBatis——详细整合教程
查看>>
error LNK2001: 无法解析的外部符号 __CrtDbgReport
查看>>
安装Robot Framework-Mac
查看>>
在CentOS中安装flashplay插件
查看>>
mysql binlog日志
查看>>
纠错--跟我学Java第130页
查看>>
BPDU Filtering的意义(BPDU Filtering在全局配置与接口配置上的区别)
查看>>
什么是CDN?什么是CDN管理系统?
查看>>
iOS开发UI篇—推荐两个好用的Xcode插件
查看>>
有趣的机器学习:最简明入门指南
查看>>
Js中对外部js文件的引用顺序直接影响到未定义的有关问题
查看>>
决心书
查看>>
实现基于LNMP 的电子商务网站
查看>>
window.open网页打印页头页尾为空,支持浏览器IE8
查看>>
shell 命令中变量与从定向的运用...
查看>>
福昕阅读器曝多个安全漏洞 可导致远程任意代码执行
查看>>