在我看来,我正在覆盖所有“touches*”方法,让用户在屏幕上绘图。我正在记录位置。此外,我的视图上有两个手势识别器来检测单击和双击。如果我现在移动我的手指一点点并且足够短,我将记录一个小的“绘制”手势。但是,当抬起手指时,会触发一个额外的轻击手势。通过反复试验,我可能会计算出最短时间和运动阈值,但我确定有更聪明的方法吗?我需要知道移动了多少和/或假设不会触发轻击手势。
问问题
117 次
1 回答
0
您可以避免点击手势。取而代之的是,您可以识别触摸事件本身中的点击。
- (void)touchesEnded:(NSSet*)touches withEvent:(UIEvent*)event {
if(touches.count == 1)
{
if([[touches anyObject] tapCount] == 1)
{
// Do the action here for single tap
}
else if([[touches anyObject] tapCount] == 2)
{
// Do the action here for double tap
}
}
}
你必须设置一个全局布尔变量来检查用户是否在屏幕上移动了手指。
BOOL _isMoved;
并在触摸移动事件中使其为 TRUE
- (void)touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event {
_isMoved = YES;
}
在录制曲目之前,您检查此标志是否为 TRUE?并且不要忘记在保存曲目后将标志设为 FALSE
希望对你有帮助 :)
于 2013-05-04T18:32:11.240 回答