我有两个按钮,我希望保持相同的大小,但问题是它们有两个不同的父视图。 Autolayout似乎忽略了这种情况下的“相等大小”约束。使用相同父视图的约束按钮可以正常工作。
我创建了一个非常简单的例子来描述我所看到的:
从上面可以看出,按钮 Two 和 Three 都设置为与按钮 One 具有相同的大小约束。唯一的区别是按钮 Three 包含在另一个NSView
中。没有宽度约束链接按钮 Three 及其包含视图。
然而,当我运行并调整窗口大小时,它看起来像:
使用Interface Builder布局无关紧要,或使用-[NSLayoutConstraint constraintWithItem:attribute:relatedBy:toItem:attribute:multiplier:constant:]
方法在代码中执行此操作。
我错过了什么? Autolayout不支持这个吗?非常感谢。
已编辑:添加了屏幕截图以指示按钮三个的约束。
答案 0 :(得分:1)
这应该可行。我设置了一个示例项目来做同样的事情。我有三个按钮,在按钮1和按钮2之间具有相等的宽度约束。然后在按钮2和按钮3之间相同。按钮1相对于它的父视图具有后缘约束。
请注意,在第二个和第三个按钮之间,Interface Builder不允许我在主窗口中执行此操作。相反,我必须使用左侧的文档列表来完成它。
结果如下:
这是项目的链接:
https://github.com/MaxMacleod/ThreeButtonConstraintTest1
一些警告。首先,这是一个iOS而不是一个OS X项目(我是一个iOS人!)。但原则应该是相同的。其次,这并不能确定您的项目无法正常工作的确切原因。但是,如果您可以比较此示例项目与您的项目对比,我们可以解决这个问题。然后我会更新这个答案。更好的是,如果你能让你的项目可用,我很乐意看看。