2012-01-11 38 views
0

我已經放置在用戶界面,其中當用戶點擊該按鈕,從暫停圖像按鈕的圖像它必須切換到啓動暫停按鈕按鈕的圖像圖片。我已經把兩者的開始和被捆綁的暫停圖像,我能夠做到這一點,但是當我再次開始點擊,它應該顯示暫停圖像按鈕,如何做到這一點,下面是我使用的代碼,如何變化對目標C按鈕的點擊

-(IBAction)btnClked:(id)sender 
{ 

    [pauseButton setImage:[UIImage imageNamed:@"pause.png"] forState:UIControlStateNormal]; 



    UIButton *btn=(UIButton *)sender; 


    [btn setImage:[UIImage imageNamed:@"start.png"] forState:UIControlStateNormal]; 
} 

回答

1

您需要一個變量來跟蹤狀態變化。 BOOL很好。

但是,使用你的代碼,你可以在「濫用」的UIButton的標籤屬性來判斷它的演奏(標籤== 1)或暫停(標籤== 0)

-(IBAction)btnClked:(id)sender { 
    UIButton *btn=(UIButton *)sender; 
    if (btn.tag == 1) { 
     btn.tag = 0; 
     [btn setImage:[UIImage imageNamed:@"pause.png"] forState:UIControlStateNormal]; 
    } else { 
     btn.tag = 1; 
     [btn setImage:[UIImage imageNamed:@"start.png"] forState:UIControlStateNormal]; 
    } 
} 
+0

感謝您的幫助,它的工作。 – shasha 2012-01-11 08:13:45

0

可以使用的UIButton的選擇國家也這樣做。例如,在啓動按鈕時,您必須定義2個圖像。一個用於正常狀態,另一個用於選定狀態。當按鈕的觸摸事件解僱,你必須做出選擇它。如果它已被選中,您需要取消選擇它。這比維護更多的變量來檢查按鈕的選定狀態好得多。你也可以用這種方法提高性能。

代碼示例

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 

    UIButton *startButton = [[UIButton alloc] initWithFrame:CGRectMake(200, 300, 60, 60)]; 
    [startButton setBackgroundImage:[UIImage imageNamed:@"start.png"] forState:UIControlStateNormal]; 
    [startButton setBackgroundImage:[UIImage imageNamed:@"pause.png"] forState:UIControlStateSelected]; 

    [startButton addTarget:self action:@selector(modeButtonClick:) forControlEvents:UIControlEventTouchUpInside]; 
    [self.view addSubview:startButton]; 
} 

- (IBAction)modeButtonClick:(id)sender { 
    UIButton *startButton = (UIButton *)sender; 
    [startButton setSelected:![startButton isSelected]]; 
} 

如果要創建從故事板或XIBs按鈕設置爲默認狀態的配置和選擇的狀態配置的研究背景圖像。