简单地说,我在界面构建器中有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
代码)
EDIT2:
所以,我在这里骗自己......“界面建设者将RGB 99,99,99显示为80,80,80。我打赌它将数字偏移19。” >> ......一个使用Xcode的绝望男人认为像这样疯狂的东西..结果:
完美!! ,但为什么 ????另一个Xcode错误?我发现过去一个月里有10个......
答案 0 :(得分:22)
我终于到了这个应用程序的微调阶段,不得不解决这个问题,所以,我搜索并轻松找到了解决方案:
How do I enter RGB values into Interface Builder?
<强>插图:强>
答案 1 :(得分:1)
colorWithWhite
使用grayscale space,灰度空间中的颜色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]