2016-03-02 40 views
0

執行按鈕如下。按鈕在開始時灰色,但最後不會恢復爲橙色,爲什麼?UIButton不更新?

@IBAction func calculatePower(sender: AnyObject) { 
    self.calculateButton.enabled = false 
    self.calculateButton.backgroundColor = UIColor.lightGrayColor() 
    self.calculateButton.titleLabel!.text = "Calculating" 

    // SEVERAL HUNDREDS OF THOUSANDS OF CALCS INBETWEEN = TAKES 1 MIN 

    self.calculateButton.enabled = true 
    self.calculateButton.backgroundColor = UIColor.orangeColor() 
    self.calculateButton.titleLabel!.text = "Start" 

} 
+0

它可能不是好事,有數百個在'IBAction'計算。爲什麼不把它們分解成多種方法,驗證它們是否正確完成,然後返回並在按鈕上設置啓用狀態? – JAL

+0

文字最後是否改變?該按鈕最後是否啓用? –

+0

不,測試不會改變,但只有背景顏色,請解析計算。這僅僅是用於初始測試目的。 –

回答

0
[myButton setTitle:@"Normal State Title" forState:UIControlStateNormal]; 

myButton.setTitle("Normal State Title", forState: .Normal) 

應該做的伎倆

+0

比這更簡單也更復雜。現在發生的事情是,由於中間函數花費了大約一分鐘的時間來執行按鈕,它正在改變文本,然後把最終的原始文本放回原來的速度,以至於你沒有意識到它已經被改變了。 –

+0

我看到異步邏輯,考慮然後使用http://promisekit.org – ignotusverum