我有一个分配了UITapGestureRecognizer
实例的视图。当用户轻按一次时,它会正确响应,但是如果用户在短时间内再次轻按,我想阻止它再次识别。
我在用户点击位置以查找隐藏对象的游戏中使用它。我试图阻止“像在屏幕上疯狂似的点击”策略起作用。
有一个简单的解决方案吗?
最佳答案
我不建议对小于1秒的分辨率使用NSTimer
。另外,它还有更多开销。阅读this answer了解有关NSTimer
与CACurrentMediaTime()
的更多信息。
- (IBAction)handleTap:(UITapGestureRecognizer *)tgr {
static NSTimeInterval previousTapTime = 0.0; // Or an ivar
if ((CACurrentMediaTime() - previousTapTime) > 1.0) {
// A valid tap was detected, handle it
}
previousTapTime = CACurrentMediaTime();
}