【发布时间】:2018-12-28 19:28:39
【问题描述】:
我做一些 HTTP 请求,在收到 HTTP 响应时设置一个类属性,并使用willSet 更新进度条值。进度条动画只工作一次。
var data: CompatibilityData? {
didSet {
self.progressView.setProgress(0.0, animated: false)
UIView.animate(withDuration: 2.0) {
self.progressView.setProgress(data.percentage! / 100, animated: true)
}
}
}
...
let task = URLSession.shared.dataTask(with: url) { data, response, error in
...
if let data = data {
...
DispatchQueue.main.async {
if let r = response {
self.data = r
}
}
}
}
task.resume()
当我第二次收到 HTTP 响应时,预期的行为会将进度重置为 0,并再次将其从 0 设置为 data.percentage。目前它从旧的data.percentage 移动到新的data.percentage。
【问题讨论】:
-
将
var data: CompatibilityData?更改为var compData: CompatibilityData?之类的名称,您就有了3 个同名的不同对象。
标签: ios swift uikit uiprogressview