3

ピアノのようなインターフェースを備えたiPhoneアプリケーションを書いています。ユーザーには、間にスペースのない多数の大きなボタンが表示されます。現時点では、ボタンを右マウスで適切なView Controllerインターフェイスファイルにドラッグして、InterfaceBuilderでIBActionを作成しました。これにより、メソッドが作成されます。

-(IBAction) buttonTouchDown: (id) sender

この関数の本体には、このアクションに応答するコードが含まれています。

これはボタンをタップすると機能しますが、指をいくつかのボタンの上にドラッグすると、最初のボタンだけがアクティブになります。ボタンの上に指をドラッグすると、指がボタンの上にあるときに最初のボタンをアクティブにする必要があります。次に、指がボタンを離れて2番目のボタンに入ると、2番目のボタンをアクティブにし、最初のボタンを非アクティブにする必要があります。

アドバイスをいただければ幸いです。

4

3 に答える 3

1

touchesBegan関数を使用することもできます。この機能を使用すると、ボタン(または複数のボタン)が押されたり触れられたりした場合に何が起こるかを簡単に言うことができます。

コードは次のようになります。

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
        UITouch *touch = [[event touchesForView:self.view] anyObject];

    if(touch == YourButton){
         //so some stuff after touching the button

    }
}

IBOutlet UIButton*MyButtonのように.hのボタンをデケアすることを忘れないでください。

于 2012-04-19T21:40:48.690 に答える
0

これは試していませんが、新しく追加したジェスチャ認識機能をボタンに追加してみてください。スライド方向(右/左)を選択し、それに応じて[buttonsetEnabled]機能を実装します。スワイプが発生したときのように、ボタンを有効に設定し、他のすべてのボタンを無効に設定します。

平和

于 2012-04-19T17:26:26.320 に答える
0

ボタンは行く方法ではありません。UIViewには、より適切に機能するさまざまなタッチメソッドがあります。または、カスタムジェスチャレコグナイザーを使用します。

于 2012-04-19T17:26:57.047 に答える