2012-01-11 7 views
0

異なるボタンで複数のユーザーをタップすることができるプロジェクトを作成します。UIButtonを複数タップしてボタンの異なる動作にアクセスする

以下のような問題が は、私はgestureRecognizer実装し、位相があり、それは適切な作業だが、それは、これらのボタンイベントの

次の画面がボタンを示してアクセスするユーザーがタップボタン、

を取得する方法

enter image description here 、ボタンイベントを取得し、どのようにそれを管理する方法なので、gestureRecognizerデリゲートメソッドのコードです

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{ 

    if ([touch.view isKindOfClass:[UIButton class]]) { 
     NSLog(@"Button is pressed"); 
     if (tag == 1) { 
      NSLog(@"Button1 is pressed"); 
     } 
     return NO; 
    } 
    return YES; 
} 
続きボタンが

-(IBAction)btnPress:(id)sender{ 
    tag=[sender tag]; 
    NSLog(@"%i",tag); 
} 

をタップしかし、ここで問題は、この問題を解決する方法にIBActionメソッドその後、あなたのために事前に

感謝をgestureRecognizerデリゲートメソッドを最初に呼び出しされたときに触れるIBActionメソッドのための方法以下の

貴重な時間が私の問題に費やします。

タクとは ネオンサミュエルです。

答えて

1

ボタンがUIButtonのインスタンスである場合、gestureRecognizerはまったく使用する必要はありません。 addTargetを設定してください:ユーザーがクリックしたときにアクションがコールバックを得るためにUIButtonがあること:あなたはすでに各ボタンにタグ値を設定している

[button1 addTarget:self action:@selector(btnPress:)]; 
[button2 addTarget:self action:@selector(btnPress:)]; 

場合は、お使いのIBActionメソッドが正常に動作します。

-(IBAction)btnPress:(id)sender{ 
NSInteger tag=[sender tag]; 
NSLog(@"%d",tag); 
} 
+0

しかし、一度に複数の状況が同時に発生するため、動作するかどうか –

+0

もちろん問題なく動作します! –

+0

より直観的にするには、どのボタンがクリックされているかをテストするだけです:if(sender == self.button1){...} else if(sender == self.button2){...} –

関連する問題