[IOS]实现IOS单击或者双击事件

提供一下三种方法参考:

方法一:

//单击事件
-(void)fun1
{

    NSLog(@"click1");
}
//双击事件
-(void)fun2
{
    NSLog(@"click2");
}

//单击和双击方法之一
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{

    if ([[touches anyObject] tapCount] == 1) {
        [self performSelector:@selector(fun1) withObject:nil afterDelay:1];
    }
    else if ([[touches anyObject] tapCount] ==2)
    {
        [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(fun1) object:nil];
        [self performSelector:@selector(fun2) withObject:nil afterDelay:1];
    }
}

方法二:[线程]

int num = 0;
-(void)fun1
{
    [NSThread sleepForTimeInterval:1];
    if(num == 1)
    {
        NSLog(@"click 1");
    }
}
-(void)fun2
{
    [NSThread sleepForTimeInterval:1];
    if(num == 2)
    {
        NSLog(@"click 2");
    }
}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    if([[touches anyObject] tapCount] == 1)
    {
        num = 1;
        NSThread * thread = [[NSThread alloc] initWithTarget:self selector:@selector(fun1) object:nil];
        [thread start];
    }
    else if([[touches anyObject] tapCount] == 2)
    {
        num = 2;
        NSThread * thread = [[NSThread alloc] initWithTarget:self selector:@selector(fun2) object:nil];
        [thread start];
    }
}

方法三:[利用手势控件本身自带的方法]

原理:执行第二个方法的时候,取消第一次的方法操作

- (void)viewDidLoad
{
    [super viewDidLoad];
 //点击事件
    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(fun1)];
    //单点触摸
      tap.numberOfTouchesRequired = 1;
    //点击几次,如果是1就是单击
    tap.numberOfTapsRequired = 1;
    [self.view addGestureRecognizer:tap];

    UITapGestureRecognizer *tap2 = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(fun2)];
    tap2.numberOfTapsRequired = 2;
    [self.view addGestureRecognizer:tap2];

    //如果满足第二次 第一次的就取消
    [tap requireGestureRecognizerToFail:tap2];
}

==================== 迂者 丁小未 CSDN博客专栏=================

MyBlog:http://blog.csdn.net/dingxiaowei2013             MyQQ:1213250243

Unity QQ群:858550         cocos2dx QQ群:280818155

====================== 相互学习,共同进步 ===================

转载请注明出处:http://blog.csdn.net/dingxiaowei2013/article/details/10450627

欢迎关注我的微博:http://weibo.com/u/2590571922

时间: 2024-09-24 12:14:04

[IOS]实现IOS单击或者双击事件的相关文章

js鼠标单击和双击事件冲突问题的快速解决方法_javascript技巧

情况一 如果在一个DOM对象上同时绑定单击(click)和双击(dblclick)事件,当在这个DOM对象上发生双击事件时,第一次点击(click)会 触发一次单击(click)事件,第二次点击(连续的)也会触发双击(dblclick)事件,还是会触发单击(click)事件(IE7与 firefox). 解决方法: <button onclick="test(1)" ondblclick="test(2)"></button> <scr

JS实现鼠标单击与双击事件共存

 本篇文章主要是对JS实现鼠标单击与双击事件共存的简单实例进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 一直都认为在Web开发中,双击事件都是少至又少地使用,直到最近项目需要,要在一个按钮上绑定单击与双击两件事件.开始也觉得不就是给按钮绑下两个事件而已罢了--只是后来才明白,是我想得太简单,在双击事件触发的同时也会触发单击的~囧   通过一番研究后,终于利用JS中"setTimeout"延时执行方法的办法,将单击延迟300毫秒执行才解决了,代码如下:    代码如下: &l

单击和双击事件的冲突处理示例代码

  这篇文章主要介绍了单击和双击事件的冲突处理方法,需要的朋友可以参考下   先上代码:   <head>  <title></title>  <script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>  <script type="text/javascript" language="ja

girdview 在不排序时,能否实现列表头单击或双击事件?

问题描述 girdview在不排序时,能否实现列表头单击或双击事件? 解决方案 解决方案二:通过扩张gridview实现参考http://www.cnblogs.com/webabcd/archive/2007/01/22/626484.html解决方案三:使用模板列,可编辑表头,加脚本事件解决方案四:能.用模板列.<asp:templatefield><headertemplate><asp:buttonrunat=server...<headertemplate&g

Android 自定义View实现单击和双击事件的方法_Android

自定义View, 1. 自定义一个Runnable线程TouchEventCountThread ,  用来统计500ms内的点击次数 2. 在MyView中的 onTouchEvent 中调用 上面的线程 3. 自定义一个Handler, 在TouchEventHandler 中 处理 统计到的点击事件, 单击, 双击, 三击, 都可以处理 核心代码如下:  public class MyView extends View { ...... // 统计500ms内的点击次数 TouchEven

Android 自定义View实现单击和双击事件的方法

自定义View, 1. 自定义一个Runnable线程TouchEventCountThread ,  用来统计500ms内的点击次数 2. 在MyView中的 onTouchEvent 中调用 上面的线程 3. 自定义一个Handler, 在TouchEventHandler 中 处理 统计到的点击事件, 单击, 双击, 三击, 都可以处理 核心代码如下: public class MyView extends View { ...... // 统计500ms内的点击次数 TouchEvent

JS实现鼠标单击与双击事件共存_javascript技巧

一直都认为在Web开发中,双击事件都是少至又少地使用,直到最近项目需要,要在一个按钮上绑定单击与双击两件事件.开始也觉得不就是给按钮绑下两个事件而已罢了--只是后来才明白,是我想得太简单,在双击事件触发的同时也会触发单击的~囧 通过一番研究后,终于利用JS中"setTimeout"延时执行方法的办法,将单击延迟300毫秒执行才解决了,代码如下: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transit

单击和双击事件的冲突处理示例代码_jquery

先上代码: 复制代码 代码如下: <head> <title></title> <script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script> <script type="text/javascript" language="javascript"> $(function ()

android识别 单击和双击事件

package com.test.test; import android.app.Activity; import android.graphics.Color; import android.os.Bundle; import android.util.Log; import android.view.GestureDetector; import android.view.MotionEvent; import android.view.GestureDetector.OnGestureL