我在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
答案 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,而实际上根本不需要转换。
我会尝试以下任何一种方法: