要获取的任何代码段:
NSString *_s = @"#000000";
到:
[UIColor blackColor];
任何帮助都非常感激,只是乱七八糟的代码来执行此操作:(
答案 0 :(得分:1)
修改后的版本 - 也采用Alpha值
#define UIColorFromRGBA(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF000000) >> 24))/255.0 green:((float)((rgbValue & 0xFF0000) >> 16))/255.0 blue:((float)((rgbValue & 0xFF00) >> 8 ))/255.0 alpha:((float)((rgbValue & 0xFF))/255.0)]
答案 1 :(得分:0)
这对我有用:
#define UIColorFromRGB(rgbValue) \
[UIColor \
colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 \
green:((float)((rgbValue & 0x00FF00) >> 8))/255.0 \
blue:((float)(rgbValue & 0x0000FF))/255.0 \
alpha:1.0]
使用它像:
UIColorFromRGB(0x4c4c4c)
答案 2 :(得分:0)
我在UIColor
上写了一个类别来完成这个:
创建一个新的Objective-C类别。在标题中:
#define UIColorFromRGB(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]
@interface UIColor (Hex)
+ (UIColor*)colorFromHex:(NSString*)hex;
@end
在您的实施中:
@implementation UIColor (Hex)
+ (UIColor*)colorFromHex:(NSString *)hex
{
unsigned result = 0;
NSScanner *scanner = [NSScanner scannerWithString:hex];
[scanner setScanLocation:0];
[scanner scanHexInt:&result];
return UIColorFromRGB(result);
}
@end
这假设您的十六进制字符串采用000000
格式,但您可以根据需要调整#(将[scanner setScanLocation:0]
更改为[scanner setScanLocation:1]
)。