2012-07-11 81 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