【问题标题】:Conflicts between UIGestureRecognizer and in iPhoneUIGestureRecognizer 和 iPhone 之间的冲突
【发布时间】:2011-05-02 11:12:49
【问题描述】:

我正在开发使用 openGL 的 iPhone 小应用程序。

该应用程序应该:

通过移动触摸在屏幕上移动。 点击放大/缩小

我正在重写这个函数来处理触摸的坐标并用我的手指在屏幕上移动,成功,完美地工作:

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

我正在使用 UIGesture 识别器双击、捏合手势、滑动、反捏也成功,所有手势都被完美地检测到。

但我有冲突。例如,有时我双击并正确识别,但它也传递给了我的touchedMoved 函数,导致动作不稳定。捏和反捏手势也会发生同样的情况,大多数情况下它们在放大和缩小时效果很好,但有时我的 touchesMoved 函数也会检测到触摸并移动屏幕。

覆盖此函数并同时使用 UIGesturerecognizer 是一种不好的做法?如果没有,有没有办法在没有冲突的情况下同时使用两者?

我尝试在我的识别器中将 setDelaysTouchesBegan 和 setDelaysTouchesEnded 设置为 Yes,但这会导致我的触摸没有传递给任何被覆盖的函数!

我正在考虑使用 UIGestureRecognizer 来处理滑动并废弃被覆盖的函数以接收触摸,并使用滑动的值来计算我的屏幕移动了多少,这可能吗?

【问题讨论】:

    标签: objective-c ios4 gesture-recognition


    【解决方案1】:

    我无法回答为什么您有时会收到虚假的 touchesMoved: 事件,但听起来您可能只想放弃被覆盖的函数并使用 UIPanGestureRecognizer 来处理屏幕上的移动。

    【讨论】:

    • 很抱歉,UIPanGestureRecognizer 让我知道平移手势的方向和距离?,以便我确定在一个方向上移动屏幕多少?。我看到这有一个速度输出,但我不确定它的含义。谢谢!
    • 没关系,做了一点搜索,一切都很完美。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-27
    • 2012-03-06
    • 2012-11-25
    • 2013-10-27
    • 2014-03-02
    • 2016-11-15
    • 2012-11-02
    相关资源
    最近更新 更多