gpt4 book ai didi

ios - 什么时候需要标签和按钮的内容拥抱以防止它们占用文本字段的空间?

转载 作者:行者123 更新时间:2023-11-29 02:00:24 24 4
gpt4 key购买 nike

我对以编程方式创建的简单布局感到困惑,其中使用约束将 UILabelUITextFieldUIButton 排成一行.我希望你能帮助我理解以下行为。

如果我使用 visual format language像这样布置这些 View ...

|-[label]-[field]-[button]-|

...我看到标签想占用尽可能多的空间,像这样:

[   label  ] [field] [button]

但是如果我从等式中删除标签...

|-[field]-[button]-|

...那么就是按钮想要占据空间了:

[field] [       button      ]

通过为标签和按钮设置“高拥抱优先级”,我可以控制它们的大小(我猜它们会保持其固有大小)。但我不知道为什么在这些情况下行为会有所不同。

你知道自动布局在这里是如何工作的吗?

相关问题:

Using Auto Layout to have UILabel and UITextField next to each other

最佳答案

当label和button的content-hugging priorities彼此相等,需要拉伸(stretch)其中一个以满足其他约束时,那么拉伸(stretch)哪个是任意的。通常,当约束有多个解决方案且优先级不区分它们时,就会出现歧义,自动布局系统可以在任何可能的解决方案中解决约束。它可以随运行而变化。它甚至可以在每次布局传递完成时更改,这意味着 View 可以在用户与它们交互时跳来跳去。

事实上,在一种情况下标签被拉伸(stretch)而在另一种情况下按钮是随机的。

当你有类似 |-[label]-[field]-[button]-| 的东西时,容器的宽度可能并不总是等于固有宽度的总和三个 View 中的一个以及它们之间的间距(以便可能需要拉伸(stretch)某些内容),您应该始终通过将其内容拥抱优先级设置为最低来指定要拉伸(stretch)的 View 。

关于ios - 什么时候需要标签和按钮的内容拥抱以防止它们占用文本字段的空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30447580/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com