Я создал некоторый код, с помощью которого я анимировал свой пользовательский индикатор выполнения. Ниже приведен код, который до сих пор обрабатывает анимацию и метку.
let animationProgress= CABasicAnimation(keyPath: "strokeEnd")
let value = 0.8
animationProgress.fromValue = 0
animationProgress.toValue = value (will display 80% of the progressbar)
animationProgress.duration = 1
while value <= 1 {
DispatchQueue.main.async {
updateYourUI()
}
}
animationProgress.isRemovedOnCompletion = false
animationProgress.fillMode = kCAFillModeForwards
shapeLayer.add(animationProgress, forKey: "animated")
func updateYourUI (){
let value= 50
view.PercentageComplete.text = "\((value))%"
view.shapeLayer.strokeEnd = CGFloat(value)
}
Как я могу получить«let value» отображает каждое значение из «fromValue» и «toValue», так что их метка будет отображать соответствующее значение при запуске анимации индикатора выполнения.Я пытался реализовать цикл while, но я не уверен, какое условие разместить, чтобы оно выполнялось для каждого значения от «animationProgress.fromValue = 0» до «animationProgress.toValue».