您的位置:首页 > 移动开发 > IOS开发

iOS颜色转换

2016-05-10 16:37 399 查看
#import "Color.h"

#define RED     @"#f00"

#define GREEN   @"#00ff00"

#define BLUE    @"#ff0000ff"

#define WHITE   @"#fff"

#define GRAY    @"#888"

#define BLACK   @"#000"

@interface Color(UIColor)

@end

@implementation Color

+(UIColor*) parseColor:(NSString*)color {

    

    

UIColor * _color =
nil;

    

    if ([color hasPrefix:@"#"])

    {

        //去掉前缀

        _color = [Color
parseColorWithoutPrefix:[color substringFromIndex:1]];

        

    } else {

        //不带前缀

//        _color = [Color parseColorWithoutPrefix:color];

    }

    

    if (!_color)

    {

        [[[NSExceptionalloc]initWithName:@"Color
Format Not Supported Exception"reason:[NSStringstringWithFormat:@"Color
not supported. Color only like (#fff,#ffff,#ffffff,#ffffffff) are supported! value = %@", color ]userInfo:nil]raise];

    }

    

    return _color;

}

+(UIColor *) parseColorWithoutPrefix:(NSString *) color {

    

    UIColor * _color =
nil;

    

    long length = color.length;

    

    float red = 0.0f;

    float green =
0.0f;

    float blue = 0.0f;

    float alpha =
1.0f;

    

    long step = 2;

    float base = 0xff;

    

   
b7bb
if (4 == length||8 == length) {

        

        step = length / 4;

        base = 1 == step ?
0xf : 0xff;

        

        alpha = [Color
hexStringToLong:[color substringToIndex:step]] / base;

        color = [color substringFromIndex:step];

        

    } else if (3 == length ||6 == length) {

        

        step = length / 3;

        base = 1 == step ?
0xf : 0xff;

        

    } else {

        return nil;

    }

    

    

    red = [Color hexStringToLong:[colorsubstringWithRange:NSMakeRange(0, step)]] /
base;

    green = [Color
hexStringToLong:[color substringWithRange:NSMakeRange(step * 1, step)]] / base;

    blue = [Color
hexStringToLong:[color substringWithRange:NSMakeRange(step * 2, step)]] / base;

    

    _color = [UIColor
colorWithRed:red green:green
blue:blue alpha:alpha];

    return _color;

}

+(long) hexStringToLong:(NSString*) value {

    return strtol([valueUTF8String],0,16);

}

+(UIColor *) tabTintColor {

    

    return [ColorparseColor:BLUE];

}

+(UIColor *) tabBackgroundColor {

    return [ColorparseColor:GREEN];

}

@end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Color