0

我正在为使用 openGL 的 iPhone 小应用程序工作。

该应用程序应该:

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

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

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

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

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

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

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

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

4

1 回答 1

1

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

于 2010-10-29T14:58:19.627 回答