2016-07-22 7 views
1

countdonw gif countdownView私は<code>CAShapeLayer</code>と<code>UIBezierPath</code>が円を描くように使用することができますヤフーのAPPニュースダイジェスト

のようなカウントダウン機能を実装する方法を、私はまた、進行を制御するために、このプロパティCAShapeLayer.strokeEndを使用することができます。しかし、パスと時間の高速スクロール、私は実装する方法を知らない。

私はアプローチが2つの間の時間差を計算し、循環に時間差を使用することだと思います。

たとえば、2つの間の時間差は1000秒ですが、strokeEndとLabel 1000サイクルの中間を設定する必要がありますか?良い結果が得られますか?

ありがとうございます!

答えて

2

注:StrokeEndは0 - 1

の間の値が言う、あなたのケースのサークル内 参照は、それが新しいフィードを表示されるようになります残り時間を表します受け入れます。 3PMと言うことができます。

ので15:00あなたは12PMでそうfeedTime = 12PMをこのフィードを得たあなたのnextFeedTime = 3PMと、 になります。

だから今、あなたはfeedTime=12PM - nextFeedTime=3PM

の開始と終了値を持つことになりますので、feedTimestrokeEndため0あるとnextFeedTimeはStrokeEndため1です。

アプリを開くと、最初にfeedTimeで初期化されたcurrentTimeが得られ、後ですべての時間が現在のタイムスタンプに置き換えられます。

currentTime1 PMとする。

今、私たちは

strokeEnd = currentTime/nextFeedTime

strockEndプロパティをアニメーション化し、それに応じてstrokeEndをアニメーション化する比率を計算することができます。これがあなたを助けることを願って!

+0

ありがとう、私はこのエフェクトを実装するためにCABasicAnimationを使用しますが、エフェクト番号はどのように実装するのが速いですか? –

+0

そのために、アニメーションの進捗状況にテキストを設定することができます – amorbytes

関連する問題

 関連する問題