最近因项目需要,在网上找了一些代码,整合了一下,实现的效果就是将10进制的RGB色值转换IOS用的UIColor,方法还有缺陷,有待改进

UIColor *getColorFromString(NSString *colorString)
{
int colorInt=[colorString intValue];
if(colorInt<)
return [UIColor whiteColor]; NSString *nLetterValue;
NSString *colorString16 =@"";
int ttmpig;
for (int i = ; i<; i++)
{
ttmpig=colorInt%;
colorInt=colorInt/;
switch (ttmpig)
{
case :
nLetterValue =@"A";break;
case :
nLetterValue =@"B";break;
case :
nLetterValue =@"C";break;
case :
nLetterValue =@"D";break;
case :
nLetterValue =@"E";break;
case :
nLetterValue =@"F";break;
default:nLetterValue=[[NSString alloc]initWithFormat:@"%i",ttmpig]; }
colorString16 = [nLetterValue stringByAppendingString:colorString16];
if (colorInt == )
break;
} colorString16 = [[colorString16 stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] uppercaseString]; //去掉前后空格换行符 // strip 0X if it appears
if ([colorString16 hasPrefix:@"0X"])
colorString16 = [colorString16 substringFromIndex:];
if ([colorString16 hasPrefix:@"#"])
colorString16 = [colorString16 substringFromIndex:];
// String should be 6 or 8 characters
if ([colorString16 length] < )
{
int cc=-[colorString16 length];
for (int i=; i<cc; i++)
colorString16=[@"" stringByAppendingString:colorString16];
}
if ([colorString16 length] != )
return [UIColor whiteColor]; // Separate into r, g, b substrings
NSRange range;
range.location = ;
range.length = ;
NSString *bString = [colorString16 substringWithRange:range]; range.location = ;
NSString *gString = [colorString16 substringWithRange:range]; range.location = ;
NSString *rString = [colorString16 substringWithRange:range]; // Scan values
unsigned int r, g, b;
[[NSScanner scannerWithString:rString] scanHexInt:&r]; //扫描16进制到int
[[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:1.0f];
}

IOS中将十进制色值转换成UIColor的更多相关文章

  1. IOS 十六进制字符串转换成UIColor

    /** * 十六进制转换成UIColor * * @param stringToConvert 十六进制字符串 * * @return UIColor */ +(UIColor *) hexStrin ...

  2. ios 把毫秒值转换成日期 NSDate

    ios 把毫秒值转换成日期 (比较好用) 1343359790000 这是毫秒值------最佳解决方案-------------------- long long time=134335979000 ...

  3. 在MyEclipse中将Java Project转换成Web Project

    在MyEclipse中将Java Project转换成Web Project 此添加方法是针对MyEclipse中添加的: 编辑工程的.project文件: 添加 <nature>com. ...

  4. 十进制浮点数转换成IEEE754标准的32浮点数的二进制格式

    参考: http://jimmygod.blog.163.com/blog/static/43511339200792605627411/ http://blog.csdn.net/archersab ...

  5. 转载:在Excel中将数据库字段转换成驼峰式

    转载地址 在Excel中将数据库字段转换成驼峰式 1.将数据库字段复制到Excel表格第一列: 2.在第二列顶部输入=PROPER(A1)命令: 3.在第三列顶部输入=SUBSTITUTE(B1,&q ...

  6. JavaScript 将十进制数转换成格式类似于 0x000100 或 #000100 的十六进制数

    将十进制数转换成格式类似于 0x000100 或 #000100 的十六进制数 1 <!DOCTYPE html> 2 <html> 3 <head> 4 < ...

  7. 在js中将map对象转换成json 和 js对cookie的操作

    在js中将map对象转换成json //msp转objectlet obj= Object.create(null); for (let[k,v] of map) { obj[k] = v; }//o ...

  8. 将十六进制色值转换成Color

    在给Background赋值时,除了自带的Red,Blue,Black等,可以通过以下方法赋予其他颜色. 主要是将Hex转换成ARGB(A:alpha,表示透明度.R:Red.G:Green.B:Bl ...

  9. 16进制色值转换成RGB

    #51147f  转换成RGB ,5*16+1 ,1*16+4,7*16+15 #A9A9A9 转换成RGB ,A*16+9 ,A*16+9,A*16+9

随机推荐

  1. Windows 7 Ultimate(旗舰版)SP1 32/64位官方原版下载(2011年5月12日更新版)

    MSDN于2011年5月12日,最新发布简体中文Windows 7 Ultimate 旗舰版 SP1 DVD镜像安装包,分32位和64位两个版本.最新发行代号分别是:677486(32位),67740 ...

  2. Ubuntu10.04下载并编译Android4.3源代码

    注:转载或引用请标明出处    http://blog.csdn.net/luzhenrong45/article/details/9719433 去年用Ubuntu10.10成功下载并编译Andro ...

  3. phpcms v9 模板标签说明整理

    1.{template "content","header"} 2.网站网址调用:{siteurl($siteid)}: 3.标签get:分页,{pc:get ...

  4. javascript中window.event事件用法详解

    转自http://www.jb51.net/article/32564.htm描述 event代表事件的状态,例如触发event对象的元素.鼠标的位置及状态.按下的键等等. event对象只在事件发生 ...

  5. 零门槛!ZBLibrary仿微信朋友圈自定义View,就是这么简单!

    传统方法是继承现有View再重写方法,这种方式缺点很多: 1.往往不能在xml编辑器中预览效果: 2.比较难实现预期效果,比如设置宽度为wrap_content,实际显示为match_parent等: ...

  6. failed to obtain a cell from its dataSource

    stroyboard没有绑定标示 没有注册标示 cell为空时没有创建

  7. 我的开发框架(WinForm)2

    上篇文章简单的介绍了一下,我的一个开发框架.看的人还不少,多谢大家的关注,我继续介绍一下,模块和模块之间是怎么组织起来的. Data模块: 该模块主要完成对数据的操作,采用仓储模式实现,在核心模块(C ...

  8. J2EE综合:如何处理大数据量的查询

    在实际的任何一个系统中,查询都是必不可少的一个功能,而查询设计的好坏又影响到系统的响应时间和性能这两个要害指标,尤其是当数据量变得越来越大时,于是如何处理大数据量的查询成了每个系统架构设计时都必须面对 ...

  9. nyoj 86 找球号(一)

    找球号(一) 时间限制:3000 ms  |            内存限制:65535 KB 难度:3   描述 在某一国度里流行着一种游戏.游戏规则为:在一堆球中,每个球上都有一个整数编号i(0& ...

  10. nyoj 96 n-1位数(处理前导 0 的情况)

    n-1位数 时间限制:3000 ms  |            内存限制:65535 KB 难度:1   描述 已知w是一个大于10但不大于1000000的无符号整数,若w是n(n≥2)位的整数,则 ...