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等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。

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

相关推荐
幽夜落雨13 分钟前
ios老版本应用安装方法
ios
胖虎18 小时前
实现 iOS 自定义高斯模糊文字效果的 UILabel(文末有Demo)
ios·高斯模糊文字·模糊文字
_可乐无糖2 天前
Appium 检查安装的驱动
android·ui·ios·appium·自动化
胖虎12 天前
iOS 网络请求: Alamofire 结合 ObjectMapper 实现自动解析
ios·alamofire·objectmapper·网络请求自动解析·数据自动解析模型
开发者如是说2 天前
破茧英语路:我的经验与自研软件
ios·创业·推广
假装自己很用心3 天前
iOS 内购接入StoreKit2 及低与iOS 15 版本StoreKit 1 兼容方案实现
ios·swift·storekit·storekit2
iOS阿玮3 天前
“小红书”海外版正式更名“ rednote”,突然爆红的背后带给开发者哪些思考?
ios·app·apple
刘小哈哈哈3 天前
iOS UIScrollView的一个特性
macos·ios·cocoa
忆江南的博客4 天前
iOS 性能优化:实战案例分享
ios
忆江南的博客4 天前
深入剖析iOS网络优化策略,提升App性能
ios