自动布局:设置高度视图取决于其他高度视图
Posted
技术标签:
【中文标题】自动布局:设置高度视图取决于其他高度视图【英文标题】:Auto Layout: Set height View depends on other height View 【发布时间】:2017-07-25 02:22:18 【问题描述】:我需要在我的布局中实现AutoLayout
。以下是部分截图:
1.
2.
案例是:
我在 View
和 UITableView
中有一个 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
吗? .我不希望这两个(view
和 tableview
)一起滚动
您已经说过,在第一张图片中,我希望视图具有高度作为视图控制器的高度。所以 tableview 从屏幕上出来了。我说的对吗?
在第一张图片中,我从代码中隐藏了tableview
,没有出来。我认为没有滚动视图可能吗?
是的。但是如果你的 tableview 有更多的数据,那么它就会消失在屏幕之外。为此,我们需要添加滚动视图。
不,不会。我有静态数据。看第二张和第三张图,我的tableview
最多只有6行。以上是关于自动布局:设置高度视图取决于其他高度视图的主要内容,如果未能解决你的问题,请参考以下文章
使用自动布局表格视图时如何增加表格视图单元格中的标签高度(取决于文本)?