我在 Swift 中創建了一個圓形進度條。我可以開始、暫停和恢復影片,但我需要能夠通過點擊按鈕重置影片。
這是我用來啟動、暫停和恢復影片的代碼。重置它需要哪些額外的步驟?
func startAnimation() {
let basicAnimation = CABasicAnimation(keyPath: "strokeEnd")
basicAnimation.toValue = 1
basicAnimation.duration = seconds
basicAnimation.fillMode = CAMediaTimingFillMode.forwards
basicAnimation.isRemovedOnCompletion = false
shapeLayer.add(basicAnimation, forKey: "basicAnime")
}
func pauseLayer(layer: CALayer){
let pausedTime : CFTimeInterval = layer.convertTime(CACurrentMediaTime(), from: nil)
layer.speed = 0.0
layer.timeOffset = pausedTime
}
func resumeAnimation(layer: CALayer){
let pausedTime = layer.timeOffset
layer.speed = 1.0
layer.timeOffset = 0.0
layer.beginTime = 0.0
let timeSincePause = layer.convertTime(CACurrentMediaTime(), from: nil) - pausedTime
layer.beginTime = timeSincePause
}
func resetAnimation() {
timer.invalidate()
// next steps
}
uj5u.com熱心網友回復:
一種可能的解決方案是簡單地洗掉以前添加的影片
查看CALayer#removeAllAnimations()和CALayer#removeAnimation(forKey:)了解更多詳情
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/324375.html
