到目前为止,我已经设置了 5 个约束条件:
- 文本域的左边缘被约束到左对齐指南
- 文本字段的上边缘包含在顶部对齐指南中
- 标签的右边缘被约束到右对齐指南
- 标签的上边缘被约束到顶部对齐指南
- 文本字段的右边缘被限制为距离标签的前边缘 20 磅
基于这些限制,我认为教科书的宽度将由标签的大小决定,并且隐含两者的水平布局。这确实是当我更改按钮大小时这些约束的行为方式,但我仍然在 xcode 中收到以下警告:
我的问题是为什么?宽度和水平位置可以由提供的信息确定,提供额外的信息(如固定宽度)只会打乱界面的灵 active 。
最佳答案
- 无法根据您应用的约束计算井宽。
- textField 和 label 都根据内容增长和收缩。
如果在运行时我添加更多文本或增加两个字段的文本(内容),将会发生什么。那么对于哪些字段要填充,哪些要修剪就会产生歧义。
所以需要根据可以计算的其他宽度来固定一件事。
- 您可以向添加事件添加一个额外宽度约束。
- 我的额外宽度限制将小于或等于您指定的宽度。它的优先级将高于其领导。
或者您可能想要使用内容拥抱优先级。随着内容拥抱优先级的变化,可以使标签不增长成为可能。 Cocoa Autolayout: content hugging vs content compression resistance priority
如果您不想添加额外宽度约束,则将添加事件的水平拥抱增加到 251(大于文本字段拥抱)将解决不明确的约束问题。
关于ios - 自动布局何时可以推断宽度和水平位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33464033/