疑问
CSS下有时候为了偷懒,会把#CCCCCC写成#CCC,这个其实就是自动补齐,CSS下会复制每个C变成CC;
那么同样的逻辑下iOS是什么效果呢?
解答
因为SDK并没有提供HEX参数的UIColor构造函数,所以实际上就是看代码怎么写的
如果按照比较常用的方式是什么样的呢?
How can I create a UIColor from a hex string?
1 2 3 4 5 6 7 8
| // Assumes input like "#00FF00" (#RRGGBB). + (UIColor *)colorFromHexString:(NSString *)hexString { unsigned rgbValue = 0; NSScanner *scanner = [NSScanner scannerWithString:hexString]; [scanner setScanLocation:1]; // bypass '#' character [scanner scanHexInt:&rgbValue]; return [UIColor colorWithRed:((rgbValue & 0xFF0000) >> 16)/255.0 green:((rgbValue & 0xFF00) >> 8)/255.0 blue:(rgbValue & 0xFF)/255.0 alpha:1.0]; }
|
根据这个代码,实际的效果会是这样:
1
| #CCC 会被解释成 #000CCC,而不是像CSS中所期望的#CCCCCC
|
参考文章:
Web colors