【问题标题】:how to remove space between two tableview in UIStackView?如何删除 UIStackView 中两个 tableview 之间的空间?
【发布时间】:2018-01-22 18:40:12
【问题描述】:

我正在使用两个 UITableView。两个 UITableView 数据都来自数据库。因此,大小不固定。它们垂直嵌套在堆栈视图中,间距为 20。问题是,如果第一个 UITableView 中的数据小于它的高度,那么它会在第一个和第二个 UITableView 之间显示空白空间。

我也尝试将第一个 UITableView 高度设置为小于或等于。但仍然会出现空白。我想删除那个空白。我希望两个 tableview 都根据它们的大小改变它们的高度。

This is how my tableview looks

【问题讨论】:

  • 狡猾的人!
  • 为您的堆栈设置高度限制,以便您可以使用 data.count 对其进行更新。
  • 你能解释一下吗?
  • 嘿@Gehlen - 我很确定他希望整个堆栈成为屏幕的整个高度。我猜,OP 希望 lower 表是“满的”(没有滚动),而上表要滚动 - 如果有必要的话。这里非常简单的答案是“这不太可能”。它只是改变了自动布局的意图。
  • @Abhi 是你想要的吗?你想让你的单元格适应视图的大小,或者你的堆栈适应你的表格的大小?要将约束出口添加到堆栈,首先您需要设置堆栈的约束高度和宽度(相同或 superView.width),并将分布属性更改为“按比例填充”或“均等”。然后拖动高度约束以创建插座,然后在绑定数据后按照此答案更新布局:stackoverflow.com/questions/42669554/…

标签: ios swift xcode tableview uistackview


【解决方案1】:

实际上不是您问题的答案。

但是您知道表格视图可以有部分

我通常讨厌“部分”功能,但实际上它对你来说是完美的。

这很容易做到。

我非常广泛地使用堆栈视图,但我不知道如何在堆栈视图中调整两个表视图的大小。此外,您必须“决定”哪一个获得多少空间。


注意

可以简单地设置对齐/距离。填充,填充会做你想要的。试一试!

【讨论】:

  • 但是,我想要两个单独的表格视图。我的第二个 tableview 是静态的。
  • 您可以使用“部分”完美地做到这一点。或者,试试我在“注释”中所说的。
  • 你应该采用这种方法,它就是 tableView 的设计目的。
  • 我尝试更改对齐/分布,但仍然出现空白。在我的第二个表格视图中,每个单元格都包含不同的视图。单选按钮、下拉菜单、复选框、按钮等。这就是为什么我将第二个 tableview 用作静态的。
  • @Abhi 没有理由不能用部分来完成,我同意 Fattie 的观点,那就是进入这里的方式..