2012-03-30 113 views
1

我想按下一個按鈕並使用一個UIImageView在兩個圖像之間切換。使用按鈕更改UIImageView

現在,當我運行它,我按下按鈕,圖像改變,但不會改回來。我需要在此操作代碼中更改以使其交替使用?

- (IBAction)Change:(id)sender { 
    image.image = [UIImage imageNamed:@"car.png"]; 

} 
+0

你的意思是,如果你點擊按鈕,一旦你需要一個圖像,當你第二次點擊它,你需要一個不同的? – iNoob 2012-03-30 05:29:30

回答

4

嘗試下面的代碼:

- (IBAction)Change:(id)sender { 

     if ([sender isSelected]) 
     { 
      imageView.image = [UIImage imageNamed:@"car.png"]; 
      [sender setSelected:NO]; 
     } 
     else 
     {  
      imageView.image = [UIImage imageNamed:@"bike.png"]; 
      [sender setSelected:YES]; 
     } 
} 

要在點擊按鈕顯示順序的圖像。

.h文件:

int counter; 

.m文件:

viewDidLoad初始化counter = 0

然後

- (IBAction)Change:(id)sender { 
    counter++; 
    imgView.image = [UIImage imageNamed:[NSString stringWithFormat:@"%d.png",counter]]; 
} 

,讓您的形象名稱,如1.png2.png3.png等等......

+0

工作得很好,代碼簡潔,乾淨。如果我要爲此添加第三個圖像,該代碼將如何顯示? – sdlabs 2012-03-30 05:51:03

+0

@sdlabs:首先決定要顯示多少張圖片?那是按順序還是隨機順序? – Devang 2012-03-30 05:54:20

+0

我想序列順序對於這個練習來說是很好的開始。 – sdlabs 2012-03-30 05:55:39

1

你必須保持一個標誌。

在某處輕點按鈕之前,分配標誌

BOOL isFirstImageShown=YES; 

然後在您的按鈕操作

- (IBAction)Change:(id)sender { 
    if(isFirstImageShown) 
    { 
     isFirstImageShown=NO; 
     yourImageView.image = [UIImage imageNamed:@"yourSecondImage.png"]; 
    } 
    else 
    { 
    isFirstImageShown=YES; 
    yourImageView.image = [UIImage imageNamed:@"yourFirstImage.png"]; 
    } 
} 
+0

工作真棒,感謝您的快速反應! – sdlabs 2012-03-30 05:37:36

0

你想要的按鈕點擊你需要另一幅圖像,你必須首先設置圖像當你加載視圖然後點擊按鈕時。

+0

這不是解決方案。 – Devang 2012-03-30 05:40:25