UIBezierPath - 动画填充

6

我有一个 UIBezierPath(一个圆),通过以下方式逐步构建:

[circlePath addArcWithCenter:clockCenter radius:radius startAngle:angleRadians endAngle:1.5*M_PI clockwise:YES];
...
[circlePath closePath];
[COLOR_CIRCLE setFill];
[circlePath fill];

偶尔我想要给填充着色动画,使其在一秒钟内完全填充,并按照建立路径的方向(顺时针)进行。您认为最好的实现方法是什么?目前我正在考虑使用核心动画,但我希望有fill:withDelay或类似的方法可供使用。谢谢。


1
我之前为一个核心动画演示做了类似的事情。示例代码可在GitHub上获取,并且其中有很多注释。 - David Rönnqvist
3
你也可以查看我的答案,用于 iPhone核心动画-绘制圆形问题。 - David Rönnqvist
1个回答

2
你可以尝试以下方法:创建一个CAShapeLayer,将其路径设置为你的形状。使用这个CAShapeLayer作为另一个图层的蒙版,并在其中绘制一个填充的弧形/圆形。然后将弧形/圆形的角度从0º动画到360º。这可能会近似你想要的效果。
我找不到一种“内置”的方法来按你想要的方式动画填充。但是,有一种内置的方法可以动画描边:
使用一个带有CAShapeLayer支持的UIView。CAShapeLayer具有一个路径属性。然后,你可以对该层的strokeStart和/或strokeEnd属性应用动画。

抱歉-刚意识到您的路径是一个普通圆形,而不是任意形状。这个答案是针对任意形状的。对于普通圆形,您应该删除掩蔽步骤。请参阅David的答案。 - nielsbot

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接