TextBox在栈视图中伸展Xcode

问题描述:

我在另一个栈中有3个栈并且文本框拉伸的方式太多了。我试图给文本框添加高度约束,但它以红色突出显示,并且文本框不缩小(附加屏幕截图)。任何人都可以推荐解决方案吗?TextBox在栈视图中伸展Xcode

enter image description here

它看起来像你想有三排铺陈的形式。这三行没有足够的内容来垂直填充屏幕,所以您需要确定要将多余空间放到哪里,并且需要设置约束以将多余的空间放在那里。

假设你想要垂直居中的行。然后,您需要将垂直堆栈视图的Y中心约束到根视图的Y中心。不要在垂直堆栈视图的高度或其顶部或底部放置任何其他约束。让它不受限制地让它自己调整尺寸以完全适合其排列的子视图,而不会拉伸或压缩它们。

您还正在对标签和视图进行不均匀的横向拉伸。为了解决这个问题,限制所有的标签宽度相等。然后将标签的水平内容拥抱优先级设置为251,并将其水平内容压缩抵抗优先级设置为750.将文本字段的水平内容拥抱优先级设置为250(仅比标签更少)。这将告诉水平堆栈视图伸展文本字段而不是标签,以填充多余的水平空间。

结果:

layout previews

这里是我的文档大纲:

document outline

+0

感谢了很大的反响。我想我更新了一下你的答案并居中主栈视图(不是3个水平栈),也从主栈中删除了顶部和底部约束。似乎主要问题是我正在拉伸主堆栈视图。现在我仅通过间距控制堆栈之间的间隙,并让主堆栈仅使用中心水平/垂直限制来自行拉伸。 – KirillC