iOS中的十六进制颜色不准确

Ham*_*ato 5 objective-c ios

我发现当您在xib中设置视图的backgroundColor时,显示的颜色与以编程方式设置backgroundColor时的颜色明显不同.

这是一个例子.

我在这个简单的演示中有两个视图.我在xib中设置了上部视图的backgroundColor,如下所示: 在此输入图像描述

十六进制颜色值为0x1BA9BA.然后我以相同的十六进制颜色值以编程方式设置下部视图的backgroundColor.我使用以下代码:

NSInteger hexValue = 0x1ba9ba;
self.testView.backgroundColor = [UIColor colorWithRed:((float)((hexValue & 0xFF0000) >> 16)) / 255.0 
                                                  green:((float)((hexValue & 0xFF00) >> 8)) / 255.0 
                                                  blue:((float)(hexValue & 0xFF))/255.0 
                                                  alpha:1.0];
Run Code Online (Sandbox Code Playgroud)

结果如下:

在此输入图像描述

如您所见,颜色有明显差异.我在这里错过了什么?

mat*_*att 10

我将RGB滑块应用到第一个视图,将代码应用到第二个视图,颜色在模拟器中完全相同(在我看来); 这是模拟器的屏幕截图:

在此输入图像描述

但是,当颜色选择器的颜色空间设置为Generic RGB时,我将这些数字输入到颜色选择器(27,169,186)中.如果我切换到sRGB 然后输入这些数字,我可以重现你的问题.毕竟这是一个色彩空间问题; 刚开始将颜色空间设置为Generic RGB,现在数字将匹配.