UIProgressView无法正常使用NSTimer - Swift

时间:2016-07-16 10:51:32

标签: ios swift nstimer uiprogressview

我正在使用float让用户知道该应用正在运行。进度条设置为持续3秒,但在运行时,它会显示在“勾选”状态。运动并不像它应该的那样平滑。无论如何,我可以让它更顺利 - 我确定我的计算错误。

以下是代码:

NSTimer

1 个答案:

答案 0 :(得分:0)

根据Apple iOS SDK文档,您可以使用下一个API实现它:

func setProgress(_ progress: Float, animated animated: Bool)

它调整接收器显示的当前进度,可选择设置更改动画。

参数:
progress - 新的进度值。

animated - true如果更改应设置动画,false如果更改应立即发生。

有关此内容的更多信息:
https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIProgressView_Class/index.html#//apple_ref/occ/instm/UIProgressView/setProgress:animated

所以在你的情况下你应该这样做:

func setProgress() {
    time += 0.1

    dispatch_async(dispatch_get_main_queue()) {
        progressView.setProgress(time / 3, animated: true)
    }

    if time >= 3 {
        timer!.invalidate()
    }
 }

另请注意,在主线程上执行UI更新是一个好习惯,所以我只是在主队列上调度了进度更新。
希望它会对你有所帮助。