【发布时间】:2014-12-13 20:10:13
【问题描述】:
我想实现如附图中的渐变效果。
我试图改变对象的CPTMutableLineStyle 的lineGradient。但达不到同样的效果。
你会怎么做?
【问题讨论】:
-
如果我自己这样做,我会将这条线作为 CAShapeLayer 的路径,并使用它来掩盖下方具有彩虹渐变的 CAGradientLayer。我不知道您是否可以将这种技术应用于核心情节。
我想实现如附图中的渐变效果。
我试图改变对象的CPTMutableLineStyle 的lineGradient。但达不到同样的效果。
你会怎么做?
【问题讨论】:
改用线条样式的lineFill 属性。您可以使用渐变或图像来提供填充图案。
【讨论】:
我相信@oleg-danu 可能遇到的问题是没有设置他的渐变角度。另一方面,使用图像填充似乎有奇怪的剪裁问题。基于@eric-skroch 的回答:
CPTColor *red = [CPTColor colorWithCGColor:[UIColor redColor].CGColor];
CPTColor *orange = [CPTColor colorWithCGColor:[UIColor colorWithCrayola:@"Orange"].CGColor];
CPTGradient *gradient = [CPTGradient gradientWithBeginningColor:red endingColor:orange];
gradient.angle = 270.0; // This is critical for red at the top, orange at the bottom
CPTMutableLineStyle *lineStyle = [plot.dataLineStyle mutableCopy];
lineStyle.lineWidth = 3.0;
lineStyle.lineColor = [CPTColor colorWithCGColor:[UIColor redColor].CGColor];
lineStyle.lineFill = [CPTFill fillWithGradient:gradient];
plot.dataLineStyle = lineStyle;
【讨论】: