【问题标题】:UIScrollView inside UIScrollView – ignore scroll view touches when in bounds of text view?UIScrollView 内的 UIScrollView – 在文本视图范围内忽略滚动视图触摸?
【发布时间】:2014-12-18 04:35:32
【问题描述】:

我在另一个UIScrollView 中有一个UIScrollView,两者都垂直滚动。我有一个问题,当我尝试滚动内部滚动视图时,触摸也被外部滚动视图拾取。我需要内部滚动视图中的触摸由它专门处理,并且不能在父滚动视图上调用 scrollViewDidScroll

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2014-01-08
      • 2012-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-10
      • 2013-06-08
      • 1970-01-01
      相关资源
      最近更新 更多