【问题标题】:How to reset UIProgressView to 0 when using observedProgress使用observedProgress时如何将UIProgressView重置为0
【发布时间】:2018-01-28 07:58:38
【问题描述】:

[XCode 8, Swift 3] 我通过将observedProgress 属性设置为Progress 对象的实例来使用UIProgressView,即:

progressView.observedProgress = myProgress

myProgress.totalUnitCount 最初为 0,UIProgressView 正确显示 0%。 UIProgressView 还可以很好地跟踪 myProgress 值的变化。但是,在相关任务完成后,我想将 UIProgressView 重置为 0%。我希望这能完成这项工作:

    myProgress.totalUnitCount = 0
    myProgress.completedUnitCount = 0

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

progressView.progress = 0.0

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

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

【问题讨论】:

  • 尝试将 totalUnitCount 设置为 10,将 completedUnitCount 设置为 0。

标签: ios swift uiprogressview


【解决方案1】:

来自@Sweeper,这似乎可行:

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

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

【讨论】:

    猜你喜欢
    • 2012-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-11
    相关资源
    最近更新 更多