我正在使用自定义键盘,当我尝试更改按钮的标题时,我遇到了问题。
这是我在点击特定按钮时调用的函数,因为您可以看到我试图在某些按钮上更改标题以及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秒的延迟。无论我是在单个按钮上调用setTitle还是26个按钮,在标题实际更改之前总会有延迟。
我在更新UI时读到了提及线程的日期答案,不确定这是否相关。 任何帮助将非常感激。
答案 0 :(得分:2)
我终于找到了延迟的原因。
每次使用setTitle:forState时都会调用viewWillLayoutSubviews,因为我在该函数中有一些自定义代码,所以每次使用setTitle:forState时都会运行它。