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

时间:2015-11-24 17:54:40

标签: ios objective-c storyboard uicolor

我遇到了故事板的问题,我试图在代码中重现故事板中挑选的颜色。 我制作了一个小样本应用程序来向您展示我的意思: 在故事板中,我制作了一个简单的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

有人可以解释是什么导致了故事板和代码值之间的差异以及我如何解决这个问题以便我可以持续使用颜色?

1 个答案:

答案 0 :(得分:0)

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