您的位置:首页 > 产品设计 > UI/UE

十六进制字符串转化成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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐