UIScrollView里面的UIScrollView - 在文本视图的边界内忽略滚动视图触摸?

时间:2014-10-22 16:25:59

标签: ios objective-c iphone uiscrollview first-responder

我在另一个UIScrollView内有一个UIScrollView,两个都垂直滚动。我遇到了一个问题,当我尝试滚动内部滚动视图时,外部滚动视图之后也会接触到触摸。我需要内部滚动视图中的触摸由它专门处理,并且不要在父滚动视图上调用scrollViewDidScroll

我尝试了各种各样的方法,子类化滚动视图并覆盖hitTest:withEvent,设置canCancelContentTouches,设置exclusiveTouch,根本没有任何效果。 scrollViewDidScroll方法首先在内部方法上触发,然后在外部方法上触发。

如何在第一个滚动视图后有效地终止触摸,而不是将响应者链传递到外部滚动视图?

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

1 个答案:

答案 0 :(得分:0)

Apple肯定不会阻止UIScrollView中的UIScrollView。它实际上在文档中:

  

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

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

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