2011-09-07 141 views
1

我有我的第一個視圖上的兩個按鈕,所以當我點擊其中一個按鈕的視圖改變,所以我有兩個圖像一個爲默認狀態,一個爲 首先,我嘗試使用xib,進入屬性並更改狀態,然後選擇適當的圖像,當我構建並運行我的代碼時,在拍攝圖像時不會改變..更改按鈕圖像當按鈕被選中在iphone

所以我這樣做通過代碼

- (IBAction) handleButton:(id)sender 
{ 
    UIButton *button = (UIButton*)sender; 
    int tag = [button tag]; 

    switch (tag) 
    { 
     case BUTTON_1: 
      if ([m_Button1 isSelected]) 
      { 

[m_Button2 setImage:[UIImage imageNamed:@"image.png"] forState:UIControlStateNormal];                     
       [m_Button1 setSelected:NO]; 
      } 
      else 
      { 
       [m_Button1 setImage:[UIImage imageNamed:@"image_pressed.png"] forState:UIControlStateSelected]; 
       [m_Button1 setSelected:YES]; 
      } 
      [self displaymethod1]; 
      break; 
     case BUTTON_2: 
      [self displaymethod2]; 
      break; 
     default: 
      break; 
    } 
} 

這裏的圖像改變,當我點擊它,我去不同的觀點..當我再次回到我的第一種觀點,按鈕仍處於選中mode..so我應如何解決這個問題..

等待你的答覆

回答

16

我認爲是通過IB簡單一些。

當您在IB中添加常規Round Rect Button時,您可以通過轉至Attributes Inspector面板中的Button部分來修改其行爲。

通過將State Config保留在Default中,首先選擇所需的圖像作爲默認狀態。這有一個image和一個background image屬性。一旦設置完畢,您可以將State Config更改爲Highlighted,並選擇當按鈕高亮顯示時要顯示的圖像。

注意:這是用於

+0

喜rjgonzo,我這樣做,但是當我點擊它 – Ranjit

+2

確保第二'國家Config'圖像不會更改爲'Highlighted'而不是'Selected'。 – rjgonzo

+0

非常感謝..它像一個魅力工作...並節省了很多編碼..感謝噸 – Ranjit

0

當你的視圖出現時,你必須啓動所有的變量和UI屬性 在視圖中會出現方法。 (在所有情況下都不一定要求解決方案僅適用於您的要求)

在那裏您可以設置按鈕的默認狀態和圖像。

-(void)viewWillAppear:(BOOL)animated 
{ 
[m_Button2 setImage:[UIImage imageNamed:@"image.png"] forState:UIControlStateNormal];               
[m_Button1 setSelected:NO]; 
... 
}