2016-03-11 26 views
3

的是否有斯威夫特的方式來改變一個UIButton的標題/標籤的所有狀態?我的UIButton的標題設置的東西,但是當它不再高亮度顯示的標籤更改爲它以前。斯威夫特 - 設置UIButton的標題無論狀態

感謝

+2

顯示一些代碼,請。 *「如果不是因爲一個國家指定的標題,默認的行爲是使用與UIControlStateNormal狀態相關聯的稱號。」 * – jtbandes

回答

14

沒有設置標題一次性爲所有狀態的方法,但是如果你從來沒有設置標題爲比正常狀態以外,未凝固的狀態將默認爲正常標題。

the docs

如果一個國家沒有指定標題,默認行爲是使用與UIControlStateNormal狀態相關聯的稱號。如果未設置UIControlStateNormal的值,則該屬性默認爲系統值。

所以就叫

button.setTitle("Button text", forState:.Normal) 

沒有設置標題爲其他國家。如果您需要爲其他州設置不同的標題,則每次更改按鈕標題時都需要將其設置回來。

+0

有道理,謝謝 – arthur

+0

button.setTitle(「稱號」,爲:UIControlState())也可以設置所有控制狀態的標題。 – Harris

6

現在的setTitle需要一個OptionSet - 所以你需要一個空集,通過。

語法是:

button.setTitle("Button Text", for: []) 
+0

謝謝!但是,應該說,這些迅速球隊已經沒有美學意識,他們沒有獲得:[]長相難看得要命! –

+0

'.normal'仍處於斯威夫特3可用,並且工作得很好。但'UIControlState'是一個'OptionSet',所以傳遞'[]'表示一個空集。 – shim