使用动画更改组合路径的一部分的填充颜色?

时间:2015-12-17 17:25:51

标签: ios animation uibezierpath cashapelayer cgpath

简单来说,只有部分图标必须在某些事件中改变颜色。

我在UIView内绘制了一个带有曲线的图标。画画会出现 将这几条路径组合起来(快速代码):

let combinedPath = CGPathCreateMutableCopy(bezierPath.CGPath)
CGPathAddPath(combinedPath, nil, bezier2Path.CGPath);
CGPathAddPath(combinedPath, nil, bezier3Path.CGPath);

然后我将这样的组合路径添加到UIView(obj-c,对不起 混合):

CAShapeLayer *shapeLayer = [CAShapeLayer layer];
shapeLayer.frame = self.bounds;
shapeLayer.path = combinedPath;
self.layer.mask = shapeLayer;

现在在某些时候我想改变填充颜色 只有一个带有动画的bezierPath。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

您可以清理当前蒙版,并使用笔触/填充颜色重绘任何贝塞尔曲线路径并将它们组合在一起,然后重新设置。对于绘制动画,您可以参考How to Animate CoreGraphics Drawing of Shape Using CAKeyframeAnimation