使用IB

时间:2016-04-14 22:48:48

标签: cocoa autolayout interface-builder

我有一个单选按钮和一个标签。我需要让它们在NSView中水平对齐,这样单选按钮位于标签的左侧: [单选按钮] [标签]

这似乎是一件非常简单的事情,但是当我在IB中这样做时,我最终会在按钮上方(或者可能在其下方)使用Label。如果我以编程方式应用约束,我会得到我想要的。以下是编程约束:

[self  addConstraints:[NSLayoutConstraint
                            constraintsWithVisualFormat:@"|-5-[_deviceButton][_statusLabel]-20-|"
                                    options:NSLayoutFormatAlignAllBottom
                                            metrics:nil views:views]];

在IB中,我使用" Trailing Space to Container"," Top Space to container" "容器的底部空间","容器的领先空间"对于这两个视图,我设置了一个"水平间距"两个视图之间的约束。我可以在IB中遗漏什么?我以前做过这件事,但是为了我的生活不能做到这一点吗? 感谢

2 个答案:

答案 0 :(得分:0)

如果我理解正确,您希望两个按钮组都在视图中居中。

在这种情况下,将两个项目嵌入视图中(选择它们,然后转到编辑器>嵌入>自定义视图),然后您可以在视图中水平居中容器视图。

答案 1 :(得分:0)

您不希望这两个元素的所有四个约束。您想要成为两个视图中最左侧的按钮应该被限制在顶部的容器上,前导和底部;标签应限制在顶部的容器上,尾随和底部。将按钮的右边缘水平约束到标签的左侧。 (您会注意到,这正是您的视觉格式产生的结果。)