1、将十六进制字符串转换成16进制:
- (NSString *)hexStringFromString:(NSString *)string{
NSData *colorData = [string dataUsingEncoding:NSUTF8StringEncoding];
Byte *bytes = (Byte *)[colorData bytes];
//下面是Byte 转换为16进制。
NSString *hexStr=@"";
for(int i=0;i<[colorData length];i++)
{
NSString *newHexStr = [NSString stringWithFormat:@"%x",bytes[i]&0xff];///16进制数
if([newHexStr length]==1)
hexStr = [NSString stringWithFormat:@"%@0%@",hexStr,newHexStr];
else
hexStr = [NSString stringWithFormat:@"%@%@",hexStr,newHexStr];
}
return hexStr;
}
2、将十六进制字符串转换成颜色值:- (UIColor*)printColor:(NSString *)str
//str的格式为0x开头,比如,0xff3030
{
int red = (int)strtoul([[str substringWithRange:NSMakeRange(2, 2)] UTF8String], 0, 16);
int green = (int)strtoul([[str substringWithRange:NSMakeRange(4, 2)] UTF8String], 0, 16);
int blue = (int)strtoul([[str substringWithRange:NSMakeRange(6, 2)] UTF8String], 0, 16);
UIColor* hexColor = [UIColor colorWithRed:red/255.0 green:green/255.0 blue:blue/255.0 alpha:1.0];
return hexColor;
}