我现在面临的问题是,在我通过CAShapeLayer绘制点和线之后,我需要通过改变不同的矩形区域来修改它们的两种颜色。我现在设置的区域有四个部分,以下是示例代码:
- (void)drawChartWithRecord:(Chart *)Chart
lineWidth:(CGFloat)lineWidth
radius:(CGFloat)radius
interval:(CGFloat)interval
rect:(CGRect)rect {
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSaveGState(context);
float start_angle = 0;
float end_angle = (float) (2 * M_PI);
CAShapeLayer *avg = [CAShapeLayer layer];
avg.path = [UIBezierPath bezierPathWithArcCenter:CGPointMake(X,Y) radius:radius startAngle:start_angle endAngle:end_angle clockwise:YES].CGPath;
CGContextMoveToPoint(context, X, Y);
CGContextAddLineToPoint(context, pastX, pastY);
CGContextSetStrokeColorWithColor(context, LINE_COLOR);
CGContextSetLineWidth(context, lineWidth);
CGContextStrokePath(context);
[self.layer addSublayer:avg];
}
使用线和点代码;但是,我没有找到任何方法将rect导入同一个CAShapeLayer。如果我将新图层设为
CAShapeLayer *mask = [CAShapeLayer layer];
如果我使用
,就会出现问题[self.layer addSublayer:mask];
其中两个子图层会混合,我不想改变背景颜色。
感谢大家的帮助:)
答案 0 :(得分:0)
不幸的是,我对自己的问题错了。
我想要的东西很容易通过CAGradientLayer
& CAShapeLayer
。完成自己的CAShapeLayer后,使用
[self.gradientLayer setMask:avgCircle];
您可以轻松地将自己的渐变颜色添加到线条形状CAShapeLayer
请务必为addSublayer:
&添加CAGradientLayer
CAShapeLayer