码迷,mamicode.com
首页 > 移动开发 > 详细

关于iOS延时操作,阶段性总结(部分关于点击,双击事件冲突)

时间:2014-12-14 13:22:00      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:ios   延时操作   单机   双击   单机双击冲突   

之前写过一个简单的图片查看器,在图片单击,双击事件处理上遇到问题,通过延时单击事件操作。

方法一:

详细:1.设置全局变量

bool doubleTap;
在单击事件方法中设置延时操作

单击时进行延时:

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        if (doubleTap == YES) return;
        //单击事件的相关操作
    });


****当是双击时:

doubleTap = YES;
这样在0.2秒之后不会进行单机事件的相关操作,执行双击操作,记得设置(doubleTap = NO

****当是双击事件时:

在0.2秒之后进行单击事件操作
-------------------------------------
方法二:(在网易面试,当时讨论到这个问题,我说了自己方法,大牛给我了两个方法-只能说大牛就是大牛bubuko.com,布布扣

    [self performSelector:@selector(test) withObject:nil afterDelay:.2];
    
    [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(test) object:nil];
上面的两个方法简单说就是,一个进行延时操作,一个就是取消延时操作,通过这个进行操控单机双击。(由于时间问题,只是简单试用了这个方法(好用bubuko.com,布布扣),还没有把图片查看的源代码修改,所以就不贴出来了)

---------------------------------

说到这简单的总结下相关延时操作:

00001.建议使用的方法

- (void)delay1
{
    // 延迟执行不要用sleep,坏处:卡住当前线程
    [NSThread sleepForTimeInterval:3];
    NSLog(@"操作");
}
00002.方法二

- (void)delay2
{
    // 一旦定制好延迟任务后,不会卡主当前线程
    [self performSelector:@selector(download:) withObject:@"http://美女.jpg" afterDelay:3];
}

00003.方法三

- (void)delay3
{
    // 3秒后回到主线程执行block中的代码
    dispatch_queue_t queue = dispatch_get_main_queue();
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), queue, ^{
        NSLog(@"------task------%@", [NSThread currentThread]);
    });
}

00004.方法四

- (void)delay4
{
    // 3秒后自动开启新线程 执行block中的代码
    dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), queue, ^{
        NSLog(@"------task------%@", [NSThread currentThread]);
    });
}

关于iOS延时操作,阶段性总结(部分关于点击,双击事件冲突)

标签:ios   延时操作   单机   双击   单机双击冲突   

原文地址:http://blog.csdn.net/foolsong/article/details/41923913

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!