处理详情tag的背景色

This commit is contained in:
2025-12-23 20:56:00 +08:00
parent 6a539dc3c5
commit 0a725e845e
7 changed files with 52 additions and 20 deletions

View File

@@ -11,6 +11,7 @@ NS_ASSUME_NONNULL_BEGIN
@interface UIColor (Extension)
+ (UIColor *)colorWithHex:(int)hexValue;
+ (nullable UIColor *)colorWithHexString:(NSString *)hexString;
@end
NS_ASSUME_NONNULL_END

View File

@@ -20,4 +20,25 @@
{
return [UIColor colorWithHex:hexValue alpha:1.0];
}
+ (UIColor *)colorWithHexString:(NSString *)hexString
{
if (hexString.length == 0) { return nil; }
NSString *clean = [[hexString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] uppercaseString];
if ([clean hasPrefix:@"#"]) {
clean = [clean substringFromIndex:1];
} else if ([clean hasPrefix:@"0X"]) {
clean = [clean substringFromIndex:2];
}
if (clean.length != 6 && clean.length != 8) { return nil; }
unsigned long long value = 0;
NSScanner *scanner = [NSScanner scannerWithString:clean];
if (![scanner scanHexLongLong:&value]) { return nil; }
if (clean.length == 6) {
return [UIColor colorWithHex:(int)value];
}
CGFloat alpha = ((value & 0xFF000000) >> 24) / 255.0;
int rgb = (int)(value & 0xFFFFFF);
return [UIColor colorWithHex:rgb alpha:alpha];
}
@end