仅每3秒注册一次用户点击

时间:2014-11-26 08:04:29

标签: ios objective-c sprite-kit

你如何做到这一点,以便应用程序只用3秒就注册用户的点击。例如:在用户点击屏幕后,应用程序将不会注册或识别任何更多的点击,直到3秒钟过去,然后重复此操作。这将是通过尽可能快地点击来阻止垃圾邮件。我读了手势识别器,但我没看到如何使用它。

2 个答案:

答案 0 :(得分:1)

使用实例变量跟踪用户上次点击按钮的时间:

@interface MyViewController ()
{
    NSTimeInterval _lastTap;
}
@end

并且在action方法中,忽略少于3秒前的任何内容:

- (IBAction)buttonTapped:(id)sender
{
    NSTimeInterval now = [NSDate timeIntervalSinceReferenceDate];
    if (_lastTap > 0.0 && now - _lastTap < 3.0)
        return;
    _lastTap = now;
    // Handle tap
}

答案 1 :(得分:1)

跟踪用户上次使用属性点击屏幕的时间:

@interface GameScene()

@property NSTimeInterval lastTouch;

@end

并通过

比较当前和最后一次点击之间的时差
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    UITouch *touch = [touches anyObject];
    // Check time since the last touch event
    if (touch.timestamp-_lastTouch >= 3) {
        // Allow touch
        NSLog(@"greater than or equal to 3 seconds");
    }
    else {
        // Ignore touch
        NSLog(@"Seconds since last touch %g",touch.timestamp-_lastTouch);
    }
    // Store timestamp
    _lastTouch = touch.timestamp;
}