CAGradientLayer紫色而不是红色

时间:2012-11-12 16:16:13

标签: iphone ios

我的问题很简单。

我想使用CAGradientLayer为我的UIView创建漂亮的渐变背景。

但问题是它显示出一种丑陋的紫罗兰色而不是我想要的美妙的红色。

以下是我正在使用的代码:

- (void)viewWillAppear:(BOOL)animated {
    CAGradientLayer *gradient = [CAGradientLayer layer];
    gradient.frame = self.view.bounds;
    gradient.colors = [NSArray arrayWithObjects:(id)[[UIColor blackColor] CGColor], (id)[[UIColor blackColor] CGColor], (id)[[UIColor colorWithRed:107 green:0 blue:27 alpha:1] CGColor], nil];
    [self.view.layer insertSublayer:gradient atIndex:0];
}

结果,我可以看到:

enter image description here

这不是我想要的......如果有人可以帮助我。

谢谢!干杯:)

2 个答案:

答案 0 :(得分:4)

您必须使用分数,而不是整数:

[UIColor colorWithRed:107/255.f green:0.f blue:27/255.f alpha:1.f];

当然,要警惕整数除法。那个混蛋总是让我处于这种情况。

答案 1 :(得分:1)

这里你应该使用RGB中的颜色

-(void)viewWillAppear:(BOOL)animated {
CAGradientLayer *gradient = [CAGradientLayer layer];
gradient.frame = self.view.bounds;
//here just set the colour form RGB.
gradient.colors = [NSArray arrayWithObjects:(id)[[UIColor colorWithRed:exactFractionVal green:exactFractionVal blue:exactFractionval alpha:1.f]; CGColor];
[self.view.layer insertSublayer:gradient atIndex:0];
}

//here exactFractionVal is the float value you should pass there for exact RGB.

如果您在制作RGB时遇到任何问题,可以在许多网站上找到它。 在这里你可以看到制作所需颜色的RGB图表。

here it is...!!!

here is another good link at where you can get quite good RGB for Red

我希望这可以帮助你所需要的东西.. !!!