2012-01-05 2 views
0

私が押されたボタンを押さえる方法はありますか?私はどのボタンを押せばいいですか?

ボタンはforループを使用してプログラムで作成されます。

私はカメラから画像をスクロールさせた画像を表示しています。ユーザーが写真を撮った後、「新しい」写真がスクロールビューに「古い」写真とともに表示されます。画像は小さいサイズに収縮するので、私が望むのは、(画像の)ボタンをクリックすると、画像が実際のサイズの別のビューでポップアップするということです。

イメージのボタンは、forループを使用して作成されます。しかし、私はどのボタンを押さえるかわからない。今のところ、ボタンを押すと(画像/ボタンに関係なく)、最後に撮影された画像が常に表示されます。

ありがとうございました。

+0

あなたは良い方法であなたの質問を説明した...しかし、あなたはその関連部分のコードセグメントのビットを追加した場合、それは常により良いですここの人々はあなたがどこにいるかを簡単に理解できます。 – Krishnabhadra

答えて

1

ボタンのタグプロパティを使用できます。

ボタンを作成するときは、各画像ボタンにタグを付けます。ボタンのクリックアクションで今すぐ

for(int i = 0 ; i < your_no_images ; i++){ 
    UIButton *button = [UIButton <yourbuttontype>]; 
----- 
    button.tag = i; 
    [button addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside]; 
    [yourView addSubView:button]; 
} 

...

-(void)buttonClicked:(UIButton*)sender{ 
    //if you has an array of UIImage's 
    UIImage *clickedImage = (UIImage *)[yourImageArray objectAtIndex:sender.tag]; 
} 
+0

こんにちは、あなたの返信ありがとう(:しかし、私のアプリケーションがクラッシュするボタンのクリックアクションに達すると私のアプリケーションがクラッシュします。 – Grace

+0

buttonClicked関数にブレークポイントを入れて、それが実行されるかどうかを確認 – Krishnabhadra

+0

私は小さな誤植でした。大変ありがとうございます。 – Grace

0

IBActionメソッドは、ボタンをクリックするとトリガーされるメソッドのように、sender引数を含みます。 senderは、クリックされたボタンなど、アクションをトリガしたオブジェクトです。このように:

- (IBAction)buttonWasClicked:(id)sender 
{ 
    NSLog(@"The %@ button was clicked", (UIButton *)sender.currentTitle); 
} 
+1

OPは、彼/彼女がforループでプログラム的にボタンを作成することを説明しています。そこにInterface BuilderもIBACtionもありません。 – Krishnabhadra

+1

IBActionは本当にちょうど無効です。 IBへのヒントです。私が投稿したメソッドは、Interface Builderで作成されたボタンと同じように、プログラムで作成されたボタンでも同じように機能します。答えの関連部分は 'sender'引数です。 –

関連する問題