博客> Rgb颜色支持@“#123456”、 @“0X123456”、 @“123456”三种格式**
Rgb颜色支持@“#123456”、 @“0X123456”、 @“123456”三种格式**
2019-11-13 22:51 评论:0 阅读:1078 yutaotst
ios color 16进制

下面是我写的一个扩展,可以从十六进制字符串获取颜色, color:支持@“#123456”、 @“0X123456”、 @“123456”三种格式 // // UIColor+Hex.h // Truck // // Created by LANJIE on 15/9/9. // Copyright (c) 2015年 lanjie. All rights reserved. //

import

define RGBA_COLOR(R, G, B, A) [UIColor colorWithRed:((R) / 255.0f) green:((G) / 255.0f) blue:((B) / 255.0f) alpha:A]

define RGB_COLOR(R, G, B) [UIColor colorWithRed:((R) / 255.0f) green:((G) / 255.0f) blue:((B) / 255.0f) alpha:1.0f]

@interface UIColor (Hex)

  • (UIColor )colorWithHexString:(NSString )color;

//从十六进制字符串获取颜色, //color:支持@“#123456”、 @“0X123456”、 @“123456”三种格式

  • (UIColor )colorWithHexString:(NSString )color alpha:(CGFloat)alpha; @end

// // UIColor+Hex.m // Truck // // Created by LANJIE on 15/9/9. // Copyright (c) 2015年 lanjie. All rights reserved. //

import "UIColor+Hex.h"

@implementation UIColor (Hex)

  • (UIColor )colorWithHexString:(NSString )color alpha:(CGFloat)alpha { //删除字符串中的空格 NSString *cString = [[color stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] uppercaseString]; // String should be 6 or 8 characters if ([cString length] < 6) { return [UIColor clearColor]; } // strip 0X if it appears //如果是0x开头的,那么截取字符串,字符串从索引为2的位置开始,一直到末尾 if ([cString hasPrefix:@"0X"]) { cString = [cString substringFromIndex:2]; } //如果是#开头的,那么截取字符串,字符串从索引为1的位置开始,一直到末尾 if ([cString hasPrefix:@"#"]) { cString = [cString substringFromIndex:1]; } if ([cString length] != 6) { return [UIColor clearColor]; }

    // Separate into r, g, b substrings NSRange range; range.location = 0; range.length = 2; //r NSString rString = [cString substringWithRange:range]; //g range.location = 2; NSString gString = [cString substringWithRange:range]; //b 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:alpha]; }

//默认alpha值为1

  • (UIColor )colorWithHexString:(NSString )color { return [self colorWithHexString:color alpha:1.0f]; } @end 然后在其他需要用到的地方调用即可 [UIColor colorWithHexString:ColorGreen@"111111"];
收藏
1
sina weixin mail 回到顶部