UIcolor的是16进制色值的转换

在开发过程中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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容