を完了していない私は、10秒でサークルパスアニメーションを描画するために、次のdrawCircle()
関数を呼び出すことCADisplayLink
を設定している:CAShapeLayerストロークは
currentDuration
は経過時間であり、
maxDuration
が等しい
func drawCircle() {
currentDuration = currentDuration + displayLink.duration
circleLayer.strokeEnd = min(CGFloat(currentDuration/maxDuration), 1)
if (currentDuration >= maxDuration) {
stopCircleAnimation()
}
}
func stopCircleAnimation() {
let pausedTime = circleLayer.convertTime(CACurrentMediaTime(), fromLayer: nil)
circleLayer.speed = 0
circleLayer.timeOffset = pausedTime
}
これは、currentDuration >= maxDuration
を除いて正常に動作します。 strokeEndは1に設定されていても、円を完全に完成させることはありません。どうしてこれなの??
EDIT
は、私はそれがcircleLayer
のspeed
財産とは何かを持っていると思います。私はそれをより高い金額に設定します。 10の場合、円は完全に閉じます。その答えが見つかり
実際に私は私のでCADisplayLinkを使用する必要がありますビデオのタイミングと組み合わせて使用するので、可能な限り正確にする必要があります。しかし、あなたはCATransactionアクションを無効にすることについて正しいです(回答を投稿する前に見つけたように)。あなたが詳細に行ったので私はあなたの答えを受け入れるでしょう。 – Tometoyou