使用IB中的“自动布局”将两个视图水平对齐



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

这似乎是一件很琐碎的事情,但当在IB中这样做时,我最终会在按钮的顶部(或下面)显示标签。如果我改为以编程方式应用约束,我就会得到我想要的。以下是程序约束:

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

在IB中,我对两个视图都使用了"尾部空间到容器"、"顶部空间到集装箱"、"底部空间到集装箱》、"前导空间到集装箱",并在两个视图之间设置了"水平间距"约束。IB中我可能缺少什么?我以前也这样做过,但我一辈子都做不好吗?感谢

如果我理解正确,您希望这两个按钮组都位于视图的中心。

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

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

最新更新