禁用表格视图滚动

Posted

技术标签:

【中文标题】禁用表格视图滚动【英文标题】:Disable Table View Scrolling 【发布时间】:2017-02-16 17:13:07 【问题描述】:

问题来了:

我在现有的 tableview 控制器 E 之上展示了一个 popover tableview 控制器 P。

我遇到的问题是 E 仍然滚动。这意味着如果您滚动到 P 的范围之外,E 将滚动并且 P 将表现得好像它是 E 的一部分。

如何在显示 P 时禁用 E 滚动?

【问题讨论】:

【参考方案1】:

当你呈现 P 时,设置:

yourTableView.isScrollEnabled = false

当你关闭你的弹出框时:

yourTableView.isScrollEnabled = true

注意:当您关闭弹出框时,您可能希望使用协议再次启用滚动。

为此,我会在您的弹出视图控制器中添加:

protocol ProtocolPopOver
  func enableScrollAgain();

然后,在那个视图控制器中:

var delegatePopOver:ProtoclPopOver?

当你关闭你的 viewController 时:

self.dismiss(animated: true, completion:  delegatePopOver.enableScrollAgain() )

在您的主视图控制器中,当您呈现弹出框时,添加:

popoverViewController.delegatePopOver = self

在 UIViewController 附近实现协议:

class yourclass: UIViewController, ProtocolPopOver...

并添加功能:

func enableScrollAgain()
 yourTableView.isScrollEnable = true

【讨论】:

以上是关于禁用表格视图滚动的主要内容,如果未能解决你的问题,请参考以下文章

如何禁用表格视图的水平滚动? [复制]

如何禁用滚动视图子视图的点击手势?

以编程方式禁用 UICollectionView 中的垂直滚动

在滚动时从表格视图中删除反弹效果

滚动单元格时表格视图设置消失

滚动视图中不可滚动的表视图