2013-08-28 83 views
3

如何將UIColor對象轉換爲uint32_t值。請讓我知道是否有人知道這一點?如何將UIColor RGB顏色轉換爲uint32_t值

下面是代碼:

const CGFloat *components = CGColorGetComponents([UIColor redColor].CGColor); 
    CGFloat r = components[0]; 
    CGFloat g = components[1]; 
    CGFloat b = components[2]; 
    const uint32_t rgb = ((uint32_t)r << 16 | (uint32_t)g << 8 | (uint32_t)b); 

如何uint32_t的傳遞0xFFFFFFFF的價值?

const uint32_t white = 0xFFFFFFFF, black = 0xFF000000, transp = 0x00FFFFFF; 

回答

3

如果要轉換十六進制字符串爲整數值,你應該試試這個:

unsigned int outVal; 
NSScanner* scanner = [NSScanner scannerWithString:@"0xFF000000"]; 
[scanner scanHexInt:&outVal]; 
+0

其工作。我能夠獲得價值。 –

+0

這裏是我的代碼在哪裏我將UIColor轉換爲uint32_t。問題是當我傳遞[Uicolor redColor]時,它的藍色會發生變化。顯示當我通過[UIColor blueColor]時,它會顯示紅色。我不明白我錯在哪裏?請幫助我。+(NSString *)getHexStringForColor:(UIColor *)color const CGFloat * components = CGColorGetComponents(color.CGColor); CGFloat red = components [0]; CGFloat green = components [1]; CGFloat blue = components [2]; NSString * hexString = [NSString stringWithFormat:@「%02X%02X%02X」,(int)(red * 255),(int)(green * 255),(int)(blue * 255)]; return hexString;} –

+0

NSString * colorHex = [QREncoder getHexStringForColor:[UIColor blueColor]]; colorHex = [NSString stringWithFormat:@「0xFF%@」,colorHex]; NSScanner * scanner = [NSScanner scannerWithString:colorHex]; uint32_t scanedVal; [scanner scanHexLongLong:(unsigned long long *)&scanedVal]; const uint32_t white = 0xFFFFFFFF,black = scanedVal,transp = 0x00FFFFFF; –