我是新手。在我的UI上,我有标签显示某些类实例的值。而且,我有一个类方法,可以增加这些实例的价值。调用此方法后,我的实例值会更新;但UI上的标签保持不变。如何使此方法也更新这些标签中的数字。
这是我的ViewController代码:
@IBOutlet weak var displayValue: UILabel! //this is the label that displays newNumber's value
override func viewDidLoad() {
super.viewDidLoad()
dispValue.text = String("\(newNumber.value))")
}
这是我的代码:
class MyNumbers {
var value = 50
func increaseValue(by: Int){
value += by
}
}
var newNumber = myNumbers()
newNumber.increaseValue(by: 5) //This does increase newNumber's value to 55
//but my label on my UI remains as 50
答案 0 :(得分:0)
您需要将更新后的值分配给UILabel。最佳实践始终确保您在主线程中调用UI更改,并在进行UI更新时更新AutoLayouts。
替换:
newNumber.increaseValue(by: 5)
使用:
DispatchQueue.main.async {
newNumber.increaseValue(by: 5)
self.displayValue.text = "\(newNumber.value)"
self.view.layoutIfNeeded()
}