我有这段代码来创建渐变背景
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];
我如何摆脱中间的灰色效应?
这是理想的结果:
这是实际结果:
答案 0 :(得分:0)
我可以看到你的颜色数组的错误,你还没有采用中间颜色的CGColor(白色)。通过将数组更改为此,我可以得到您想要的结果。
gradient.colors = @[(id)startColour.CGColor, (id)middleColor.CGColor, (id)endColour.CGColor];
通过使用渐变位置,您还可以看到更多蓝色和粉红色,以创造更好的效果。
gradient.locations = @[@0.2f, @0.5f, @0.8f];