iOS 13 上的 UIProgressView 没有动画进度

UIProgressView not animating progress on iOS 13

我没有看到 UIProgressView 的动画 Xcode 11.0/Swift 5/iOS 13:

private let timerProgressView: UIProgressView = {
    let timerProgressView = UIProgressView()
    timerProgressView.progressTintColor = white
    timerProgressView.trackTintColor = .black
    timerProgressView.setProgress(1.0, animated: false)
    return timerProgressView
}()

private func triggerProgressView() {
    UIView.animate(withDuration: viewModel.timeLimit, delay: 0.0, options: .curveLinear, animations: { [weak self] in
        self?.timerProgressView.setProgress(0.0, animated: true)
    }, completion: nil)
}

此代码适用于 iOS <12 但不适用于 iOS 13。我错过了什么吗?

你试过这样做吗? :

self?.timerProgressView.setProgress(0.0) 
UIView.animate(withDuration: viewModel.timeLimit, delay: 0.0, options: .curveLinear, animations: { [weak self] in
    self?.timerProgressView.layoutIfNeeded() 
}, completion: nil)

我们也遇到过这个问题,经过大约一个小时的努力,我们想出了一个解决方法,看起来这是一个错误。这很荒谬,但是 将进度设置为 0.0001 而不是 0.0 就可以了

progressView.progress = 0.0001
UIView.animate(withDuration: duration,
                   delay: 0.0, options: [.curveLinear, .beginFromCurrentState, .preferredFramesPerSecond60],
                   animations: { progressView.layoutIfNeeded() },
                   completion: nil)