ios CCUIColor.m

objectivec 复制代码
//
//  CCUIColor.h
//  CCFC
//
//


#import <Foundation/Foundation.h>


#define RGB_MAX_VALUE   255.0f


#define RGBA(r, g, b, a)    \
        [UIColor colorWithRed:(r)/RGB_MAX_VALUE         \
                        green:(g)/RGB_MAX_VALUE         \
                         blue:(b)/RGB_MAX_VALUE         \
                        alpha:(a)]


#define HSBA(h, s, b, a)    \
                [UIColor colorWithHue:(h)/RGB_MAX_VALUE         \
                                   saturation:(s)/RGB_MAX_VALUE         \
                                   brightness:(b)/RGB_MAX_VALUE         \
                                                alpha:(a)]




#define COLOR_RED               [UIColor colorWithRed:1.0f green:0 blue:0 alpha:1]
#define COLOR_GREEN             [UIColor colorWithRed:0 green:1.0f blue:0 alpha:1]
#define COLOR_BLUE              [UIColor colorWithRed:0 green:0 blue:1.0f alpha:1]


#define COLOR_BLACK             [UIColor colorWithRed:0 green:0 blue:0 alpha:1]
#define COLOR_WHITE             [UIColor colorWithRed:1.0f green:1.0f blue:1.0f alpha:1]


// 透明颜色
#define COLOR_CLEAR             [UIColor clearColor]




@interface UIColor(cc) 


// 获取UIColor的RGBA的值
- (void)getRGBAValue:(CGFloat *)red 
               green:(CGFloat *)green 
                blue:(CGFloat *)blue 
               alpha:(CGFloat *)alpha;


- (CGFloat)getRedValue;
- (CGFloat)getGreenValue;
- (CGFloat)getBlueValue;
- (CGFloat)getAlphaValue;


// 由RGB的值获得CGColorRef指针
+ (CGColorRef)createCGColorRefByRGB:(CGFloat)red 
                              green:(CGFloat)green 
                               blue:(CGFloat)blue 
                              alpha:(CGFloat)alpha;


// print the RGBA info of the UIColor
- (void)printRGBA;




@end
objectivec 复制代码
//
//  CCUIColor.m
//  CCFC
//
//


#import "CCUIColor.h"




@implementation UIColor(cc)


// 获取UIColor的RGBA的值
- (void)getRGBAValue:(CGFloat *)red 
               green:(CGFloat *)green 
                blue:(CGFloat *)blue 
               alpha:(CGFloat *)alpha
{
        CGColorRef colorRef = [self CGColor];
        
        const CGFloat *tmComponents = CGColorGetComponents(colorRef);
        if(red)
                *red = tmComponents[0];


        if(green)
                *green = tmComponents[1];
    
        if(blue)
                *blue = tmComponents[2];


        if(alpha)
                *alpha = tmComponents[3];
}


- (CGFloat)getRedValue
{
        CGColorRef colorRef = [self CGColor];
        
        const CGFloat *tmComponents = CGColorGetComponents(colorRef);
        return tmComponents[0];
}


- (CGFloat)getGreenValue
{
        CGColorRef colorRef = [self CGColor];
        
        const CGFloat *tmComponents = CGColorGetComponents(colorRef);
        return tmComponents[1];
}


- (CGFloat)getBlueValue
{
        CGColorRef colorRef = [self CGColor];
        
        const CGFloat *tmComponents = CGColorGetComponents(colorRef);
        return tmComponents[2];
}


- (CGFloat)getAlphaValue
{
        CGColorRef colorRef = [self CGColor];
        
        const CGFloat *tmComponents = CGColorGetComponents(colorRef);
        return tmComponents[3];
}


// 由RGB的值获得CGColorRef指针
// you should release the returnValue by your hand.
+ (CGColorRef)createCGColorRefByRGB:(CGFloat)red 
                              green:(CGFloat)green 
                               blue:(CGFloat)blue 
                              alpha:(CGFloat)alpha
{
        CGColorSpaceRef rgb = CGColorSpaceCreateDeviceRGB();
        const CGFloat rgbColor[] = {(float)red / 255, (float)green / 255 , (float) blue / 255, (float) alpha / 255};
        CGColorRef color = CGColorCreate(rgb, rgbColor);
        CGColorSpaceRelease(rgb);
        
        return color;
}


// print the RGBA info of the UIColor
- (void)printRGBA
{
        CGColorRef colorRef = [self CGColor];
        const CGFloat *tmComponents = CGColorGetComponents(colorRef);
        NSLog(@"%@ R:%f, G:%f, B:%f, A:%f", 
                  self, tmComponents[0], tmComponents[1], tmComponents[2], tmComponents[3]);
}


@end

微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。

我是程序员小迷(致力于C、C++、Java、Kotlin、Android、iOS、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。

欢迎关注。助您在编程路上越走越好!

相关推荐
他们都不看好你,偏偏你最不争气5 小时前
AutoLayout与Masonry:简化iOS布局
ios
2501_916008898 小时前
iOS 抓包工具有哪些?全面盘点主流工具与功能对比分析
android·ios·小程序·https·uni-app·iphone·webview
2501_915921438 小时前
iOS混淆工具实战 视频流媒体类 App 的版权与播放安全保护
android·ios·小程序·https·uni-app·iphone·webview
2501_9160088912 小时前
uni-app iOS 日志与崩溃分析全流程 多工具协作的实战指南
android·ios·小程序·https·uni-app·iphone·webview
2501_9159214313 小时前
iOS混淆工具实战 在线教育直播类 App 的课程与互动安全防护
android·安全·ios·小程序·uni-app·iphone·webview
Digitally15 小时前
没 iCloud, 如何数据从iPhone转移到iPhone
ios·iphone·icloud
笑尘pyrotechnic15 小时前
push pop 和 present dismiss
macos·ui·ios·objective-c·cocoa
Digitally16 小时前
如何将联系人从 iPhone 转移到 Redmi 手机
ios·智能手机·iphone
2501_9151063217 小时前
Charles抓包工具在接口性能优化与压力测试中的实用方法
ios·性能优化·小程序·https·uni-app·压力测试·webview
Winson℡1 天前
在 React Native 层禁止 iOS 左滑返回(手势返回/手势退出)
react native·react.js·ios