Autolayouts:如何将具有两个/一个内在元素的群体居中?

时间:2018-01-07 17:10:56

标签: ios layout autolayout interface-builder constraints

问题可能不是很独特,但仍无法找到解决方案。 布局如图所示:

enter image description here

所以,我有两个不同宽度的元素,其中一个(或两个)使它具有动态(标签的值可以改变)。所以,我需要的是将其称为中心,让我们称之为" group"。标签必须是不同的元素,因为我可以应用不同的字体大小和面。如果那将是一个文本编辑器,它只是一行具有不同的标记。但不知道如何通过Autolayout实现这一目标。有什么建议吗?

建议不要将标签放在容器内并放在容器中心(除非有办法设置容器的宽度(动态)正确地),因为标签宽度是动态的,所以在容器内居中这些元素的问题仍然是开放的。

UPD:图片附件改进了。

1 个答案:

答案 0 :(得分:1)

您可以将它们包装在视图中并提供该视图的屏幕中心。

enter image description here

详细说明:

抓取一个空视图并将其拖动到界面构建器,将其赋予,centerX和任何高度限制,然后为其添加2个标签,挂钩第一个标签,导致该视图领先并给它CenterY约束,使第二个标签前导等于第一个标签的尾随并将其挂钩到视图的尾随,并给它同样的centerY约束,这样你就可以根据它的子视图获得动态视图宽度但这仅适用于具有预定义宽度或内在大小的子项,如标签和按钮。

在行动中:

enter image description here

这是一个关于如何使用约束

创建它的gif

group intrinsic gif