如何在使用observedProgress时将UIProgressView重置为0



[XCode 8, Swift 3] 我通过将观察到的进度属性设置为进度对象的实例来使用 UIProgressView,即:

progressView.observedProgress = myProgress

myProgress.totalUnitCount 最初为 0,UIProgressView 正确显示 0%。 UIProgressView 还可以在 myProgress 值发生变化时对其进行精美的跟踪。 但是,在有问题的任务完成后,我想将 UIProgressView 重置为 0%。 我希望这可以完成这项工作:

    myProgress.totalUnitCount = 0
    myProgress.completedUnitCount = 0

但是,这不起作用,进度条继续显示 100%。 即使myProgress.fractionComplete返回0.0! 我可以通过这样做强制进度条返回到 0%:

progressView.progress = 0.0

但是,这需要直接访问视图,并且在某种程度上破坏了观察 Progress 对象的美感。

我无法在进度对象上找到任何重置概念。 我错过了什么?

从@Sweeper来看,这似乎有效:

myProgress.totalUnitCount = 10
myProgress.completedUnitCount = 0
myProgress.totalUnitCount = 0

我不喜欢 Sweeper 的解决方案,因为它使 Progress 对象处于不准确的状态。 但是,将 totalUnitCount 设置两次似乎确实有效,进度条必须同时获得两个更新,因为它显示 0%,然后准确用于进一步更新。 我认为 0/0 应该显示 0%,即这是 UIProgressView 中的一个错误。 无论如何,谢谢扫地夫!

最新更新