【问题标题】:With nested UIScrollViews, how do I disable the parent UIScrollView when inner view is being scrolled?使用嵌套的 UIScrollViews,如何在滚动内部视图时禁用父 UIScrollView?
【发布时间】:2017-07-14 09:42:29
【问题描述】:

使用嵌套的 UIScrollViews,如何在滚动内部视图时禁用父 UIScrollView?

我有一个 UIScrollView 的父视图和 UITableView 中的一个子视图(继承 UIScrollView)。滚动内部 UITableView 时,我不希望其他视图滚动。

我看到的行为是在滚动内部视图时,它会按照我想要的方式运行,直到它到达末尾。一旦 UITableView 到达末尾,父 UIScrollView 开始滚动。如何禁用此功能?

如果触摸在 UITableView 上,则 UIScrollView 不应该滚动。

我尝试将 UIView 作为 UITableView 的父级。我为该视图提供了一些手势识别器,这些手势识别器阻止了手势上升到父 UIScrollView。几乎是我想要的,除了我的 UITableView 在尝试滚动到末尾时不再弹跳。

有人知道获得我想要的行为的正确方法吗?

【问题讨论】:

  • 我在 react native 中寻找相同的答案

标签: ios swift uitableview uiscrollview


【解决方案1】:

有几个属性可以禁用用户交互或滚动:

collectionView.isScrollEnabled 或 collectionView.isUserInteractionEnabled

滚动视图上还有一个委托方法,一旦滚动完成就会被调用:

func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) { }

你可以根据自己的需要设置属性,让滚动视图在时间表视图滚动时不会滚动。

谢谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-21
    • 2015-12-20
    • 1970-01-01
    相关资源
    最近更新 更多