gpt4 book ai didi

ios - Storyboard中设置的白色和 UIColor.whiteColor() 之间有什么区别?

转载 作者:搜寻专家 更新时间:2023-10-31 22:13:41 24 4
gpt4 key购买 nike

对于 UIButton,我在 Storyboard中将其背景颜色设置为 White Color。我想根据按钮的当前 backgroundColor 切换按钮的属性。

func toggleButton(button: UIButton) {
if button.backgroundColor == UIColor.whiteColor() {
button.backgroundColor = UIColor.myDesiredColor()
button.tintColor = UIColor.whiteColor()
}else {
button.backgroundColor = UIColor.whiteColor()
button.tintColor = UIColor.myDesiredColor()
}
}

button.backgroundColor == UIColor.whiteColor() 的检查永远不会返回 true,在调试之后,我发现了 White Color 的值从 Storyboard 设置的 code> 与 UIColor.whiteColor() 的值不同。

调试结果:
Storyboard白色 - UIDeviceRGBColorSpace 1 1 1 1
UIColor.whiteColor() - UIDeviceWhiteColorSpace 1 1

我已经找到让我的代码按预期工作的解决方法。

我真正的困惑是:

  • 这两个值有什么区别?
  • 为什么 Xcode 在 Storyboard和代码中有两个相同颜色的不同值?
  • 这两种不同的白色有何不同?

最佳答案

结果的差异并不是因为使用的颜色(毕竟它们都是白色),而是因为使用的结果 colorspace:(RGB,另一个是Device)

设备颜色

设备颜色旨在真实呈现人眼所感知的颜色。与设备无关的颜色空间以白色引用点、黑色引用点和特定设备的 Gamma 值开始。 iOS Quartz 利用该信息将源颜色空间的颜色转换为输出设备的颜色空间。设备颜色也是国际色彩联盟定义的标准。

ICC profiles define the gamut of colors supported by a device along with other device characteristics so that this information can be used to accurately transform the color space of one device to the color space of another.

RGB

RGB 是一种三维颜色空间,由构成给定颜色的红色、绿色和蓝色强度的不同值组成。它是计算机图形学中最常用的色彩空间,因为当今大多数彩色显示器都直接支持它。 RGB 颜色空间依赖于设备并且是可加的。

Signals are transmitted to the elements on the face of the monitor, causing them to glow at various intensities of red, green, and blue (the combination of which makes up the required hue, saturation, and brightness of the desired colors)

iOS: Color and Color Spaces

关于ios - Storyboard中设置的白色和 UIColor.whiteColor() 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37477667/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com