Xcode7 - 相等的高度乘数约束导致冲突的约束

时间:2015-11-26 18:33:08

标签: ios swift constraints xcode7

我在Xcode7中试图与the OP of this question完全相同。

我的最终目标是让一个垂直StackView有两个子视图:一个占父母高度的70%,另一个占据剩下的30%。

我按照我链接的帖子中的说明操作。我选择了子视图(GMSMapView)和父StackView,并选中了equal heights约束菜单中的Pin框。这工作得很好,花花公子。但是,当我从GMSMapView的尺寸检查器编辑该约束并将乘数更改为.7时,突然出现conflicting constraints错误!

这是我正在处理的场景的图片: The scene with the stack view

这是错误的图片:

The conflicting constraints!

有谁知道如何解决这些冲突?我尝试关闭Autoresize Subviews,但我不确定是否有效,因为我无法删除错误消息中显示的某些约束。

1 个答案:

答案 0 :(得分:0)

UIStackViewDistributionFillEqually的高度取决于其子视图的大小(除非您使用Stack View.height = View.height Map View.height = 0.7 x Stack View.height )。

前两个冲突的约束评估为此

UIStackView

但由于Stack View.height = Map View.height 的高度基于其子视图,因此基本上存在第三种约束。

UIStackView

所有这些约束因为冲突而不能一起存在。

我能想到两种选择。

删除UIStackView。由于它只包含一个视图,因此使用它并不会带来任何好处,而且只会使事情变得复杂。

如果这不是一个选项,则需要删除一些约束,以便您不会将{{1}}约束到特定高度。