如何创建渐变

时间:2014-09-30 07:08:55

标签: ios linear-gradients

我有这段代码来创建渐变背景

CAGradientLayer *gradient = [CAGradientLayer layer];
gradient.frame = self.bounds;
UIColor *startColour = [UIColor colorWithHexString:@"#bcdef6"];
UIColor *endColour = [UIColor colorWithHexString:@"#fad7e6"];
UIColor *middleColor = [UIColor colorWithHexString:@"#ffffff"];

gradient.colors = [NSArray arrayWithObjects:(id)[startColour CGColor],(id)middleColor, (id)[endColour CGColor], nil];
gradient.endPoint = CGPointMake(1, 0);
gradient.startPoint = CGPointMake(0, 1);
[self.layer insertSublayer:gradient atIndex:0];

我如何摆脱中间的灰色效应?

这是理想的结果: enter image description here

这是实际结果: enter image description here

1 个答案:

答案 0 :(得分:0)

我可以看到你的颜色数组的错误,你还没有采用中间颜色的CGColor(白色)。通过将数组更改为此,我可以得到您想要的结果。

gradient.colors = @[(id)startColour.CGColor, (id)middleColor.CGColor, (id)endColour.CGColor];

通过使用渐变位置,您还可以看到更多蓝色和粉红色,以创造更好的效果。

gradient.locations = @[@0.2f, @0.5f, @0.8f];