问题描述:

In simple words only part of my icon must change color at some event.

I drawing an icon with curves inside an UIView. The drawing boilds

down to combining several paths together like this (swift code):

let combinedPath = CGPathCreateMutableCopy(bezierPath.CGPath)

CGPathAddPath(combinedPath, nil, bezier2Path.CGPath);

CGPathAddPath(combinedPath, nil, bezier3Path.CGPath);

Then I'm adding the combined path to the UIView like this (obj-c, sorry for

the mix):

CAShapeLayer *shapeLayer = [CAShapeLayer layer];

shapeLayer.frame = self.bounds;

shapeLayer.path = combinedPath;

self.layer.mask = shapeLayer;

And now at some point in time I want to change the fill color of

only one bezierPath with animation. How can I do this?

网友答案:

You can clean the current mask, and redraw any of the bezierpath with stroke/fill color and combine them together, and set it again. And for drawing animation, you can refer to How to Animate CoreGraphics Drawing of Shape Using CAKeyframeAnimation

相关阅读:
Top