我正在使用自定义键盘,但在尝试更改按钮的标题时遇到了问题。
这是我在点击特定按钮时调用的函数,如您所见,我正在尝试更改某些按钮上的标题和 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 时阅读了一个提到线程的过时答案,不确定这是否相关。
任何帮助将非常感激。
最佳答案
我终于找到了延迟的原因。
每次使用 setTitle:forState 时,都会调用 viewWillLayoutSubviews,并且由于我在该函数中有一些自定义代码,因此每次使用 setTitle:forState 时都会运行它。
关于ios - 在 Swift 中在 UIButton 上使用 setTitle 时出现延迟,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25494025/