UIColor扩展(colorWithHexString)

来源:互联网 发布:sqlserver配置要求 编辑:程序博客网 时间:2024/06/07 03:54

UIColor+Hex.h

#import <UIKit/UIKit.h>#define RGBA_COLOR(R, G, B, A) [UIColor colorWithRed:((R) / 255.0f) green:((G) / 255.0f) blue:((B) / 255.0f) alpha:A]#define RGB_COLOR(R, G, B) [UIColor colorWithRed:((R) / 255.0f) green:((G) / 255.0f) blue:((B) / 255.0f) alpha:1.0f]@interface UIColor (Hex)+ (UIColor *)colorWithHexString:(NSString *)color;//从十六进制字符串获取颜色,//color:支持@“#123456”、 @“0X123456”、 @“123456”三种格式+ (UIColor *)colorWithHexString:(NSString *)color alpha:(CGFloat)alpha;@end

UIColor+Hex.m


#import "UIColor+Hex.h"@implementation UIColor (Hex)+ (UIColor *)colorWithHexString:(NSString *)color alpha:(CGFloat)alpha{    //删除字符串中的空格    NSString *cString = [[color stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] uppercaseString];    // String should be 6 or 8 characters    if ([cString length] < 6)    {        return [UIColor clearColor];    }    // strip 0X if it appears    //如果是0x开头的,那么截取字符串,字符串从索引为2的位置开始,一直到末尾    if ([cString hasPrefix:@"0X"])    {        cString = [cString substringFromIndex:2];    }    //如果是#开头的,那么截取字符串,字符串从索引为1的位置开始,一直到末尾    if ([cString hasPrefix:@"#"])    {        cString = [cString substringFromIndex:1];    }    if ([cString length] != 6)    {        return [UIColor clearColor];    }        // Separate into r, g, b substrings    NSRange range;    range.location = 0;    range.length = 2;    //r    NSString *rString = [cString substringWithRange:range];    //g    range.location = 2;    NSString *gString = [cString substringWithRange:range];    //b    range.location = 4;    NSString *bString = [cString substringWithRange:range];        // Scan values    unsigned int r, g, b;    [[NSScanner scannerWithString:rString] scanHexInt:&r];    [[NSScanner scannerWithString:gString] scanHexInt:&g];    [[NSScanner scannerWithString:bString] scanHexInt:&b];    return [UIColor colorWithRed:((float)r / 255.0f) green:((float)g / 255.0f) blue:((float)b / 255.0f) alpha:alpha];}//默认alpha值为1+ (UIColor *)colorWithHexString:(NSString *)color{    return [self colorWithHexString:color alpha:1.0f];}@end

使用方法:

将UIColor+Hex.h和UIColor+Hex.m加入到工程。

调用方式:

[UIColor colorWithHexString:@"#3498c8"];


0 0