2011-11-25 87 views
1
startButton.titleLabel.text = @"STOP";//do not work 

[startButton setTitle:@"STOP" forState:UIControlStateNormal];//works 

爲什麼當我使用點語法更改屬性時,第一行代碼不起作用?哪種方法更適合一般設置屬性?如何更改UIButton屬性

回答

1

startButton.titleLabel.text

這個代碼回報,你的標題按鈕即文本。 您可以通過日誌打印此

NSLog(@"%@",startButton.titleLabel.text); 

[startButton的setTitle:@ 「STOP」 forState:UIControlStateNormal]。

這行代碼設置了按鈕的標題。

+0

謝謝。但有沒有辦法使用點語法?或者我應該總是使用set來改變屬性? – user1050548

+0

這是正確的答案。您不應該直接設置標籤的文字。相反,你應該使用UIButton的setTitle:forState:方法。沒有辦法使用屬性點語法來做到這一點(不管它是否重要,無論如何)。 –

4

簡單地歸因於「titleLabel」被宣佈爲事實「只讀」屬性,見UIButton class reference

+0

討論 雖然此屬性是隻讀的,但它自己的屬性是可讀/寫的。使用這些屬性來配置按鈕標籤的外觀。我發現在文檔中,請幫助。我是初學者。 – user1050548