Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/107.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何选择轻敲手势而不是画画手势?_Ios_Objective C_Uikit_Gesture - Fatal编程技术网

Ios 如何选择轻敲手势而不是画画手势?

Ios 如何选择轻敲手势而不是画画手势?,ios,objective-c,uikit,gesture,Ios,Objective C,Uikit,Gesture,在我看来,我正在覆盖所有的“touch*”方法,让用户在屏幕上绘图。我正在记录地点。 此外,我的视图上有两个手势识别器,用于检测单点击和双点击。 如果我现在只移动手指一点点,足够短,我将记录一个小的“画”手势。但是,当抬起手指时,会触发额外的轻触手势。 通过反复试验,我可能会找出一个最短的时间和移动阈值,但我确信有更聪明的方法吗? 我需要知道在进行了多少移动和/或保存之后,假设不会触发任何点击手势 您可以避免轻触手势。相反,您可以识别触摸事件本身中的点击 - (void)touchesEnded

在我看来,我正在覆盖所有的“touch*”方法,让用户在屏幕上绘图。我正在记录地点。 此外,我的视图上有两个手势识别器,用于检测单点击和双点击。 如果我现在只移动手指一点点,足够短,我将记录一个小的“画”手势。但是,当抬起手指时,会触发额外的轻触手势。 通过反复试验,我可能会找出一个最短的时间和移动阈值,但我确信有更聪明的方法吗?
我需要知道在进行了多少移动和/或保存之后,假设不会触发任何点击手势

您可以避免轻触手势。相反,您可以识别触摸事件本身中的点击

- (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

希望这对您有所帮助:)