我有一个 uiscrollview 作为 uiscrollviewcontroller 的元素,以及其他视图对象。当 scrollView 是顶部子视图时,图像会按预期滚动和缩放。但是,我还需要获取触摸的屏幕位置,尤其是在没有滚动动作的情况下。(我知道在滚动期间位置可能会改变,但这并不重要。)我还没有找到一种方法来做到这一点。在 scrollviewcontroller 实现中,我自定义了所有应该执行此操作的标准方法:“touchesShouldBegin...”、“touchesBegan:...”、“touchesEnded:...”等等。据我所知,当滚动视图是顶部子视图时,在触摸事件期间没有调用这些。我已经尝试将 delayContentTouches 属性设置为 YES 和 NO,但这并没有
作为替代方案,我尝试将 UIView 作为顶部子视图,然后尝试将触摸传递给现在底层的滚动视图。在此配置中,调用了标准方法并且我可以获得触摸位置,但我还没有找到将触摸传递给 scrollView 的机制,因此会发生滚动。将触摸消息发送到特定的滚动视图或“超级”或仅将它们发送到 nextResponder 之类的操作都不会这样做。看来我可以使滚动工作或找到触摸的位置,但不能同时找到两者,这取决于“顶部”子视图是什么。
我怀疑这是微不足道的,但经过两周的挣扎,是时候吃掉我无法做这看似最简单的事情的尴尬了。我已经阅读了有关 stackoverflow 的所有相关问题,尝试了大多数(如果不是全部)建议,到目前为止,没有任何效果。我查看了答案建议的各种链接和参考资料,包括 Apple 的文档,但没有人指出我的理解存在差距。任何想法,将不胜感激。