2012-03-30 9 views
1

ボタンを押して、1つのUIImageViewで2つの画像を交互に入れたいと思っています。ボタンでUIImageViewを変更する

今すぐ実行すると、ボタンが押され、画像は変更されますが、元に戻りません。このアクションコードを変更するには、何を変更する必要がありますか?

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

} 
+0

ボタンをタップして1つの画像を必要とすると、もう一度タップすると別の画像が必要になることを意味しますか? – iNoob

答えて

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

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

そして1.png、のようなあなたのイメージ名を与えるその後counter = 0

を初期化します、3.pngなど...

+0

これは本当にうまくいっていて、短くクリーンなコードでした。 3番目のイメージを追加すると、そのコードはどのように見えますか? – sdlabs

+0

@sdlabs:最初に表示する画像の数を決めますか?それは順番であるかランダムであるか? – Devang

+0

この演習では、シーケンスの順序が良いと思います。 – sdlabs

1

フラグを維持する必要があります。どこかで

ボタンをタップする前に、あなたがボタンの上に、あなたが最初の画像を設定する必要が別の画像を必要とする]をクリックすることを望ん

- (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

0

あなたのボタンアクションに

BOOL isFirstImageShown=YES; 

その後フラグを割り当てますビューをロードしてボタンをクリックしたときに表示されます。

+0

これは解決策ではありません。 – Devang

関連する問題