更新 UILabel Swift

Update UILabel Swift

我在更新标签时遇到问题,似乎无法在 Internet 上找到任何解决方案。我需要标签在文本更改后立即更新。我只是在使用一个简单的观察器。

var updateLabel: String = "" {
    didSet { 
        label.text = updateLabel  //This doesn't update
        print(updateLabel)        //This Prints
    }
}

var count: Int? = 0

while (count! < 1000000) {
    count!++
    updateLabel = "\(count!)"
}

我试过了,但没用。

dispatch_async(dispatch_get_main_queue()) {
}

setNeedsDisplay()

默认情况下,控件不会立即更新,而是在下一个 运行 循环中更新。

由于您循环了一百万次,因此您正在阻止更新,并且您尝试对 UI 进行的更改中有 999,999 项甚至不会应用。

您对 UI 所做的最后更改将不会提交,直到 运行 循环获得控制权。

顺便说一句,调用 setNeedsDisplay 只会让系统知道标签需要在下一个 运行 循环中更新。它不会像您想象的那样立即更新。但这真的是多余的,因为更改标签的文本已经将标签标记为需要更新。