【发布时间】:2014-08-25 20:39:24
【问题描述】:
我正在使用自定义键盘,但在尝试更改按钮的标题时遇到了问题。
这是我在点击特定按钮时调用的函数,如您所见,我正在尝试更改某些按钮上的标题和 outputText(我声明的变量)。
func numericsSelected() {
if button01.titleForState(.Normal) == "Q" {
button01.outputText = "1"
button01.setTitle("1", forState: .Normal) // This causes a delay
button02.outputText = "2"
button02.setTitle("2", forState: .Normal)
button03.outputText = "3"
button03.setTitle("3", forState: .Normal)
}
}
更改 outputText 变量时没有问题,但是,当我的 numericsSelected() 函数被调用时,我在 setTitle 对按钮生效之前经历了 1 秒的延迟。不管我是在单个按钮还是 26 个按钮上调用 setTitle,在标题实际更改之前总会有延迟。
我在更新 UI 时阅读了一个提到线程的过时答案,但不确定这是否相关。 任何帮助将非常感激。
【问题讨论】:
-
我已经尝试了以下方法: dispatch_async(dispatch_get_main_queue(), { self.numericsSelected() }) 仍然没有运气。有趣的是,延迟不会在 iOS 模拟器中发生,仅在设备上发生。
-
我什至尝试使用 setNeedsDisplay,但没有。真的很绝望。