更新Label.text setNeedsDisplay()无效 - Swift

时间:2015-07-12 06:23:24

标签: swift setneedsdisplay

我有一个复杂的计算表,可以在一年中的每一天循环。在每一天的循环结束时,我想更新屏幕。这些都是myLabel.text输出。 view.setNeedsDisplay()无法正常工作。我需要在外部调用它还是使用别的东西? E.g。

for var day = 1; day < 366; day++ {
     dayLabel.text = String(format: "%i", day)
     view.setNeedsDisplay()
}

1 个答案:

答案 0 :(得分:1)

从上面的评论讨论中我们认为只需要将标签更改强制转换为主线程。在swift:

dispatch_async(dispatch_get_main_queue()) {
     dayLabel.text = String(format: "%i", day)
}

或者使用更多的Swift表示法:

for day in 1...365 {
    dispatch_async(dispatch_get_main_queue()) {
        dayLabel.text = "\(day)"
    }
}