自动布局:设置高度视图取决于其他高度视图

Posted

技术标签:

【中文标题】自动布局:设置高度视图取决于其他高度视图【英文标题】:Auto Layout: Set height View depends on other height View 【发布时间】:2017-07-25 02:22:18 【问题描述】:

我需要在我的布局中实现AutoLayout。以下是部分截图:

1.

2.

案例是:

我在 ViewUITableView 中有一个 ShinobiDataGrid。第一张图片是第一个条件,在第一张图片中我希望view 的高度为高度View Controller

第二张和第三张图是有空的时候TableView。我希望TableView 始终位于View Controller 的底部,而View 的高度取决于Table View 的高度。

我阅读了this、this 和所有关于这方面的参考资料,但它对我不起作用。

编辑

我读了一些关于自动布局的文章,我在下面得到了这个:

1.

2.

但在第一张图片中,UIView 与主视图仍有距离。我希望它距离主视图底部只有 3 或 4 个点,如下所示:

现在,我有一个从 UIView 到 UITableView 的约束。我使用自定义优先级、常量等从 UIView 向底部主视图添加了一个约束,但它不起作用。

【问题讨论】:

所以,为我简化它:(1)屏幕截图#1 - 第一个条件 - 单个UIView 具有它的视图控制器的高度。 (2) 截图#2 - 和#3? - 有一个UITableView - 基本上是一个视图,对吧 - 低于一个UIView?令我困惑的是,您希望表格视图始终低于UIViewController。他们可能有一个基本视图,但是在谈论自动布局时,视图控制器基本上没有意义。几乎同样重要的是你的最后一点它对我不起作用。可以发布更多细节 - 请通过编辑问题来做到这一点。谢谢! @dfd 我不明白你在哪个部分 not working for me 。有人在我的问题点给出答案。我想我不需要编辑它谢谢 很高兴有人帮助了你。仍然希望我能理解你的意思——详细地说——“不适合你”。 【参考方案1】:

1.我建议您使用带有节页眉和页脚的 UITableView ,没有滚动。将您的视图添加到 UITableViewCell。根据您的要求使用自定义单元格填充您的 UITableView。

2.您也可以使用 UIStackView。将所有视图和表格视图添加到 Interface Builder 中的垂直堆栈视图。保持均匀分布。第一次隐藏你的 UITableView。您的视图将覆盖完整,然后在需要时显示/隐藏 tableview 并更新堆栈视图。 相对于堆栈视图约束您的视图和表视图。 UIStackView 管理自动布局。

3.我会使用 UITableViewController 和静态单元格(没有滚动)和视图和表格视图作为静态 UITableViewCells 的子视图。在 heightFoRowAtIndexPath 中第一次传递完整的高度。当 tableview 可见时。重新加载 tableview 控制器并相应地传递高度。

而不是在单元格内使用 UITableView。我建议使用 UIStackView 作为子视图单元。在 UIStackView 中显示您的数据。

【讨论】:

不客气。如果有任何进一步的问题,您可以回来找我。 您可以查看此链接以供参考。 ***.com/questions/32656621/… Stackview 有问题 什么和在哪里?也许我可以进一步帮助你 我们可以转到讨论聊天吗?【参考方案2】:
    首先添加滚动视图。 添加First View的高度约束等于视图控制器。 在其下方,添加tableview,获取动态高度并根据它进行更改。您可以在此处查看my answer。

【讨论】:

我应该添加scrollview 吗? .我不希望这两个(viewtableview)一起滚动 您已经说过,在第一张图片中,我希望视图具有高度作为视图控制器的高度。所以 tableview 从屏幕上出来了。我说的对吗? 在第一张图片中,我从代码中隐藏了tableview,没有出来。我认为没有滚动视图可能吗? 是的。但是如果你的 tableview 有更多的数据,那么它就会消失在屏幕之外。为此,我们需要添加滚动视图。 不,不会。我有静态数据。看第二张和第三张图,我的tableview最多只有6行。

以上是关于自动布局:设置高度视图取决于其他高度视图的主要内容,如果未能解决你的问题,请参考以下文章

使用自动布局表格视图时如何增加表格视图单元格中的标签高度(取决于文本)?

垂直自动布局两个视图,动态高度对齐顶部

如何使用自动布局在 UIScrollView 中为视图高度设置动画?

我可以设置我的自动布局约束,以便将图像视图设置为图像的高度

界面生成器中的自动布局高度 >= 0 帧

视图和超级视图自动布局的比例高度