获取uiscrollview触摸的触摸位置

时间:2010-05-13 22:20:59

标签: cocoa-touch uiscrollview iphone-sdk-3.2

我有一个uiscrollview作为uiscrollviewcontroller的元素,以及其他视图对象。当scrollView是顶级子视图时,图像会按预期滚动和缩放。但是,我还需要获取触摸的屏幕位置,特别是在没有滚动动作时。 (我知道在滚动过程中位置可能会发生变化,但这并不重要。)我还没有办法做到这一点。在scrollviewcontroller实现中,我已经定制了所有应该执行此操作的标准方法:“touchesShouldBegin ...”,“touchesBegan:...”,“touchesEnded:...”等等。据我所知,当scrollView是顶级子视图时,在触摸事件期间没有调用这些。我已经尝试将delayContentTouches属性设置为YES和NO,这似乎没有什么区别。

作为替代方案,我尝试将UIView作为顶级子视图,然后尝试将触摸传递给现在的底层scrollView。在这个配置中,标准方法被调用,我可以获得触摸位置,但我还没有找到一个机制,将触摸传递给scrollView,因此滚动发生。做一些事情,比如将触摸消息发送到特定的scrollView,或者“超级”或者只是将它们发送到nextResponder都不行。似乎我可以使滚动工作或找到触摸的位置,但不是两者,取决于“顶部”子视图是什么。

我怀疑这是微不足道的,但经过两周的挣扎之后,是时候吃掉我的尴尬因为无法做到这些看似简单的事情。我已经在stackoverflow上阅读了所有相关的问题,尝试了大多数(如果不是全部)建议,到目前为止,没有任何工作。我查看了答案提供的各种链接和参考资料,包括Apple的文档,但没有人指出我的理解上的差距。任何想法都将不胜感激。

0 个答案:

没有答案