2012-04-07 61 views
1

所以我有一個調用的API函數,一旦請求完成,它在我的控制器視圖調用委託方法,在這裏我做一個類:無法更改UIButton的文本顏色的委託方法

[self.myButton setEnabled:NO]; 
self.myButton.titleLabel.textColor = [UIColor grayColor]; 
NSLog(@"%@", self.myButton.titleLabel.textColor); 

要將文本顏色從藍色更改爲灰色,以讓用戶知道他/她無法第二次單擊該按鈕。

但是,顏色不變。這是調試日誌中的內容:

UIDeviceWhiteColorSpace 0.5 1 

爲什麼?當我在做同樣的事情時:

- (void)viewWillAppear:(BOOL)animated 

它工作並將按鈕上的文本顏色更改爲灰色。

回答

4

,你可以在你這樣做的viewDidLoad

[self.myButton setTitleColor:[UIColor blueColor] forState:UIControlStateNormal]; 
[self.myButton setTitleColor:[UIColor grayColor] forState:UIControlStateDisabled]; 

當你會做的setEnabled:NO,它會自動切換到禁止狀態,所以文字顏色將被設置爲灰色。

+0

它沒有titleLabel部分。 – 2012-04-07 13:16:13

+0

好的!我會更新我的答案:) – Niko 2012-04-07 13:17:47

+0

對於您的信息,它也可以與其他按鈕參數一起使用,如文本,背景圖像等。 – Niko 2012-04-08 08:55:06

1

您應該在主線程上執行所有UI更新。這可能是問題所在。