答案 0 :(得分:0)
以下是您想要的示例:
首先,UIStackView实际上会使这里的事情变得更困难,因为我们要微调每个标签之间的距离。我只是使用前后约束来将每个标签排成一行。
诀窍是为每个标签设置适当的内容抗压缩优先级和内容包含优先级。首先,我们希望 0s 始终匹配其内容的大小,因此我们将其内容压缩优先级设置为1000。内容拥抱优先级可以保持默认值250。
我也将 @ 标志分成了自己的标签,因为我们一直希望它出现。将其内容压缩抵抗优先级设置为1000,并将内容包含优先级保持为250。
接下来,对于 shrink_label ,我们将内容抗压缩优先级设置为749,将内容拥抱优先级设置为1000。也就是说,我们希望 shrink_label 永远不要尝试并变得大于其文本内容大小,并且我们希望它允许根据需要压缩其内容。
最后,对于 laaabel ,我们将内容拥抱优先级设置为1000,将内容抗压缩优先级设置为750。也就是说,标签将占用尽可能多的空间,并且由于其抗压缩优先级比 shrink_label 高1, shrink_label 将在 laaabel 之前压缩。
您可以在Apple文档中阅读有关内容压缩和内容拥抱的信息:
我的示例应用程序的完整源代码在这里:
https://github.com/elliotfiske/StackOverflowContentHuggingExample