繁体   English   中英

如何在UIStackView中将UITableView保持在X和Y中心

[英]How to keep UITableView centered on X and Y inside an UIStackView

我在垂直的UIStackView有一个UILabel和一个UITableView 我希望此堆栈视图始终保持居中,即使将元素添加到表视图中也是如此。

现在,我在堆栈视图中添加了“ Horizontal in Container和“ Vertical in Container约束。 但是它仍然说堆栈视图缺少Y约束。 如果我添加一个,则它将不再居中。

知道应该添加哪些约束以使其始终居中吗?

这是两个屏幕快照,分别是我希望如何显示堆栈视图和一个屏幕快照,它们分别是:

在此处输入图片说明

在此处输入图片说明

我在第二张图片中添加了从堆栈视图到标题的垂直空间约束,这就是它看起来像这样的原因。

嗯...我前段时间从一个客户那里收到了同样的请求,事实是表视图不应该那样使用,因为如果添加太多项目,表将在垂直方向上增长,这就是一点都不好...但是! 据我所见,您的单元格都具有相同的大小,因此,这是我做的,因为我的表有几行且行数有限,并且所有行都是相同的大小:

我在tableView中添加了一个高度约束,并将其作为IBOutlet扔到它所属的类中。 一旦有了任务的行数,就可以通过将行数乘以单元格的固定高度来更新tableView高度约束的常数值。 这样,tableView的高度将由其包含的行数定义。 考虑到我提到的高度限制,您可能应该转储堆栈视图,单独使用tableView并向tableView添加一些大小和居中限制。

您可以根据需要选择“前导/尾随”或“宽度”,在容器内垂直居中,并在运行时修改高度约束。

顺便说一下, 您的stackview占据了整个屏幕 ,我觉得您应该遵循正常的约束条件,导致容器,尾随容器,底部空间至容器,顶部空间至垂直。

仔细考虑一下,如果添加这四个约束,则无论您在哪个设备上运行,堆栈视图始终始终在水平和垂直居中,因为设置这四个约束将始终确保堆栈视图保持恒定的距离在您的情况下,对于所有约束而言,superview的边距都是0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM