我有一个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中有什么不同之处吗?提前谢谢。
答案 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的问题。