关闭

iOS CGColorGetComponents

标签: OC基础知识stack overflow
1076人阅读 评论(1) 收藏 举报
分类:

今天看到一个库,里面用到了CGColorGetComponents和CGColorGetNumberOfComponents,去StackOverFlow找了下资料,自己验证了下,有点小了解了。

1.请看代码,其中WhiteColor获取的CGColorGetNumberOfComponents是2  而且打印出来的UIDeviceWhiteColorSpace只有两个数字



2.下边是RGBA彩色颜色测试 获取的CGColorGetNumberOfComponents是4  而且打印出来的UIDeviceWhiteColorSpace只有四个数字



结论:[UIColor WhiteColor] [UIColor BlackColor] 或者 [UIColor GrayColor] 用[UIColor ColorWithWhite:Alpha:]来创建UIColor(UIDeviceWhiteColorSpace),所有CGColorRef的Components只有2 colors components,而CGColorRef的Components有4个 colors components的话是用[UIColor WithRed:Green:Blue:Alpha:]来创建UIColor的(UIDeviceRGBColorSpace),例如上面的[UIColor GreenColor]等其他RGB颜色


再贴一段代码,大家可以自行去验证打印结果

if (CGColorGetNumberOfComponents(colorRef) == 2)

    {

// 灰度空间

        const CGFloat *colorComponents = CGColorGetComponents(colorRef);

        NSLog(@"%@,r=%f,g=%f,b=%f,a=%f",colorRef,colorComponents[0],colorComponents[0],

colorComponents[0],colorComponents[1]);

    }

    else if (CGColorGetNumberOfComponents(colorRef) == 4)

    {

// 彩色RGBA空间

        const CGFloat *colorComponents = CGColorGetComponents(colorRef);

        NSLog(@"%@ r=%f,g=%f,b=%f,a=%f",colorRef,colorComponents[0],colorComponents[1],

colorComponents[2],colorComponents[3]);

    }

    else

    {

        NSLog(@"Unknow!!!");

    }



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:196748次
    • 积分:3016
    • 等级:
    • 排名:第11585名
    • 原创:96篇
    • 转载:9篇
    • 译文:1篇
    • 评论:133条
    最新评论