xcode-对同一个button生成不同的事件

问题描述

对同一个button生成不同的事件
如何对一个button定义两次事件,比如,单击时产生一个事件,然后双击时产生另一个不同的事件?请高手指教,谢谢!

解决方案

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

解决方案二:
设置初始button标签为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;    }    }

解决方案三:
我的方法可行:

其中tapCountint变量,在 .h中声明

- (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}}
时间: 2024-10-29 21:36:34

xcode-对同一个button生成不同的事件的相关文章

Android Listview中Button按钮点击事件冲突解决办法

  今天做项目时,ListView中含有了Button组件,心里一早就知道肯定会有冲突,因为以前就遇到过,并解决过,可惜当时没有记录下来. 今天在做的时候,继续被这个问题郁闷了一把,后来解决后,赶紧来记录下,以便日后参考.      首先,其实Listview中Button按钮点击事件冲突这种问题压根就不是太大的问题,因为我们完全可以将一个TextView的Backgroud设置成一个selector,也可以将一个TextView设计成一个按钮的样子,这样就可以绕过ListView和Button

事件链接-C# 如何将子窗口的BUTTON按钮的CLICK事件传递给主窗口的BUTTON的CLICK事件?

问题描述 C# 如何将子窗口的BUTTON按钮的CLICK事件传递给主窗口的BUTTON的CLICK事件? 我想把在一个主窗口之下新建的一个窗口的打开按钮的事件和主窗口的打开按钮事件链接在一起,从而不管新建多少个子窗口,打开按钮都统一用主窗口的打开按钮,,,,,求完整代码,要C# WINFORM的... 解决方案 可以把主窗口中的处理操作单独写出来成一个函数,然后所有的点击函数都调用这个函数不就一样了么

wpf-WPF TabControl 下的grid内Button 鼠标点击事件

问题描述 WPF TabControl 下的grid内Button 鼠标点击事件 WPF 我添加了一个TabControl,并且有两个tabItem,每个tabItem的grid下有Button:结构如下图: 然后我无论在最外层的root(Grid),还是tab(TabControl本身),还是内部的it1it2上面绑定 MouseLeftButtonUp 事件,当单击其他地方的时候都能触发事件,但就是单击btn1btn2(内部Button)的时候不会触发事件.为什么会这样.有什么样的解决办法吗

ase ctivity-BaseActivity下自定义actionbar中的button设置点击事件无效,代码见下。

问题描述 BaseActivity下自定义actionbar中的button设置点击事件无效,代码见下. package com.lyri.main.base; import com.example.LlsqPs.R; import android.app.ActionBar;import android.app.Activity;import android.app.ActionBar.LayoutParams;import android.content.Context;import and

给listview的button设置OnClick Listener事件

问题描述 给listview的button设置OnClick Listener事件 在屏幕中有一个list view.每一个list item包含两个text view和一个按钮.点击按钮时,我想用当前选中行的行序号去Vector里面取得一些数据.这是List Custom Adapter private class CustomAdapter extends ArrayAdapter<ServicesItems> { public CustomAdapter(Context context

响应事件-android studio编译无错误,运行时显示,但点击button不响应按键事件

问题描述 android studio编译无错误,运行时显示,但点击button不响应按键事件 原因:自从Android 3.2(API 13),screen size也开始跟着设备的横竖切换而改变.这会导致activity重新加载方法:在AndroidManifest.xml里设置的MiniSdkVersion和 TargetSdkVersion属性大于等于13的情况下,如果你想阻止程序在运行时重新加载Activity,除了设 置""orientation"",你

Android 动态切换标题栏里用户自定义view , view里button的点击事件不响应

问题描述 Android 动态切换标题栏里用户自定义view , view里button的点击事件不响应 Android 动态切换标题栏里用户自定义view , view里button的点击事件不响应, 具体方式是:在activity里,找到view里的button,并设置点击事件,结果点了没反应 解决方案 要学会如何问问题,该截图的地方截图,该贴代码的地方贴代码:这样的问题,回答者还要来猜题主的意思就很难有准确的回答了. 你这个问题,正常情况下是不会发生的,所以你要给出充足的上下文,比如布局怎

webform-WebForm嵌套了一个Master,Content里加了一Button,但为什么触发事件无反应?

问题描述 WebForm嵌套了一个Master,Content里加了一Button,但为什么触发事件无反应? 我为WebForm嵌套了一个Master,在ContentPlaceHolder里面加了一个Button,其事件为Button_Onclick(),但是为什么触发该事件无反应? 恳请各位行家高手不吝惜指教!万分感谢!! 解决方案 代码拿来看.就说有什么用...... 解决方案二: 会不会是你代码的问题 解决方案三: 你怎么知道没有反应?下一个断点看看. 解决方案四: btn.Click+

ios中怎样添加scrollview上button的点击事件

问题描述 ios中怎样添加scrollview上button的点击事件 在scrollview上面,自定义的button?点击没有反应 解决方案 怎么可能呢,有绑定事件处理函数吧 解决方案二: addaddTarget action 你确定你的selector实现了? 解决方案三: 使用UITapGestureRecognizer 初始化一个点击动作, 然后使用方法: addGestureRecognizer:(UIGestureRecognizer *)gestureRecognizer添加