在两个视图之间添加约束时要扩展哪个视图

时间:2018-09-09 11:17:42

标签: swift xcode autolayout

我正在上cs193p在线课程来学习ios开发。但是,当我尝试在两个堆栈视图之间添加间距约束时,我遇到了一个问题。 (带有蓝色按钮的一个(view1)和带有标签的一个(view2))

storyboard

我希望view1扩展,同时保持view2不变。但是事实证明,即使将视图2的优先级设置为高于视图1的内容,view2始终会扩展。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

除非您为标签提供了明确的宽度,否则标签的宽度将由其内部内容大小设置。标签的拥抱优先级较低,因此标签可以自由生长以填充其容器。因此,由于标签可以增加,因此包含堆栈的视图将始终包含其内容。您需要限制标签宽度的增长,以使堆栈视图的拥抱优先级发挥作用。

解决方案是为标签提供明确的宽度限制,或者甚至更轻松地将标签的拥抱优先级设置为较高。这样可以防止标签增长,并允许堆栈视图拥抱标签的最小尺寸。最后,自动版式将选择展开view1