为 UIStackView 设置优先级 iOS
Set priority for UIStackView iOS
我如何确定一个标签的优先级以使其完全显示并同时显示另一个标签,但如果它太大,它应该在 UIStackview
中显示 ...
这是我的 StackView
这是一个符合您要求的示例:
首先,UIStackView 实际上会让事情变得更难,因为我们想要微调每个标签之间的距离。我只是使用前导和尾随约束将每个标签排成一行。
诀窍是为每个标签设置适当的内容压缩阻力优先级和内容拥抱优先级。首先,我们希望 0s 始终匹配其内容的大小,因此我们将其内容抗压缩优先级设置为 1000。内容拥抱优先级可以保持默认值 250。
我也将 @ 标志拆分成自己的标签,因为我们总是希望它出现。将其内容压缩阻力优先级设置为 1000,并将内容拥抱优先级保持在 250。
接下来,对于shrink_label,我们将内容抗压缩优先级设置为749,内容拥抱优先级设置为1000。也就是说,我们想要shrink_label 永远不要尝试增大超过其文本内容大小,我们希望它允许在需要时压缩其内容。
最后,对于laaabel我们设置content hugging priority为1000,content compression resistance priority为750,即label会占用多少space,因为它的抗压优先级比shrink_label高1,所以shrink_label 将在 laaabel.
之前压缩
您可以在此处的 Apple 文档中阅读有关内容压缩和内容拥抱的内容:
我的示例应用程序的完整源代码可在此处获得:
https://github.com/elliotfiske/WhosebugContentHuggingExample
我如何确定一个标签的优先级以使其完全显示并同时显示另一个标签,但如果它太大,它应该在 UIStackview
中显示...
这是我的 StackView
这是一个符合您要求的示例:
首先,UIStackView 实际上会让事情变得更难,因为我们想要微调每个标签之间的距离。我只是使用前导和尾随约束将每个标签排成一行。
诀窍是为每个标签设置适当的内容压缩阻力优先级和内容拥抱优先级。首先,我们希望 0s 始终匹配其内容的大小,因此我们将其内容抗压缩优先级设置为 1000。内容拥抱优先级可以保持默认值 250。
我也将 @ 标志拆分成自己的标签,因为我们总是希望它出现。将其内容压缩阻力优先级设置为 1000,并将内容拥抱优先级保持在 250。
接下来,对于shrink_label,我们将内容抗压缩优先级设置为749,内容拥抱优先级设置为1000。也就是说,我们想要shrink_label 永远不要尝试增大超过其文本内容大小,我们希望它允许在需要时压缩其内容。
最后,对于laaabel我们设置content hugging priority为1000,content compression resistance priority为750,即label会占用多少space,因为它的抗压优先级比shrink_label高1,所以shrink_label 将在 laaabel.
之前压缩您可以在此处的 Apple 文档中阅读有关内容压缩和内容拥抱的内容:
我的示例应用程序的完整源代码可在此处获得:
https://github.com/elliotfiske/WhosebugContentHuggingExample