十六进制字符串转化成UIColor对象(使用类目为UIColor类扩展一个类方法)
2015-05-04 22:47
453 查看
#import <UIKit/UIKit.h>
@interface UIColor (ColorWithHexStrig)
+ (UIColor *)colorWithHexString:(NSString *)hexString;
@end
#import "UIColor+ColorWithHexStrig.h"
@implementation UIColor (ColorWithHexStrig)
//根据十六进制数值获取UIColor
+ (UIColor *)colorWithHexString:(NSString *)hexString{
//去掉字符串两端的空格,并且取小写转换大写
NSString *colorString = [[hexString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] uppercaseString];
//当给定的字符串长度小于6时,返回透明的
if (colorString.length < 6) {
return [UIColor clearColor];
}
// strip 0X if it appears
if ([colorString hasPrefix:@"0X"])
colorString = [colorString substringFromIndex:2];
if ([colorString hasPrefix:@"#"])
colorString = [colorString substringFromIndex:1];
if ([colorString length] != 6)
return [UIColor clearColor];
unsigned int red = 0,green = 0,blue = 0;
NSRange range = NSMakeRange(0, 2);
[[NSScanner scannerWithString:[colorString substringWithRange:range]] scanHexInt:&red];
range.location = 2;
[[NSScanner scannerWithString:[colorString substringWithRange:range]] scanHexInt:&green];
range.location = 4;
[[NSScanner scannerWithString:[colorString substringWithRange:range]] scanHexInt:&blue];
return [UIColor colorWithRed:red / 255.0 green:green / 255.0 blue:blue / 255.0 alpha:1];
}
@end
@interface UIColor (ColorWithHexStrig)
+ (UIColor *)colorWithHexString:(NSString *)hexString;
@end
#import "UIColor+ColorWithHexStrig.h"
@implementation UIColor (ColorWithHexStrig)
//根据十六进制数值获取UIColor
+ (UIColor *)colorWithHexString:(NSString *)hexString{
//去掉字符串两端的空格,并且取小写转换大写
NSString *colorString = [[hexString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] uppercaseString];
//当给定的字符串长度小于6时,返回透明的
if (colorString.length < 6) {
return [UIColor clearColor];
}
// strip 0X if it appears
if ([colorString hasPrefix:@"0X"])
colorString = [colorString substringFromIndex:2];
if ([colorString hasPrefix:@"#"])
colorString = [colorString substringFromIndex:1];
if ([colorString length] != 6)
return [UIColor clearColor];
unsigned int red = 0,green = 0,blue = 0;
NSRange range = NSMakeRange(0, 2);
[[NSScanner scannerWithString:[colorString substringWithRange:range]] scanHexInt:&red];
range.location = 2;
[[NSScanner scannerWithString:[colorString substringWithRange:range]] scanHexInt:&green];
range.location = 4;
[[NSScanner scannerWithString:[colorString substringWithRange:range]] scanHexInt:&blue];
return [UIColor colorWithRed:red / 255.0 green:green / 255.0 blue:blue / 255.0 alpha:1];
}
@end
相关文章推荐
- Android进步之十四:使用jackon的ObjectMapper的writeValueAsString方法可以把java对象转化成json字符串
- 关于new Function使用以及将json格式字符串转化为json对象方法介绍
- json使用方法之对象和json和字符串互转
- three.js自学之旅(5)—— 辅助对象的使用、扩展一个新的基础方法调整对象参数
- 学习笔记-把json字符串转化为json对象的方法
- C#编译器优化那点事 c# 如果一个对象的值为null,那么它调用扩展方法时为甚么不报错 webAPI 控制器(Controller)太多怎么办? .NET MVC项目设置包含Areas中的页面为默认启动页 (五)Net Core使用静态文件 学习ASP.NET Core Razor 编程系列八——并发处理
- FireFox下XML对象转化成字符串的解决方法
- 用LinQ扩展方法,泛型扩展方法,实现自定义验证字符是否空、对象是否为null,及泛型约束使用,Action的使用
- js RegExp对象学习结合字符串replace方法使用
- JSON.parse()方法,将数据(字符串)转化为javascript对象
- 使用GSON将对象和json字符串相互转化
- JSON.parse():json字符串转化为json对象方法
- 在主方法中创建map集合中存储3个学生对象.key使用字符串表示编号(不能重复)value是学生对象。然后调用以下两个方法;
- jQuery使用serialize(),serializeArray()方法取得表单数据+字符串和对象类型两种表单提交的方法
- String字符串对象方法的使用
- MVC为Html对象建立一个扩展方法,使用自己的控件就像使用TextBox一样方便
- 对象转化为json字符串好用的方法
- 对象实例化、字符串的使用方法
- js中json对象和字符串的理解及相互转化操作实现方法
- Python使用pandas扩展库DataFrame对象的pivot方法对数据进行透视转换