【问题标题】:How to prefer tap gesture over draw gesture?如何更喜欢点击手势而不是绘制手势?
【发布时间】:2013-05-04 18:23:41
【问题描述】:

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

【问题讨论】:

    标签: ios objective-c uikit gesture


    【解决方案1】:

    您可以避免点击手势。取而代之的是,您可以识别触摸事件本身中的点击。

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

    希望对你有帮助:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-17
      • 1970-01-01
      • 1970-01-01
      • 2017-04-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多