2012-07-11 41 views
6

我有逐步建成了UIBezierPath(圆):UIBezierPath - 动画填写

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

偶尔,我想动画填充,这样只有在第二个完全填充,并遵循的路径,因为它(顺时针)。完成此操作的首选方法是什么?现在我正在考虑核心动画,但我希望有一个补充:与延迟或一些我没有偶然发现。 TIA。

+1

我之前为Core Animation演示做了类似的事情。 [示例代码](https://github.com/d-ronnqvist/cocoaheads-coreanimation-samplecode/blob/master/PieChartProgress/PieChartProgress/DRPieChartProgressView.m)在GitHub上可用,并且有很多评论。 – 2012-07-11 06:57:08

+3

您还可以查看[我的答案](http://stackoverflow.com/a/8021051/608157)[iPhone核心动画 - 绘制圆](http://stackoverflow.com/q/7991086/608157) – 2012-07-11 06:59:11

回答

2

你可以试试这个:

创建CAShapeLayer其path设置为你的形状。使用此CAShapeLayer作为您绘制填充圆弧/圆的另一图层的蒙版。然后将从0º到360º的圆弧/圆弧弧角动画化。这可能接近你想要的效果。

我无法找到一种“内置”方式来根据需要设置动画效果。然而,有一种内置的方式来创建中风的动画:

使用UIView和支持CAShapeLayer的UIView。 CAShapeLayer具有path属性。然后,您可以将动画应用到图层的strokeStart和/或strokeEnd属性。

+0

对不起 - 刚刚意识到你的路径是一个简单的圆形,而不是任意的形状。这个答案适用于任意形状。你应该删除一个普通圆的掩盖步骤。见大卫的回答 – nielsbot 2012-07-11 16:49:58