0

ボタンクリックイベントで2つのアクションを実行するにはどうすればよいですか。たとえば、シングルクリックで1つのアクションを実行し、2回のクリックで連続して別のイベントを実行する必要があります。

4

4 に答える 4

1

最初のボタンタグを0に設定します

それから

-(IBAction)yourBtnPress:(id)sender
{
    UIButton *btn = (UIButton*)sender;
    if (btn.tag==0)
    {
        btn.tag=1;
        //singlePress
    }
    else if(btn.tag==1)
    {
        //double tap

        //if you want other action then change tag
        btn.tag=2;

        //if you restart task then
        btn.tag=0;
    }

}
于 2013-01-17T14:44:02.033 に答える
1

でダブルタップジェスチャを使用しUIImageViewます。UIImageView'sUserInteractionEnabledをTRUEに設定することを忘れないでください。

ImageView.userInteractionEnabled = YES;
于 2013-01-17T14:28:37.670 に答える
1

ここで、 tapCountは、 .hファイルintで宣言する変数です。

- (void)viewDidLoad
{
  tapCount = 0; // Count tap on Slider 

 UITapGestureRecognizer *gr = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(ButtonTap:)];
    [button addGestureRecognizer:gr];
    
}

 - (void)ButtonTap:(UIGestureRecognizer *)g 
    {
/////////////// For TapCount////////////

        tapCount = tapCount + 1;
        NSLog(@"Tap Count -- %d",tapCount);

/////////////// For TapCount////////////



if (tapCount == 1)
{

       // code for first tap
}
else if (tapCount == 2)
{
      // Code for second tap
}
    
}
于 2013-01-17T14:32:57.510 に答える
0

条件付きで使用できますsetAction:

シングルタッチの場合は、を呼び出しますselectorSingleTouch

それ以外の場合はを呼び出しますselectorDoubleTouch

//これはコンパイラチェックされていません...少なくともこれからいくつかのアイデアを得ることができます

UITapGestureRecognizer *singleTap=[[UITapGestureRecognizer alloc] initWithTarget: self action:@selector(doSingleTap)];
singleTap.numberOfTapsRequired = 1; 
[self.view addGestureRecognizer:singleTap];

UITapGestureRecognizer *doubleTap=[[UITapGestureRecognizer alloc] initWithTarget: self action:@selector(doDoubleTap)];
doubleTap.numberOfTapsRequired = 2; 
[self.view addGestureRecognizer:doubleTap];
于 2013-01-17T14:23:31.290 に答える