进度视图的无限步骤?

时间:2016-06-16 17:22:01

标签: ios swift swift2 progress-bar

我需要在屏幕上为用户提供状态,同时发生任意过程。我无从知道需要多长时间。如何永久地增加progressView(当它接近1时它将减速)。

3 个答案:

答案 0 :(得分:1)

如果您愿意替换进度视图,

This将成为您最好的朋友!它拥有你想要的一切。

答案 1 :(得分:0)

一种可能的解决方案是将距离增加一半到达终点。所以第一次进度视图为0时,你取1减去它走了多远(0)并将其除以2.所以(1-0)/2 = .5。下一次将是(1-.5)/2 = .25所以你会添加.25并获得.75这将起作用,虽然可能不是理想的解决方案,因为它第一次会很快进行,用户将认为任务已经中途完成了第一部分完成,进度视图将大大减慢

答案 2 :(得分:0)

我认为您需要发布更多关于任意过程的内容,但通常无限进度视图将是旋转圆或连续运动的某些内容,向用户显示其未被冻结。您可以在视图中包含一个标签,您可以使用正在发生的文本进行更新。

要进行计算,您需要拥有总金额和当前金额值。因此,例如在循环中,您可以执行以下操作:

var objects = [Object]()
progressView.label.text = "starting"
progressView.startAnimating()
var i = 0
for object in objects {
  progressView.label.text = "processing \(i + 1) of \(objects.count)"
  doProcess(object)
  progressView.label.text = "processed \(i + 1) of \(objects.count)"
  i = i + 1
}
progressView.label.text = "done"

如果你需要减慢动画速度,只需增加动画持续时间而不是i