0

forループを使用して、画像とボタンを含む水平スクロールビューを作成しました。今やりたいことは、ボタンが押されたときに、フルスクリーンに対応する画像を開くことです。私が抱えている問題は、どのボタンが押されたかを判断することです。私は使っている :

[button addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];

それから :

-(void)buttonPressed:(UIButton *)sender {}

これを修正するにはどうすればよいですか? ありがとう

4

4 に答える 4

1

どのボタンが押されたか

を作成してpropertyを格納しtagます。メソッドでbuttonPressedプロパティをsender.tag

これで、最後に押されたボタンがどれかがわかります。

于 2013-03-07T08:34:26.663 に答える
0

これsenderはユーザーがタップしたボタンなので、ボタンを作成するときに、tagプロパティを使用して、画像を保持する配列のインデックスに設定できます。ただし、たとえば画像やボタンの順序や量を変更すると、これは少し不安定になる可能性があるため、それを確認する準備をしてください.

于 2013-03-07T08:34:44.520 に答える
0

これを行う1つの方法は、ボタンの参照を(クラスのプロパティ、属性を使用して)保持し、buttonPressedメソッドでそれが適切かどうかをテストすることです

- (void)buttonPressed:(UIButton *)sender {
  if (sender == self.myButton) {
    // DO YOUR WORK HERE
  }
}

これとこの1つのボタンのみのメソッドを作成することもできます

ちなみに言ったほうがいい

- (IBAction)buttonPressed:(UIButton *)sender

次に、インターフェースビルダーインターフェースでボタンのターゲットを設定できます

于 2013-03-07T08:36:05.810 に答える
0

for ループ内の各ボタンにタグを設定するbut.tag=i;

-(void)buttonPressed:(UIButton *)送信者 {

if (sender.tag==1){

//画像1を表示

}

それ以外の場合 ....

}

于 2013-03-07T08:38:38.500 に答える