【问题标题】:Detecting toucesbegan in uiscrollview在 uiscrollview 中检测 toucesbegin
【发布时间】:2013-06-12 20:33:16
【问题描述】:

我在水平滚动视图中添加了垂直滑动。该位工作正常,但我想在用户触摸它时点亮滚动视图上方和下方的目标,以指示向上或向下滑动会导致动作。

我怎样才能做到最好?

使用敲击探测器不会切断它,因为它只会在手指抬起时触发。

使用具有短触发延迟的长按检测器也不起作用,因为它似乎会禁用所有其他手势识别器。

【问题讨论】:

    标签: ios uiscrollview uigesturerecognizer


    【解决方案1】:

    您可以继承 UIScrollView 并覆盖这些方法:

    -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
    -(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;
    -(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;
    

    【讨论】:

    • 好答案,但我发现一个我认为工作量少一点的答案......见下文。
    【解决方案2】:

    Grr...为什么这总是发生 - 就在你放弃之后,答案就来了!

    是的,长按检测器是检测手势开始和结束的方法,但是您需要在合适的对象中实现 UIGestureRecognizerDelegate 协议,并将其设置为所有手势识别器的委托,然后实现此方法:

    - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
        return YES;
    }
    

    这可以防止长按检测器覆盖所有其他手势识别器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多