【问题标题】: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 的高度。

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

编辑

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

1.

2.

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

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

【问题讨论】:

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

标签: ios swift autolayout


【解决方案1】:

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

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

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

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

【讨论】:

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

【讨论】:

  • 我应该添加scrollview 吗? .我不希望这两个(viewtableview)一起滚动
  • 您已经说过,在第一张图片中,我希望视图具有高度作为视图控制器的高度。所以 tableview 从屏幕上出来了。我说的对吗?
  • 在第一张图片中,我从代码中隐藏了tableview,没有出来。我认为没有滚动视图可能吗?
  • 是的。但是如果你的 tableview 有更多的数据,那么它就会消失在屏幕之外。为此,我们需要添加滚动视图。
  • 不,不会。我有静态数据。看第二张和第三张图,我的tableview最多只有6行。
猜你喜欢
  • 2013-11-21
  • 2023-03-05
  • 2013-06-11
  • 2015-01-10
  • 2013-02-02
  • 1970-01-01
  • 1970-01-01
  • 2019-05-18
  • 2016-12-08
相关资源
最近更新 更多