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