计数按钮事件

Posted

技术标签:

【中文标题】计数按钮事件【英文标题】:Count button event 【发布时间】:2013-01-17 14:20:31 【问题描述】:

如何对按钮单击事件执行两项操作。例如单击一次我执行一项操作,连续两次单击我必须执行另一个事件。

【问题讨论】:

在图像视图上使用触摸或双击手势 ... 请参阅此 SO 讨论以获取一些提示 ***.com/questions/6179347/uibutton-long-press-event 使用并找到点击手势,您可以获得答案 【参考方案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;
    


【讨论】:

【参考方案2】:

UIImageView 上使用双击手势.....。不要忘记将UIImageView's UserInteractionEnabled 设置为 TRUE

ImageView.userInteractionEnabled = YES;

【讨论】:

【参考方案3】:

这里 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

    

【讨论】:

【参考方案4】:

你可以使用条件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];

【讨论】:

以上是关于计数按钮事件的主要内容,如果未能解决你的问题,请参考以下文章

如何在单个按钮单击或事件上执行两个任务

如何将按钮事件连接到另一个 React 组件?

Vue.js 鼠标事件处理程序修饰符

TabBar 徽章事件和更改

如何根据给定的计数动态添加单选按钮?

使用 perf 获取事件计数取决于其他事件的发生