gpt4 book ai didi

ios - 主线程上的 Swift UIProgressView,更新属性但不更新 UI

转载 作者:行者123 更新时间:2023-11-29 01:39:42 25 4
gpt4 key购买 nike

我有一个 UIProgressView 设置为 IBOutlet,我正在尝试调用 setProgress 方法。第一次在 viewDidLayoutSubviews() 中调用时它工作得很好,但在其他任何地方都没有。

我在主线程上使用

调用它
func calculateEXP()
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) {

//Determining playerExpBar's new value
let gainedEXP = Float.random(lowerEXP...upperEXP)
let progress = (currentEXP + gainedEXP) / maxEXP

//Setting playerExpBar's progress on the main thread
dispatch_async(dispatch_get_main_queue()) {
//Set value to 0.5 for testing purposes
self.playerExpBar.setProgress(0.5, animated: true)

print(self.playerExpBar.progress)
}
}

它正在打印更新后的值,但不会反射(reflect)在 UI 中。

在 viewDidLayoutSubviews() 中调用时工作

override func viewDidLayoutSubviews() {
dispatch_async(dispatch_get_main_queue()) {
self.playerExpBar.setProgress(0.0, animated: true)
}
}

最佳答案

就像你说的,“在主线程上 Swift UIProgressView,更新属性但不更新 UI”,你应该检查你的 UI 属性指示器,设置一个具有 UIProgressView 对象宽度约束的值。

关于ios - 主线程上的 Swift UIProgressView,更新属性但不更新 UI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32547301/

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