我有顏色的代碼轉換:convering十六進制爲rgb結果白
// takes @"#123456"
+ (UIColor *)colorWithHexString:(NSString *)str {
const char *cStr = [str cStringUsingEncoding:NSASCIIStringEncoding];
long x = strtol(cStr+1, NULL, 16);
return [UIColor colorWithHex:(UInt32)x];
}
// takes 0x123456
+ (UIColor *)colorWithHex:(UInt32)col {
unsigned char r, g, b, a;
b = col & 0xFF;
g = (col >> 8) & 0xFF;
r = (col >> 16) & 0xFF;
a = (col >> 24) & 0xFF;
if (a == 0) {
a = 255.0;
}
return [UIColor colorWithRed:(float)r/255.0f green:(float)g/255.0f blue:(float)b/255.0f alpha:(float)a/255.0f];
}
的問題是,當我測試在模擬器上的代碼返回正確的顏色,但是當我測試這個設備上(新iPad迷你1)顏色返回
UIDeviceRGBColorSpace 111 0.0156863
這是小白!
嘗試在設備上運行時NSLog值'x'和'col'。 – kennytm
@Rob這是值#ffdd6858 – OXXY
@kennytm這是輸出:x = 2147483647 col = 2147483647 – OXXY