UIProgressView setProgress

时间:2016-04-21 13:37:00

标签: ios swift

我正在尝试实现UIProgress视图。每次在for循环中执行迭代结束时,我都会运行函数setProgress。进度设置如下:

let progress: Float = Float(i + 1) / Float(list.count)

进度函数如下所示:

progressView.setProgress(progress, animated: true)

然而,每个循环都没有更新进度条。这是为什么?

2 个答案:

答案 0 :(得分:2)

您应该使用异步方法

在主队列中执行此操作
dispatch_async(dispatch_get_main_queue()) {
    progressView.setProgress(progress, animated: true)
}

答案 1 :(得分:0)

您需要在后台线程中运行循环,并仅使用主线程来更新UI,以及您案例中progressView的进度。

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0) {
    for i in 0...list.count - 1 {
        // Do your work here
        // ...
        // ...

        dispatch_async(dispatch_get_main_queue()) {
            progressView.setProgress(progress, animated: true)
        }
    }
}