Это помогает понять, как анимация работает на абстрактном слое.То, что значение VALUE прогресса изменилось, не означает, что траектория обводки столбца, представляющего его значение, обновлена, чтобы отразить его изменение на 0.
Это означает, что когда представление ищет анимацию, оно пойдетот его значения «старый путь обводки», все еще с предыдущим значением, до значения «новый путь обводки», обновленное значение.
Для того, чтобы каждый раз, когда процентное изменение изменялось, вы хотели показать анимацию от 0,Вы должны обновить макет представления, а не только базовое значение.
Вызов
self.progressView.layoutIfNeeded()
После установки базового значения прогресса обновится индикатор выполнения, чтобы отобразить правильноезначение в следующем цикле рисования и будет происходить до запуска анимации, так что анимация перейдет от 0 к новому значению.
Если вы не хотите использовать подход @ E.Coms и ждать, пока представление завершит анимациювернуться к 0, прежде чем анимировать к новому значению.Хотя это выглядит довольно круто, это может быть не тот эффект, который у вас есть.