第一次写博客,算是把自己的学习记录做个笔记把,留给自己以后参考的,先写一个学习的将颜色转换的方法,
+ (UIColor *)colorFromHexRGB:(NSString *)inColorString {
UIColor *result = nil;
unsigned int colorCode = 0;
unsigned char redByte, greenByte, blueByte;
if (nil != inColorString) {
NSScanner *scnaner = [NSScanner scannerWithString:inColorString];
(void)[scnaner scanHexInt:&colorCode];
}
NSLog(@"%i", colorCode);
//例如 16743167转成二进制 @"11111111 01111010 11111111"; 然后取最后8位,右移16位之后11111111,右移8位01111010,不右移11111111
redByte = (unsigned char)(colorCode >>16);//二进制右移16位,相当于colorcode除2的16次方
NSLog(@"redByte:%i", redByte);
greenByte = (unsigned char)(colorCode >> 8);
NSLog(@"greenByte:%i", greenByte);
blueByte = (unsigned char)(colorCode);
NSLog(@"blueByte:%i", blueByte);
NSLog(@"redByte/0xff%f", (float)redByte/0xff);
result = [UIColor colorWithRed:(float)redByte/0xff green:(float)greenByte/0xff blue:(float)blueByte/0xff alpha:1];
return result;
}
如果传入FF7AFF
//例如 colorCode的值是16743167, 转成二进制为@"11111111 01111010 11111111";
>>(x) 代表右移x位
然后取最后8位,右移16位之后11111111,右移8位01111010,不右移11111111
所以redByte为11111111转成整形即为255
然后除以0xff(16进制)也是255;
最后返回的值即为UIColor