0

我有一个UIColor对象,它将成为条形图中条形的颜色。我想把这种颜色变成一个线性渐变,从颜色变为该颜色的较浅版本,然后回到初始颜色。我认为CGGradientCreateWithColorComponents是这个功能,但我不知道如何使用它......我如何获得我的颜色的较浅版本?并在渐变中使用它。我对核心图形相当陌生。

谢谢 ...

4

1 回答 1

0

CAGradientLayer在 Quartz Core 框架中使用。CGColorRef它接受可用于形成渐变的颜色数组。UIColor下面显示了一些用于处理in的示例代码color。您可以修改亮度或其他 HSB 参数以达到您想要的效果。

CGFloat hue;
CGFloat saturation;
CGFloat brightness;
CGFloat alpha;
[ color getHue:&hue saturation:&saturation brightness:&brightness alpha:&alpha ]

CAGradientLayer *gradient = [ CAGradientLayer layer ];
gradient.frame = self.bounds;
gradientColorsArray = [ NSArray arrayWithObjects:
    (id) [[ UIColor colorWithHue:1.0 saturation:1.0 brightness:1.0 alpha:1.0 ] CGColor],
    (id) [[ UIColor colorWithHue:1.0 saturation:1.0 brightness:0.75 alpha:1.0 ] CGColor],
     nil ];
gradient.colors = gradientColorsArray;
gradient.startPoint = CGPointMake(0.5f, 0.0f);
gradient.endPoint = CGPointMake(0.5f, 1.0f);
[ self.layer addSublayer:gradient ];
于 2012-11-25T06:52:59.803 回答