我在 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
最佳答案
当您为 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是一样的。是的,但我已经写过,对于两个值,始终传递浮点值意味着 in。
由于用户没有提供第二次对话,我认为函数使用 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 将不会有相同的值,以防它不被 float 分隔,即 255.0
关于ios - UIColor 显示不完全正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29409989/