2012-01-27 7 views
2

私は、画面上に2つのボタンを配置して、それらを同時に押してアクションをトリガーする必要があるように設定しようとしています。2ボタン同時押下入力

これは、Windowsのctrl + alt + delに似ています。また、原子起動シーケンスで2人のユーザーが異なる場所にあるボタンを同時に押す必要があります。

どのような方法が最適でしょうか?タッチを傍受し、タッチがどこに上がるかを確認するビューを作成しますか?

答えて

8

UIButtonUIControlのサブクラスであるため、touchInsideプロパティはUIControlを継承しています。さらに、UIButtonがタッチアップ・インナー・アクションを送信すると、それでもtouchInsideにはYESと応答します。だから、あなたはこのアクションに両方のボタンをフックすることができます:デフォルトでは

- (IBAction)buttonWasTouched:(id)sender { 
    if (self.button1.touchInside && self.button2.touchInside) { 
     [self launchNukes]; 
    } 
} 

、Interface Builderは、あなたがコントロールするドラッグをタッチアップ - 内部イベントをフックします。 2番目のボタンが同時にタッチされた瞬間に核を発射する場合は、タッチダウンイベントをフックアップします。これを行うには、コントロールをドラッグするのではなく、コントロールをクリックします。

+0

私はこれをテストする機会を得て、私の答えを少し簡略化することができました。 –

+0

すごいよ!私のために働いた...それは簡単だったか分からなかった! – Joe

+0

私はこの方法を試しましたが、1つのボタンアクションと2つのボタンアクションを検出する方法はありますか?私はこの2つを同時に受け取ります。 – JoeyJAL

関連する問題