8

简单地说,我在界面构建器中有 2 个视图,其中一个使用界面构建器中的 RGB 滑块设置为颜色 99、99、99。

在此处输入图像描述

另一个视图以编程方式着色以实现特定形状。我使用以下方法填充它:

//Obviously, this is in drawRect.
[[UIColor leadColor] set];
CGContextEOFillPath(myContext);

//And this is a category on UIColor
+ (UIColor *)leadColor {
    return [UIColor colorWithWhite:99/255.0 alpha:1.0];
}

结果:

在此处输入图像描述

为什么会存在这种差异??


编辑:(drawRect删除了不必要的代码)


编辑2:

所以,在这里我是在自欺欺人..“界面生成器将 RGB 99,99,99 显示为 80,80,80。我敢打赌它会将数字抵消 19。” >.> ...一个使用 Xcode 的绝望的人会想像这样疯狂的东西.. 结果:

完美的!!

完美的!!,但是为什么????另一个 Xcode 错误?在过去的一个月里,我发现了其中的 10 个......

4

2 回答 2

22

终于到了这个app的微调阶段,不得不解决这个问题,于是,我搜索了一下,很容易找到了解决方案:

如何在 Interface Builder 中输入 RGB 值?

插图:

在此处输入图像描述

于 2012-07-15T15:50:06.240 回答
1

colorWithWhite使用灰度空间,灰度空间中的颜色 99 不会映射到 RGB 空间中的颜色 (99,99,99)。

因此,为了获得与 Interface Builder 中相同的结果,您需要使用 RGB 空间。将您对 colorWithWhite 的调用替换为:

[UIColor colorWithRed:99/255.0 green:99/255.0 blue:99/255.0 alpha:1.0]
于 2012-05-28T08:54:42.800 回答