IOS 5:UIScrollView没有将触摸传递给nextResponder

时间:2011-12-13 07:49:05

标签: ios uiscrollview touches

我有一个UIScrollView的子类,并覆盖它的所有4个Touches函数。在那些Touches功能中, [[self nextResponder] Touches...][super Touches...]用于传递触摸事件。

此外,我还有一个视图控制器,我也可以覆盖所有4个触控功能。在Controller中,我将self.view设置为:self.view = subclass of UIScrollview;

在iOS 5之前,当滚动视图上有触摸移动时,视图控制器的触摸功能可以接收所有触摸开始/移动/结束/取消呼叫。但是在iOS 5中,他们不能,只收到一个touchesBegan和一个touchesMove

从代码日志中,始终调用UIScrollView子类中的触摸函数。

此外,如果我设置subclass.enableUserInteraction=NO,将很好地调用视图控制器中的触摸功能。但我需要使用scrollview与用户进行交互,因此我无法将其设置为no。

iOS 5中有什么不同之处吗?提前谢谢。

2 个答案:

答案 0 :(得分:5)

有一个非常简单的工作:)

而不是:

[self.nextResponder touchesMoved:touches withEvent:event];

使用:

[[self.nextResponder nextResponder] touchesMoved:touches withEvent:event];

也适用于touchesBegan& touchesEnded。

就是这样!问题消失了!现在,触摸事件将传递给下一个响应者:)

答案 1 :(得分:1)

看起来像iOS 5的错误。见SO帖子:

touchesMoved not firing in iOS5 for the iPhone for UIScrollView

“正如之前提到的那样,我记录了Apple的缺陷,他们终于回复了我。我引述:'经过进一步调查后,已确定这是一个已知问题,目前正在通过工程进行调查。”他们给出了原始的错误ID#10213937。他们感谢您提交错误,但不提供任何解决方法。'“

仍然不确定如何解决iOS 5的问题。