0

UIScrollView を使用してプログラムで作成された UIButton があります。このボタンを押すとアクションがトリガーされますが、アクションをトリガーするだけでなく、ボタンから (int) 変数もメソッドに送信する必要があります。

これが私のボタンです:

UIButton *btn15 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [btn15 setTitle:@"Cool title" forState:UIControlStateNormal];
    [btn15 setFrame:CGRectMake(165, 770, 145, 145)];
    [btn15 addTarget:self action:@selector(selectFav) forControlEvents:UIControlEventTouchUpInside];
    [_scroller addSubview:btn15];

...これは、このスクロール ビュー内の 15 番目のボタンです。ボタンの押下を処理するメソッド「selectFav」を書きたいと思います。各ボタンがその番号をメソッドに送信し、メソッドがその番号を NSLog に出力するようにしたいと思います。この例はボタン 15 であるため、15 という数字を何らかの方法で selectFav に渡したいと考えています。

これは簡単なことだと思いますが、うまくいかないようです。ご提案ありがとうございます。

4

4 に答える 4

1

UIView の tag プロパティをボタンに使用して、ボタンが押されたら値を取り出すことができます。

何かのようなもの:

- (void)yourAction:(UIButton *)sender{
    NSInteger value=[sender tag];
}
于 2013-06-04T00:50:04.980 に答える
0

@J2theC で説明されているように、渡される UIButton のタグを使用するか、UIButton にプロパティを追加することもできます。UIButton をサブクラス化してプロパティを追加します。

UIButton をセレクターに渡すと、どの UIButton がタグまたはプロパティから渡されているかを識別できます。

また、addTarget メソッドの実装を更新して、渡されるセレクター パラメーターに:を含めることも忘れないでください。

[btn15 addTarget:self action:@selector(selectFav:) forControlEvents:UIControlEventTouchUpInside];
于 2013-06-04T00:56:40.177 に答える