我如何逐步更新我的进度条?
how can i update my progress bar step by step?
我有代码,我每秒向我的数组添加一个常量,我如何在数组更改时每秒更新我的进度条?
var array: [Int] = []
override func viewWillAppear(_ animated: Bool) {
upgradeArray()
}
func upgradeArray() {
for i in 0...10 {
sleep(1)
array.append(i)
print(i)
let percentProgress = Float(Float(self.array.count)*100.0/10.0)
progressBar.setProgress(percentProgress, animated: true)
}
}
使用计时器。假设您的进度视图是 0 到 1 并且每秒递增 0.1...
var timer: Timer?
var array = [String]()
func doStuff() {
timer = Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true, block: { timer in
self.array.append("foo")
let change: Float = 0.1
self.progressView.progress = self.progressView.progress + (change)
if self.progressView.progress >= 1.0 {
self.timer?.invalidate()
}
})
}
完成 DispatchQueue.global(优先级:.default).async
func upgradeArray() {
for i in 0...10 {
DispatchQueue.global(priority: .default).async {
//sleep(1)
self.array.append(i)
print(i)
DispatchQueue.main.async(execute: {
let percentProgress = Float(Float(self.array.count)*100.0/10.0)
self.progressBar.setProgress(percentProgress, animated: true)
})
}
}
}
我有代码,我每秒向我的数组添加一个常量,我如何在数组更改时每秒更新我的进度条?
var array: [Int] = []
override func viewWillAppear(_ animated: Bool) {
upgradeArray()
}
func upgradeArray() {
for i in 0...10 {
sleep(1)
array.append(i)
print(i)
let percentProgress = Float(Float(self.array.count)*100.0/10.0)
progressBar.setProgress(percentProgress, animated: true)
}
}
使用计时器。假设您的进度视图是 0 到 1 并且每秒递增 0.1...
var timer: Timer?
var array = [String]()
func doStuff() {
timer = Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true, block: { timer in
self.array.append("foo")
let change: Float = 0.1
self.progressView.progress = self.progressView.progress + (change)
if self.progressView.progress >= 1.0 {
self.timer?.invalidate()
}
})
}
完成 DispatchQueue.global(优先级:.default).async
func upgradeArray() {
for i in 0...10 {
DispatchQueue.global(priority: .default).async {
//sleep(1)
self.array.append(i)
print(i)
DispatchQueue.main.async(execute: {
let percentProgress = Float(Float(self.array.count)*100.0/10.0)
self.progressBar.setProgress(percentProgress, animated: true)
})
}
}
}