gpt4 book ai didi

swift - 循环很多时进度条不会更新

转载 作者:搜寻专家 更新时间:2023-11-01 05:43:52 28 4
gpt4 key购买 nike

我有一个进度条,它应该在每一步后更新。步数可能很高,比方说 50.000。当输入这么大的数字时,iPhone 正在计算时进度条没有任何作用。当 iPhone 完成后,进度条立即处于 1.0(最大)进度。这是我的代码:

    for x in 1...timesToSimulate{
var progress: Float = Float(x) / Float(timesToStimulate)
progressBarView.setProgress(progress, animated: true)
}

计算并不难,但我做错了什么但看不到什么。你知道它是什么吗?

最佳答案

原因可能是你所有的计算都是在主踏板上完成的。 UI 仅在您的函数返回后更新(此时您已达到最大进度)。如果要一步步更新进度条,需要异步改变进度。

例如:

    for x in 1...timesToSimulate{
let progress: Float = Float(x) / Float(timesToSimulate)
DispatchQueue.main.asyncAfter(deadline: .now() + Double(x) * 0.1) {
self.progressBarView.setProgress(progress, animated: true)
}
}

关于swift - 循环很多时进度条不会更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41650479/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com