如何使用堆栈视图自动布局标签和按钮?

Posted

技术标签:

【中文标题】如何使用堆栈视图自动布局标签和按钮?【英文标题】:How to use stack view to autolayout label and button? 【发布时间】:2017-05-22 10:42:18 【问题描述】:

如何在UIStackView 内布局标签和按钮,使按钮只占用所需的空间,其余空间留给标签?由于本地化,按钮文本的长度可能不同。

这里的UIStackViewalignment: centerdistribution: fill。这里唯一缺少的是没有将按钮拉伸到超出文本和插图所需的宽度。

仅使用分发设置似乎是不可能的。如果 Fill Proportionally 被设置,按钮必须有一个宽度约束。尝试压缩和拥抱都没有成功,也许我做错了什么。

编辑:找出内容拥抱不起作用的原因。它需要一个 >= 761 且不高于我认为的 250 的值。因为 250 是标签内容的拥抱值。为什么是761?真的不能说。

【问题讨论】:

【参考方案1】:

您需要将按钮的 Content Hugging 优先级设置为高于 250。这样按钮就不会变得比需要的大。

【讨论】:

我试过了。因为您提供了它应该可以工作的证据,所以我做了一个新项目并在那里进行了尝试。它确实有效。我不知道我的现场项目有什么问题。必须调查:/。感谢您的回复。 给我看看你的堆栈视图配置,也许我可以帮忙 我发现了问题所在。我需要 >=761 拥抱按钮的内容。不知道为什么。当我测试时,我用 750 进行了测试,认为这已经足够了,然后当它不起作用时就放弃了。

以上是关于如何使用堆栈视图自动布局标签和按钮?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用自动布局来调整表格视图单元格中的视图大小?

两个堆栈视图中的多行视图的自动布局问题

使用自动布局的 UIImage 旁边的 UILabel

使用堆栈视图和自动布局创建自定义 UITableViewCell

带有图像视图、2 个标签、按钮的自动布局 - 标签在旋转后消失

你如何自动布局约束按钮内的通知标签?