UIColor colorWithRed: green: blue: alpha: 产生与故事板滑块不同的颜色

UIColor colorWithRed: green: blue: alpha: produces different color than storyboard sliders

我 运行 遇到故事板的问题,我试图在代码中重现故事板中选取的颜色。 我制作了一个小示例应用程序来向您展示我的意思: 在情节提要中,我做了一个简单的 viewcontroller,中间有一个按钮。我设置视图和按钮的背景颜色如下: Color picker in storyboard

然后我将按钮连接到生成以下日志的这段代码:

- (IBAction)testColor:(UIButton *)sender
{
    CGFloat red, green, blue, alpha;
    [sender.backgroundColor getRed:&red green:&green blue:&blue alpha:&alpha];
    NSLog(@"\nred:%f\ngreen:%f\nblue:%f\nalpha:%f\n", red, green, blue, alpha);

    [sender setBackgroundColor:[UIColor colorWithRed:223 / 255.0f green:175 / 255.0f blue:0 / 255.0f alpha:1.0f]];
    [sender.backgroundColor getRed:&red green:&green blue:&blue alpha:&alpha];
    NSLog(@"\nred:%f\ngreen:%f\nblue:%f\nalpha:%f\n", red, green, blue, alpha);
}

2015-11-24 18:20:43.812 colorTest[9311:205700]red:0.840786
green:0.629816
blue:0.030545
alpha:1.000000
2015-11-24 18:20:43.815 colorTest[9311:205700] 
red:0.874510
green:0.686275
blue:0.000000
alpha:1.000000

Screen before (left) and after (right) clicking button

谁能解释一下是什么导致了故事板和代码值之间的差异,以及我如何解决这个问题以便我可以始终如一地使用颜色?

您必须将颜色设置为 "Generic RGB"。在 "RGB Sliders" 下拉列表(在 Interface Builder 中)旁边,您可能会看到一个设置轮。点击它并设置 "Generic RGB"。这可能会解决您的问题