UIColor显示不完全正确吗?

时间:2015-04-02 09:53:20

标签: ios user-interface uicolor

我在viewDidLoad

中输入了这个内容
self.view.backgroundColor = [UIColor colorWithRed:231/255.0 green:77/255.0 blue:77/255.0 alpha:1.0];

并在xib中创建标签,设置颜色e74d4d(转换为rgb为231,77,77)

我想在网站上展示图片,但它告诉我需要10个声誉。

我调试代码,找到它,

(lldb) po self.view.backgroundColor
UIDeviceRGBColorSpace 0.905882 0.301961 0.301961 1

(lldb) po self.label.textColor
UIDeviceRGBColorSpace 0.87161 0.208926 0.237916 1

this is screenshot of the simulator

this is the code with UIColor

this color setup

i even set this to clear color,but didn't work

3 个答案:

答案 0 :(得分:4)

当你为UIColor传递值时总是使用浮点值。

self.view.backgroundColor = [UIColor colorWithRed:231.0/255.0 green:77.0/255.0 blue:77.0/255.0 alpha:1.0];

在转换为其他格式时也使用相同的浮点值。

编辑:来自评论。 除231 / 255.0和231.0 / 255.0是相同的。是的,但我写过,总是传递浮动值意味着两个值。

由于用户没有提供第二次会话,我认为函数使用255代替分支而不是255.0,因此它将是一个整数值。

逐个使用RGBFromUIColor宏尝试下面的代码,它将显示不同的输出。

self.titleLabel.backgroundColor = [UIColor colorWithRed:231/255 green:77/255 blue:77/255 alpha:1.0];
self.titleLabel2.backgroundColor = [UIColor colorWithRed:231.0/255.0 green:77.0/255.0 blue:77.0/255.0 alpha:1.0];
self.titleLabel3.backgroundColor = RGBFromUIColor(231, 77, 77);
self.titleLabel4.backgroundColor = RGBFromUIColor(231.0, 77.0, 77.0)

现在假设RGBFromUIColor的宏如下所示

#define RGBFromUIColor(r, g, b) \[UIColor colorWithRed:(r)/255.0 green:(g)/255.0 blue:(b)/255.0 alpha:1]

或者像这样

#define RGBFromUIColor(r, g, b) \[UIColor colorWithRed:(r)/255 green:(g)/255 blue:(b)/255 alpha:1]

最后一个RGBFromUIColor将不具有相同的值,以防它被浮点数分割,即255.0

答案 1 :(得分:0)

您的问题是文字标签颜色与背景颜色不同?

我怀疑你的问题是你将文本颜色设置为e74d4d,这是一个24位值,没有透明度值(RGBA和ARGB中的A)。尝试将透明度设置为不透明(alpha为1)的ffe74d4d或e74d4dff。更好的是,只需设置与设置背景颜色相同的方式,iOS就会自动将透明度设置为不透明。

答案 2 :(得分:0)

这可能不是您遇到的情况,但由于我的显示器上的颜色校准,我之前看到过OS X拾色器的一些颜色问题。有时似乎按显示值选择颜色分量,然后将它们转换为sRGB,而实际上根本不需要转换。

我会尝试以下任何一种方法:

  1. 使用'RGB Sliders'颜色选择器面板。
  2. 在没有颜色配置文件的图像中绘制颜色,在Preview.app中打开图像并使用移液器工具选择该颜色。