ios - 每 3 秒只注册一次用户的点击

标签 ios objective-c sprite-kit

您如何才能让应用每 3 秒记录一次用户的点击。例如:用户点击屏幕后,应用程序将不会注册或识别任何更多的点击,直到 3 秒过去,然后重复此操作。这将是通过尽可能快地点击来停止发送垃圾邮件。我阅读了手势识别器,但没有看到如何使用它。

最佳答案

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

@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;
}

关于ios - 每 3 秒只注册一次用户的点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27143972/

相关文章:

ios14 Xcode 12 - 触摸 SwiftUI 对象时 Sprite 不显示,但触摸 SKScene 时可以工作

ios - 在不包含源代码的情况下创建 CocoaPod 库

iphone - 在Objective-C中将小数转换为分数?

swift - 我可以同时将同一个 SKScene 渲染到两个不同的 View 吗?

ios - 如何将字符串解析为 NSTimeInterval

ios - 自定义 UI - 什么是更有效(更快捷!!)的实现方法? UIImageView 或 Quartz

ios - SpriteKit 中的 "nonuniformly scaled texture"是什么意思?

objective-c - 在不重新编译的情况下从静态 lib(.a) 中删除方法调用

ios - 带有 AFNetworking 的嵌套 NSDictionary 和 NSArray 无法正常工作

iphone - 动态检查类是否通过 respondsToSelector : 响应选择器