我试着理解自动布局。我有一个文本字段,有3个约束条件:-对齐中心X到。对齐中心X到: Superview-顶部空间到: Superview 50-宽度等于: Superview 50- 宽度等于: 150我有一个警告: 相同的约束条件可能会导致剪切
如果我改成--宽度大于或等于150,就会有警告。宽度和水平位置不明确
我很困惑。事实上,这些约束条件对一个按钮或一个标签都很好用,为什么对一个TextField不一样?- 如何定位一个TextField的水平中心,顶部50,宽度150?
(似乎我必须添加一个前导和尾部的大于或等于。这似乎与宽度大于或等于150是多余的。这可以使警告不响,但这似乎是一个太复杂和多余的解决方案。是这样吗?)
我刚刚在Xcode 11. 2:
警告 显示 但在11.2.1上却没有 不 显示在11.4.1
在我看来,尽管这是一个 有效 警告,这是一个愚蠢的,似乎已经在版本更新中删除。
如果你想要一个 标签 要有150的宽度。当然 你知道如果文本太长的话会被剪掉。对于单行标签来说,这一点是没有办法解决的,除非你允许它扩展到窗口的边界之外。
同样,这是一个有效的警告,但这可能正是你想要的。
如果您想要一个 文本输入栏 的宽度为150,当你输入的内容太多,文字就会滚动。
那么,为什么在文本字段上有警告呢?我也不知道。这个 可能 可以认为是一个错误。
你 可以 通过给你的 Width: 150
约束a Priority: 250
. 仅仅是单一的快速测试,显示即使输入过多的文字,字段宽度也会保持在150。但是... 我不愿意依赖这个假设,如果字段宽度的前、后等与任何其他UI元素有关,我不会指望它不会导致其他布局问题。
我想说(仅是我的观点)这是一个IB警告,可以忽略。