2011-04-07 30 views
19

我的視圖中有一個UIButton,它顯示「STOP」。按下時,它應該(停止播放,當然,)將其標籤更改爲「RTN TO ZERO」。這是簡單的:UIButton上的文本更改不會出現

stopButton.titleLabel.text = @"RTN TO ZERO";

然而,變化只出現的一瞬間。它不堅持。我假設按鈕(按下時突出顯示)接受並顯示新標籤,但稍後突出顯示纔會反轉,將按鈕恢復到按下之前的樣子,而不遵守標籤文本更改。 該按鈕是在IB中構思的,而不是以編程方式。

我覺得很蠢。有人可以請指點我正確的方向嗎?

+0

你有哪些事件代碼可以改變標題?你能否提供更多的細節? – 2011-04-07 13:40:33

回答

51

在按鈕處理程序,試試這個

 
[stopButton setTitle:@"RTN TO ZERO" forState:UIControlStateNormal]; 

而不是直接改變titleLabel使用setTitle:forState:方法的text屬性設置在不同的國家稱號。請檢查manual瞭解可用狀態的詳細信息。

+1

你說得對。閱讀能力是一個優勢。正如我所說,我感到愚蠢。非常感謝你! – 2011-04-08 08:21:16

+4

就像一個側面說明;如果您在IB中使用屬性文本,則此方法不起作用。你必須使用setAttributedTitle:forState :. – 2013-01-31 10:12:24

1

斯威夫特版本

myButton.setTitle("button text", forState: UIControlState.Normal) 

使用setAttributedTitle:forState歸因文本。有關如何在Swift中創建屬性字符串,請參閱here