UIScrollView里面的UIScrollView – 在文本视图边界时忽略滚动视图?

我有一个UIScrollView在另一个UIScrollView ,都垂直滚动。 我有一个问题,当我试图滚动内滚动视图时,触摸也被外滚动视图拾起。 我需要在内部滚动视图触及它独占处理, scrollViewDidScroll父滚动视图上调用。

我尝试了所有的方式,子类化滚动视图和重写hitTest:withEvent ,设置canCancelContentTouches ,设置exclusiveTouch ,没有任何工作。 scrollViewDidScroll方法首先在内部触发,然后在外部触发。

在第一个滚动视图之后,我怎样才能有效地消除触摸,而不是将响应者链传递给外部滚动视图?

(仅供参考:层次结构是中间有一个子视图控制器,所以外部滚动视图包含一个子视图控制器,而后者又包含内部滚动视图)。

苹果非常UIScrollViewUIScrollView使用UIScrollView 。 除非使用userInteractionEnabled = NO手动有条件地禁用用户交互中的某个滚动视图,否则您的设置将无法正常工作。

否则,你的设置就像它的行为一样致命 – 你绝对不会让它工作。

苹果绝对不会阻止UIScrollView内的UIScrollView。 这实际上是在文档中:

你的应用程序不需要做任何事情来支持嵌套滚动。 它是默认支持和提供的。

https://developer.apple.com/library/content/documentation/WindowsViews/Conceptual/UIScrollView_pg/NestedScrollViews/NestedScrollViews.html

如果要禁用滚动的父滚动视图,则可以从子代发送通知,并在父代中设置isScrollEnabled