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
#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 Cop V5.4.3_适合网页设计师/多用途的颜色采取器_汉化绿色版 下载
- CSS的color颜色使用说明
- jquery获取css的color值返回RGB的方法
- [IOS地图开发系类]5、改变大头针MKPinAnnotationView的颜色
- 科学坐月子,接受现代理念(转自搜狐母婴)
- 夏天如何科学坐月子
- xml中一些关于设置的细节(简单)
- 文件查找 /which/whereis/locate/find/grep
- nmon 性能:分析 AIX 和 Linux 性能的免费工具
- 烂泥:【转】rsync命令参数详解
- android 各种控件颜色值的设置(使用Drawable,Color)
- Debian vim没有颜色的解决办法
- 华为交换机S9303密码破解
- 9300密码恢复
- PowerPoint技巧与提高
- 网络排错方法总结
- 一次穿透 iptables 防火墙的 UDP ***报文真实案例分析
- 呼叫中心 ACD 系统的介绍
- Jquery控制checkbox中使用attr和prop
- Exchange Server 2010安装测试