美文网首页iOS进阶之路iOS Developer
UIcolor的是16进制色值的转换

UIcolor的是16进制色值的转换

作者: 幻影道哥 | 来源:发表于2017-06-12 10:27 被阅读24次

在开发过程中android开发是用的16进制的颜色 有时候为了方便统一  UI给的就是16进制的颜色.

废话不多说 上代码 : 我是给UIcolor添加的类目 (分类)   用的小伙伴 直接copy代码就可以用了.

代码如下 :

1.h文件 

#import@interface UIColor (LWCColor)

//16进制转10进制方法

+ (UIColor *) colorWithHexString: (NSString *)color;

@end

2.m文件

#import "UIColor+LWCColor.h"

@implementation UIColor (LWCColor)

+ (UIColor *) colorWithHexString: (NSString *)color

{

NSString *cString = [[color stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] uppercaseString];

// String should be 6 or 8 characters

if ([cString length] < 6) {

return [UIColor clearColor];

}

// 判断前缀

if ([cString hasPrefix:@"0X"])

cString = [cString substringFromIndex:2];

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

cString = [cString substringFromIndex:1];

if ([cString length] != 6)

return [UIColor clearColor];

// 从六位数值中找到RGB对应的位数并转换

NSRange range;

range.location = 0;

range.length = 2;

//R、G、B

NSString *rString = [cString substringWithRange:range];

range.location = 2;

NSString *gString = [cString substringWithRange:range];

range.location = 4;

NSString *bString = [cString substringWithRange:range];

// Scan values

unsigned int r, g, b;

[[NSScanner scannerWithString:rString] scanHexInt:&r];

[[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];

}

@end

相关文章

网友评论

    本文标题:UIcolor的是16进制色值的转换

    本文链接:https://www.haomeiwen.com/subject/zsxlqxtx.html