0

作成しているゲームのボタンの2次元配列を作成しています。実際の配列は、ボタンが配置される場所のX座標とY座標を(とりわけ)持つ正方形クラスのインスタンスを保持します。メインの「X座標」配列はクラスオブジェクトですが、「Y座標」配列は、正方形クラスのすべてのインスタンスと同様に、プログラムで作成されます。これまでのところ、ボタンは適切な場所に表示されていますが、X座標とY座標の観点からボタンがどこにあるかを知る方法が必要です。ボタンがクリックされると画像が「選択済み」の状態に変わるようにしたいのですが、座標を保持する正方形のオブジェクトに接続されていないため、クリックされた特定のボタンにアクセスする方法がわかりません。 。私は使って遊んでいますがaddTarget:action:forControlEvents:、私はしません

実際のコーディングエラーはないので、この質問のコードを投稿する必要はないと思いますが、私のコードの一部を表示したい場合、または詳細情報が必要な場合は、質問してください、そして私はどちらかを提供させていただきます。

4

3 に答える 3

2

タグを使ってみましたか?で設定しますbutton0.tag = 0, button1.tag = 1, ...。アクションを追加するときに、ボタンのタグを渡し、アクションで、正しいタグでボタンを更新します。

注:これについては間違っている可能性があります。あなたのコンテキストを正確に理解したかどうかはわかりませんが、同じタイプのさまざまな要素を識別する方法なので、ここで使用できる可能性があります:)。私が完全に間違っているなら、ごめんなさい。

于 2012-09-18T14:25:45.547 に答える
1

可能であれば、すべてのボタンが同じセレクターを指すため、座標の処理は簡単です。

[myButton addTarget:self action:@selector(buttonPressd:) forControlEvents:UIControlEventTouchUpInside];

次に、buttonPressed:セレクター...

- (IBAction)buttonPressed:(UIButton *)sender {
CGRect buttonFrame = [sender frame];
float buttonXCoord = buttonFrame.origin.x;
float buttonYCoord = buttonFrame.origin.y;

// The rest of your code goes here.
}
于 2012-09-18T15:53:26.730 に答える
0

ボタンに割り当てた情報は、押されたボタンへのポインターを受け取ることにより、ターゲットメソッドで使用できるようになります。ボタンの座標を知る必要がある場合frameは、ボタンの境界ボックスの原点とサイズの両方を含むプロパティを確認できます。add targetメソッドでセレクターを正しく追加し(コロン[:]で終わる)、メソッドを正しく設定していることを確認してください-- (void)myButtonAction:(UIButton *)sender

于 2012-09-18T14:38:51.270 に答える