2011-02-27 27 views
1

我已將一個自定義按鈕添加到工具欄並設置了屬性setEnabled:NO,但當使用SDK 4.0加載視圖時,該按鈕不會顯示爲灰色 。但是,如果使用SDK 3.1.2編譯相同的代碼,該按鈕會變灰。有任何想法嗎?如何使工具欄上的setEnabled與SDK 4.0一起工作-iPhone

- (void)viewWillAppear:(BOOL)animated { 
    [super viewWillAppear:animated]; 

    UIImage* pImage = [UIImage imageNamed:@"Test.png"]; 

    CGRect TestBtnFrame = CGRectMake(0, 0, pImage.size.width, pImage.size.height); 
    UIButton* pTestBtn = [[UIButton alloc] initWithFrame:TestBtnFrame]; 

    [pTestBtn setTitle:@" Test" forState:UIControlStateNormal]; 
    [pTestBtn addTarget:self action:@selector(OnTestBtnClick) forControlEvents:UIControlEventTouchUpInside];  
    [pTestBtn setBackgroundImage:image forState:UIControlStateNormal]; 

    // [pTestBtn setEnabled:NO];  

    // Class member variable to be released in dealloc 
    m_pTestBarBtn = [[UIBarButtonItem alloc] initWithCustomView: pTestBtn]; 
    [pTestBtn release]; 

    [m_pTestBarBtn setEnabled:NO]; 

    [self setToolbarItems:[NSArray arrayWithObjects: m_pTestBarBtn, nil] animated:YES]; 

} 
+0

但確實按鈕仍然響應觸摸事件,即使不是灰色的? – Macmade 2011-02-27 18:07:40

+0

沒有按鈕不響應,以便部分工作。 – user636060 2011-02-27 18:33:03

回答

0

你忘了設置背景圖片爲禁用狀態...

[ pTestBtn setBackgroundImage: **imageDisabled** forState: UIControlStateDisabled ]; 
+0

其實我已經爲禁用狀態設置了相同的圖像,但沒有在這裏複製該代碼。我可以爲禁用狀態放置不同的圖像,但想知道爲什麼在使用SDK 4.0進行編譯時無法正常工作。還有其他建議嗎? – user636060 2011-02-27 18:34:27

相關問題