2012-07-11 10 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]; 

が、私は塗りつぶしをアニメーション化したいと思います建てられた(時計回り)。これを達成するための好ましい方法は何ですか?今私はCore Animationを考えていますが、私はそこに塗りつぶしがあることを望んでいます.Delayまたは私が遭遇したことのないもの。 TIA。

+1

Core Animationのプレゼンテーションでも同じようなことをしました。 [サンプルコード](https://github.com/d-ronnqvist/cocoaheads-coreanimation-samplecode/blob/master/PieChartProgress/PieChartProgress/DRPieChartProgressView.m)はGitHubにあり、多くのコメントがあります。 –

+3

[iPhone Core Animation - Drawing a Circle](http://stackoverflow.com/q/7991086/608157)の[私の解答](http://stackoverflow.com/a/8021051/608157)でもご覧になれます。 –

答えて

2

あなたはこれを試みることができる:

は、そのpathあなたの形状に設定されているCAShapeLayerを作成します。塗りつぶした円弧を描画する別のレイヤのマスクとして、このCAShapeLayerを使用します。円弧の円弧角を0°から360°までアニメーションします。それはあなたが望む効果に近似するかもしれません。

「埋め込み」の方法では、必要に応じて塗りをアニメーション化することができません。ただし、ストロークをアニメーション化するビルトインの方法があります。

これを裏付けるCAShapeLayerでUIViewを使用します。 CAShapeLayerにはpathプロパティがあります。レイヤーのstrokeStartおよび/またはstrokeEndプロパティにアニメーションを適用できます。

+0

申し訳ありません - ちょうどあなたのパスが任意の形ではなく白い円であることを認識しました。この答えは、任意の形に対するものです。プレーンサークルのマスキングステップを削除する必要があります。ダビデの答えを見てください – nielsbot

関連する問題