0
從上這樣的問題,我知道這是正確的更改按鈕標籤文本與setTitle ... forState
:的UIButton setTitleColor forState效果很好,而的setTitle不
[_capturing_button setTitle:@"take photo!" forState:UIControlStateNormal];
在我的代碼,在用戶點擊我想禁用按鈕並設置文本"processing"
,處理完成後,啓用按鈕。
但是,當禁用按鈕,文字消失。
-(void) initCapturingButton
{
_capturing_button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
const int width = 150, height = 30;
_capturing_button.frame = CGRectMake(_main_view.frame.size.width/2.0 - width/2.0, 2, width, height);
_capturing_button.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin;
[_capturing_button setTitle:@"take photo!" forState:UIControlStateNormal];
[_capturing_button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
//[_capturing_button setTitle:@"processing" forState:UIControlStateDisabled];
[_capturing_button setTitleColor:[UIColor purpleColor] forState:UIControlStateDisabled];
_capturing_button.enabled = YES;
[_capturing_button addTarget:self action:@selector(onCapturingButtonClick) forControlEvents:UIControlEventTouchUpInside];
[_topToolBar addSubview:_capturing_button];
}
在按一下按鈕,我只是禁用按鈕:
-(void) onCapturingButtonClick
{
_capturing_button.enabled = NO;
}
而且處理結束時,使按鍵回:
-(void) processingFinished
{
_capturing_button.enabled = YES;
}
有了這個代碼的時候,應用程序處於處理模式,按鈕文本具有紫色,當處於捕捉模式時,顏色爲白色。但是,如果我取消了關於爲禁用狀態設置標題的註釋,文本會消失。
我在做什麼錯?
您是否嘗試過設置斷點並檢查按鈕的狀態?即使它不顯示我的用戶界面,您是否可以確認標題文本已設置? –
@fragilecat:是的,我試過了。狀態是'UIControlStateDisabled',文本是「處理」。 –
如果用[_capturing_button setTitle:@「拍照!」替換代碼行,會發生什麼? forState:UIControlStateNormal] ;? –