我有一个 UIScrollView
在另一个 UIScrollView
, 两者都垂直滚动。我遇到了一个问题,当我尝试滚动内部 ScrollView 时,触摸也被外部 ScrollView 拾取。我需要内部 ScrollView 中的触摸由它专门处理,对于 scrollViewDidScroll
不要在父 ScrollView 上调用。
我已经尝试了各种方法,将 ScrollView 子类化并覆盖 hitTest:withEvent
, 设置 canCancelContentTouches
, 设置 exclusiveTouch
,根本没有任何作用。 scrollViewDidScroll
方法首先在内部触发,然后在外部触发。
如何在第一个 ScrollView 之后有效地终止触摸,而不是将其通过响应链传递到外部 ScrollView ?
(仅供引用:层次结构是中间有一个 subview Controller ,因此外部 ScrollView 包含一个 subview Controller ,而 subview Controller 又包含内部 ScrollView )。
最佳答案
Apple 绝对不会阻止 UIScrollView 内的 UIScrollView。它实际上在文档中:
your application does not need to do anything to support nesting scrolling. It is supported and provided by default.
https://developer.apple.com/library/content/documentation/WindowsViews/Conceptual/UIScrollView_pg/NestedScrollViews/NestedScrollViews.html
如果你想禁止父 ScrollView 滚动,你可以从 child 发送一个通知,并设置
isScrollEnabled
在 parent 。
关于ios - UIScrollView inside UIScrollView – 在 TextView 范围内忽略 ScrollView 触摸?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26512338/