按矩形区域画线 CAShapeLayer 图层颜色
Draw line CAShapeLayer layer color by rect region
我现在面临的问题是,在我通过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];
}
基于线和点代码;但是,我没有找到任何方法将矩形导入同一个 CAShapeLayer。如果我创建一个新图层
CAShapeLayer *mask = [CAShapeLayer layer];
如果我使用
会有问题
[self.layer addSublayer:mask];
两个子图层会混合,我不想更改我的背景颜色。
感谢大家的帮助:)
不幸的是,我的问题错了。
我想要的东西 CAGradientLayer
& CAShapeLayer
可以轻松解决。完成自己的 CAShapeLayer 后,使用
[self.gradientLayer setMask:avgCircle];
您可以轻松地将自己的渐变颜色添加到线条形状中CAShapeLayer
务必为 CAGradientLayer
和 CAShapeLayer
添加 addSublayer:
我现在面临的问题是,在我通过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];
}
基于线和点代码;但是,我没有找到任何方法将矩形导入同一个 CAShapeLayer。如果我创建一个新图层
CAShapeLayer *mask = [CAShapeLayer layer];
如果我使用
会有问题[self.layer addSublayer:mask];
两个子图层会混合,我不想更改我的背景颜色。
感谢大家的帮助:)
不幸的是,我的问题错了。
我想要的东西 CAGradientLayer
& CAShapeLayer
可以轻松解决。完成自己的 CAShapeLayer 后,使用
[self.gradientLayer setMask:avgCircle];
您可以轻松地将自己的渐变颜色添加到线条形状中CAShapeLayer
务必为 CAGradientLayer
和 CAShapeLayer
addSublayer: