【问题标题】:How to remove UITableView top inset when embedded in ContainerView?嵌入ContainerView时如何删除UITableView顶部插图?
【发布时间】:2016-05-04 07:49:16
【问题描述】:

我目前正在开发一个 iPhone 应用程序。我现在遇到了 UITableView 的顶部间距插图的问题。看这个截图:

表格视图单元格和按钮之间不应有空格。

我不知道如何解决这个问题。 UITableView 像这样嵌入到 ContainerView 中:

我认为我得到了正确的容器视图约束。章节按钮的顶部空间设置为0

我尝试更改情节提要中表格视图控制器的一些设置。例如Adjust Scroll View Insets。但是,当我禁用它时它不会改变任何东西。

我也试过直接在viewDidLoad()的代码中设置TableView insets:

tableView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)

然而这也没有解决它。

有人可以帮忙吗?我不知道去哪里找。

【问题讨论】:

  • 你嵌入了导航控制器吗?
  • 它是一个 ViewController,由嵌入在导航控制器中的视图控制器的 push segue 显示。我还通过故事板将导航栏添加到视图控制器中,以便在推送后自定义其栏按钮项。
  • 你想隐藏uitableview的第一个单元格吗??

标签: ios iphone uitableview storyboard uicontainerview


【解决方案1】:

从 iOS 15 开始,有一个新参数可以在使用节标题时引入顶部间隙。这可以通过以下方式删除:

if #available(iOS 15, *) {
    tableView.sectionHeaderTopPadding = 0
}

【讨论】:

  • 即使没有节标题,我也会发生这种情况。你的解决方案帮我解决了,谢谢?
【解决方案2】:

这可以通过禁用滚动视图插图的自动调整来解决。但是,此设置必须应用于 ViewController 包含 ContainerView(其中包含 UITableView)。应用于 UITableView 本身时不起作用。

这可以通过情节提要完成:

或通过viewDidLoad()中的代码:self.automaticallyAdjustsScrollViewInsets = false

【讨论】:

  • 这已被弃用:'automaticallyAdjustsScrollViewInsets' was deprecated in iOS 11.0: Use UIScrollView's contentInsetAdjustmentBehavior instead
  • 例如tableView.contentInsetAdjustmentBehavior = .never
【解决方案3】:

试试这个希望这个工作。 隐藏 包含 ContainerView 的视图。

self.automaticallyAdjustsScrollViewInsets = NO

【讨论】:

  • 不幸的是,这没有帮助。我也不能隐藏导航栏,因为我需要它。
  • 现在我修好了!我不得不禁用automaticallyAdjustsScrollViewInsets。但不是在 Container 中的 UITableView 中,而是在包含 ContainerView 的 View 中。
  • 感谢您的帮助。我在上面添加了一个答案,它完整地解释了解决方案。
猜你喜欢
  • 2017-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-13
  • 1970-01-01
  • 2011-05-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多