Ios 如何选择轻敲手势而不是画画手势?
在我看来,我正在覆盖所有的“touch*”方法,让用户在屏幕上绘图。我正在记录地点。 此外,我的视图上有两个手势识别器,用于检测单点击和双点击。 如果我现在只移动手指一点点,足够短,我将记录一个小的“画”手势。但是,当抬起手指时,会触发额外的轻触手势。 通过反复试验,我可能会找出一个最短的时间和移动阈值,但我确信有更聪明的方法吗?Ios 如何选择轻敲手势而不是画画手势?,ios,objective-c,uikit,gesture,Ios,Objective C,Uikit,Gesture,在我看来,我正在覆盖所有的“touch*”方法,让用户在屏幕上绘图。我正在记录地点。 此外,我的视图上有两个手势识别器,用于检测单点击和双点击。 如果我现在只移动手指一点点,足够短,我将记录一个小的“画”手势。但是,当抬起手指时,会触发额外的轻触手势。 通过反复试验,我可能会找出一个最短的时间和移动阈值,但我确信有更聪明的方法吗? 我需要知道在进行了多少移动和/或保存之后,假设不会触发任何点击手势 您可以避免轻触手势。相反,您可以识别触摸事件本身中的点击 - (void)touchesEnded
我需要知道在进行了多少移动和/或保存之后,假设不会触发任何点击手势 您可以避免轻触手势。相反,您可以识别触摸事件本身中的点击
- (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变量来检查用户是否在屏幕上移动了手指
BOOL _isMoved;
并在触摸移动事件中实现
- (void)touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event {
_isMoved = YES;
}
录制曲目之前,请检查此标志是否为真?另外,保存曲目后,不要忘记将标志设置为FALSE
希望这对您有所帮助:)