iOS------UIColor和CGColor

本文介绍了UIKit中的UIColor类,包括其颜色创建方法(如白色、黑色、HSB和RGB)以及CGColor的使用,强调了颜色空间在颜色解析中的重要性。还讲解了如何使用CGColorCreate函数创建CGColorRef对象及其在CoreGraphics中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、UIColor

UIColor是UIKit中存储颜色信息的一个重要的类,一个UIColor对象包含了颜色和透明度的值,它的颜色空间已经针对IOS进行了优化。UIColor包含了一些类方法用于创建一些最常见的颜色,如白色,黑色,红色,透明色等,这些颜色的色彩空间也不尽相同(白色和黑色是kCGColorSpaceDeviceGray,红色的色彩空间是kCGColorSpaceDeviceRGB)。

两个参数 一个是不透明度 一个是灰度值 返回的是一个颜色对象
两个值都是CGFloat类型 大于1按1算 小于0 按0算
和[[UIColor alloc]initWithWhite:0.33 alpha:1]方法一个道理
self.view.backgroundColor = [UIColor colorWithWhite:0.33 alpha:1];

用HSB和不透明度来返回一个颜色对象
色相(hue)
饱和度(saturation)
亮度(brightness或value)
self.view.backgroundColor = [UIColor colorWithHue:0.5 saturation:0.5 brightness:0.5 alpha:1];

用RGB和不透明度来返回一个颜色对象
self.view.backgroundColor = [UIColor colorWithRed:150/255. green:150/255. blue:150/255. alpha:1];

此外UIColor还有两个重要的属性:一个是CGColor,一个是CIColor(5.0之后添加)。
用CGColor属性返回一个颜色对象
UIColor *color = [UIColor colorWithCGColor:[UIColor whiteColor].CGColor];

二、CGColor

CGColor主要用于CoreGaphics框架之中,CGColor其实是个结构体,而我们通常在使用的CGColor的时候使用的是它的引用类型CGColorRef。CGColor主要由CGColorSapce和Color Components两个部分组成,同样的颜色组成,如果颜色空间不同的话,解析出来的结果可能会有所不同。这就像我们在处理图片数据的时候,如果把RGBA格式当成BGRA格式处理的结果可想而知。在Quartz 2D中CGColor常用来设置context的填充颜色,设置透明度等。

1、如何创建一个CGColor,最常用的函数是CGColorCreate,该函数有两个参数:

1)
colorspace,指定CGColor对应的颜色空间,Quartz就会retain该对象,因此调用完之后你就可以安全的释放该对象。

2) components,一个CGFloat的数组,该数组的元素个数是指定色彩空间包含的颜色分量数n,加上对应的alpha值。

该函数该返回一个新创建的CGColorRef,当我们不再使用该对象的时候使用CGColorRelease函数释放该对象。

CGColorSpaceRef cmykSpace = CGColorSpaceCreateDeviceCMYK();
CGFloat cmykValue[] = {1, 1, 0, 0, 1};      // blue
CGColorRef colorCMYK = CGColorCreate(cmykSpace, cmykValue);
CGColorSpaceRelease(cmykSpace);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值