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

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

相关推荐
权咚4 小时前
阿权的开发经验小集
git·ios·xcode
用户095 小时前
TipKit与CloudKit同步完全指南
ios·swift
法的空间11 小时前
Flutter JsonToDart 支持 JsonSchema
android·flutter·ios
2501_9159184112 小时前
iOS 上架全流程指南 iOS 应用发布步骤、App Store 上架流程、uni-app 打包上传 ipa 与审核实战经验分享
android·ios·小程序·uni-app·cocoa·iphone·webview
00后程序员张13 小时前
iOS App 混淆与加固对比 源码混淆与ipa文件混淆的区别、iOS代码保护与应用安全场景最佳实践
android·安全·ios·小程序·uni-app·iphone·webview
Magnetic_h1 天前
【iOS】设计模式复习
笔记·学习·ios·设计模式·objective-c·cocoa
00后程序员张1 天前
详细解析苹果iOS应用上架到App Store的完整步骤与指南
android·ios·小程序·https·uni-app·iphone·webview
前端小超超1 天前
capacitor配置ios应用图标不同尺寸
ios·蓝桥杯·cocoa
2501_915106321 天前
Xcode 上传 ipa 全流程详解 App Store 上架流程、uni-app 生成 ipa 文件上传与审核指南
android·macos·ios·小程序·uni-app·iphone·xcode
kymjs张涛1 天前
零一开源|前沿技术周刊 #16
ios·apple·hacker news