最佳答案
这是一个符合您要求的示例:
首先,UIStackView 实际上会让事情变得更难,因为我们想要微调每个标签之间的距离。我只是使用前导和尾随约束将每个标签排成一行。
诀窍是为每个标签设置适当的内容压缩阻力优先级和内容压缩优先级。首先,我们希望 0 始终匹配其内容的大小,因此我们将其内容抗压缩优先级设置为 1000。内容拥抱优先级可以保持默认值 250。
我还将 @ 符号拆分到它自己的标签中,因为我们总是希望它出现。将其内容压缩阻力优先级设置为 1000,并将内容拥抱优先级保持在 250。
接下来,对于 shrink_label,我们将内容压缩阻力优先级设置为 749,将内容拥抱优先级设置为 1000。也就是说,我们希望 shrink_label 永远不会尝试并且变得比其文本内容大小更大,我们希望它允许在需要时压缩其内容。
最后,对于laaabel,我们将content hugging 优先级设置为1000,将content compression resistance 优先级设置为750。也就是说,标签将占用尽可能多的空间,并且由于它抗压缩优先级比 shrink_label 高 1,shrink_label 将在 laaabel 之前压缩。
您可以在此处的 Apple 文档中阅读有关内容压缩和内容拥抱的内容:
我的示例应用程序的完整源代码可在此处获得:
https://github.com/elliotfiske/StackOverflowContentHuggingExample
关于ios - 为 UIStackView iOS 设置优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55583833/