方法1:
/********************建立.h檔案
#import "TargetConditionals.h"
#if TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR
#import <UIKit/UIKit.h>
#define HXColor UIColor
#else
#import <Cocoa/Cocoa.h>
#define HXColor NSColor
#endif
@interface HXColor (HexColorAddition)
+ (HXColor *)colorWithHexString:(NSString *)hexString;
+ (HXColor *)colorWithHexString:(NSString *)hexString alpha:(CGFloat)alpha;
+ (HXColor *)colorWith8BitRed:(NSInteger)red green:(NSInteger)green blue:(NSInteger)blue;
+ (HXColor *)colorWith8BitRed:(NSInteger)red green:(NSInteger)green blue:(NSInteger)blue alpha:(CGFloat)alpha;
@end
/********************建立.m檔案
#import "HexColors.h"
@implementation HXColor (HexColorAddition)
+ (HXColor *)colorWithHexString:(NSString *)hexString
{
// Check for hash and add the missing hash
if('#' != [hexString characterAtIndex:0])
{
hexString = [NSString stringWithFormat:@"#%@", hexString];
}
CGFloat alpha = 1.0;
if (5 == hexString.length || 9 == hexString.length) {
NSString * alphaHex = [hexString substringWithRange:NSMakeRange(1, 9 == hexString.length ? 2 : 1)];
if (1 == alphaHex.length) alphaHex = [NSString stringWithFormat:@"%@%@", alphaHex, alphaHex];
hexString = [NSString stringWithFormat:@"#%@", [hexString substringFromIndex:9 == hexString.length ? 3 : 2]];
unsigned alpha_u = [[self class] hexValueToUnsigned:alphaHex];
alpha = ((CGFloat) alpha_u) / 255.0;
}
return [[self class] colorWithHexString:hexString alpha:alpha];
}
+ (HXColor *)colorWithHexString:(NSString *)hexString alpha:(CGFloat)alpha
{
if (hexString.length == 0) {
return nil;
}
// Check for hash and add the missing hash
if('#' != [hexString characterAtIndex:0])
{
hexString = [NSString stringWithFormat:@"#%@", hexString];
}
// check for string length
if (7 != hexString.length && 4 != hexString.length) {
NSString *defaultHex = [NSString stringWithFormat:@"0xff"];
unsigned defaultInt = [[self class] hexValueToUnsigned:defaultHex];
HXColor *color = [HXColor colorWith8BitRed:defaultInt green:defaultInt blue:defaultInt alpha:1.0];
return color;
}
// check for 3 character HexStrings
hexString = [[self class] hexStringTransformFromThreeCharacters:hexString];
NSString *redHex = [NSString stringWithFormat:@"0x%@", [hexString substringWithRange:NSMakeRange(1, 2)]];
unsigned redInt = [[self class] hexValueToUnsigned:redHex];
NSString *greenHex = [NSString stringWithFormat:@"0x%@", [hexString substringWithRange:NSMakeRange(3, 2)]];
unsigned greenInt = [[self class] hexValueToUnsigned:greenHex];
NSString *blueHex = [NSString stringWithFormat:@"0x%@", [hexString substringWithRange:NSMakeRange(5, 2)]];
unsigned blueInt = [[self class] hexValueToUnsigned:blueHex];
HXColor *color = [HXColor colorWith8BitRed:redInt green:greenInt blue:blueInt alpha:alpha];
return color;
}
+ (HXColor *)colorWith8BitRed:(NSInteger)red green:(NSInteger)green blue:(NSInteger)blue
{
return [[self class] colorWith8BitRed:red green:green blue:blue alpha:1.0];
}
+ (HXColor *)colorWith8BitRed:(NSInteger)red green:(NSInteger)green blue:(NSInteger)blue alpha:(CGFloat)alpha
{
HXColor *color = nil;
#if (TARGET_IPHONE_SIMULATOR || TARGET_OS_IPHONE)
color = [HXColor colorWithRed:(float)red/255 green:(float)green/255 blue:(float)blue/255 alpha:alpha];
#else
color = [HXColor colorWithCalibratedRed:(float)red/255 green:(float)green/255 blue:(float)blue/255 alpha:alpha];
#endif
return color;
}
+ (NSString *)hexStringTransformFromThreeCharacters:(NSString *)hexString
{
if(hexString.length == 4)
{
hexString = [NSString stringWithFormat:@"#%1$c%1$c%2$c%2$c%3$c%3$c",
[hexString characterAtIndex:1],
[hexString characterAtIndex:2],
[hexString characterAtIndex:3]];
}
return hexString;
}
+ (unsigned)hexValueToUnsigned:(NSString *)hexValue
{
unsigned value = 0;
NSScanner *hexValueScanner = [NSScanner scannerWithString:hexValue];
[hexValueScanner scanHexInt:&value];
return value;
}
@end
/******************************************控制器中調用
如
label.textColor = [UIColor colorWithHexString:@"00AAFF"];
方法2:
/*****************************定義宏定義
//Color
#define TCUIColorFromRGB(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue &0xFF00) >>8))/255.0 blue:((float)(rgbValue &0xFF))/255.0 alpha:1.0]
/在控制器中調用
readLabel.textColor = TCUIColorFromRGB(0x666666); ///記住前方要加0x