字符串"#333333"转UIColor对象
2025-02-20 本文已影响0人
_菩提本无树_
+ (UIColor *)colorWithHexString:(NSString *)hexString {
// 去掉字符串中的‘#’前缀(如果有)
if ([hexString hasPrefix:@"#"]) {
hexString = [hexString substringFromIndex:1];
}
// 颜色字符串长度应为6或8(6: RGB,8: ARGB)
NSUInteger length = [hexString length];
if (length != 6 && length != 8) {
return nil;
}
unsigned int rgbValue = 0;
NSScanner *scanner = [NSScanner scannerWithString:hexString];
[scanner scanHexInt:&rgbValue];
CGFloat red, green, blue, alpha;
if (length == 6) {
red = ((rgbValue & 0xFF0000) >> 16) / 255.0;
green = ((rgbValue & 0x00FF00) >> 8) / 255.0;
blue = (rgbValue & 0x0000FF) / 255.0;
alpha = 1.0;
} else {
alpha = ((rgbValue & 0xFF000000) >> 24) / 255.0;
red = ((rgbValue & 0x00FF0000) >> 16) / 255.0;
green = ((rgbValue & 0x0000FF00) >> 8) / 255.0;
blue = (rgbValue & 0x000000FF) / 255.0;
}
return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
}