【问题标题】:Content hugging priority behaves different with auto layout内容拥抱优先级的行为与自动布局不同
【发布时间】:2019-03-09 13:09:56
【问题描述】:

在学习内容拥抱优先级时,我想出了一个奇怪的场景,我拿了 2 个标签,1 个绿色和 2 个蓝色。

这些标签的Content Hugging Priority是这样的

绿色 - 水平拥抱优先级 200

蓝色 - 水平拥抱优先级 251

"

Green.text = "你好"

Blue.text = "你好吗?祝你有美好的一天,大文本

这里的绿色标签文本被截断,蓝色将显示全文。

现在的问题是当我尝试反转标签和文本的优先级时,它的工作方式与上述不同。

现在是新的优先级

绿色 - 水平拥抱优先级 251

蓝色 - 水平拥抱优先级 200

Green.text = "你好吗?祝你今天愉快,大文本

Blue.text = "你好"

现在我认为绿色应该显示所有文本而不是截断它,而蓝色应该被截断。但它没有发生,我想知道为什么这不起作用?我错过或错过了解释这个概念吗?

如果我错了,请纠正我。谢谢

【问题讨论】:

  • 详细了解内容拥抱和压缩之间的区别。第二个问题与内容压缩有关,而不是内容拥抱

标签: ios swift autolayout storyboard nslayoutconstraint


【解决方案1】:

您需要增加绿色标签的 Content Compression Resistance 优先级。

【讨论】:

  • 好吧,让我尝试一下,虽然在第一种情况下我没有改变它,那么它是如何工作的?
  • 内容压缩阻力优先级较高的组件不会收缩。这篇文章可能对您有所帮助:medium.com/@abhimuralidharan/…
  • 感谢我正在阅读这篇文章,顺便说一句,更改内容压缩阻力优先级它可以工作。
【解决方案2】:

尝试在堆栈视图(属性检查器)的“分布”类别的下拉菜单中选择“按比例填充”。

确保您在堆栈视图中被选中。 单击属性检查器菜单 点击分布,选择“按比例填充”

不确定在这样做时是否需要对每个元素的“内容压缩阻力优先级”或“内容拥抱优先级”做任何事情;您可以尝试使用或不使用(具有较低 Compression Resistance 设置的元素允许压缩元素,较高的 Hugging Priority 数字意味着该元素将倾向于占据更多空间),看看它是否有什么不同。

对我来说,Fill Proportionately 解决了整个问题,我将上面提到的两个 Priorities 调整回了中性(每个元素都有相同的数字)。在此图像拍摄之前,“棒球日落者”被截断,因为它和数字元素(“1”)在堆栈视图中占用了相同数量的水平空间。之后(照片):名称标签向右移动,成员标签被压缩(不使用压缩或拥抱优先级)

有时 Content Hugging 效果很好,但请查看其文档了解更多详细信息。

【讨论】:

  • 感谢这对我也有用 NSTableView
猜你喜欢
  • 2023-02-18
  • 1970-01-01
  • 1970-01-01
  • 2018-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-08
  • 2021-10-19
相关资源
最近更新 更多