ios - 自动布局何时可以推断宽度和水平位置?

标签 ios autolayout interface-builder

我正在尝试使用自动布局来布置以下简单的 UI: enter image description here

到目前为止,我已经设置了 5 个约束条件:

  • 文本域的左边缘被约束到左对齐指南
  • 文本字段的上边缘包含在顶部对齐指南中
  • 标签的右边缘被约束到右对齐指南
  • 标签的上边缘被约束到顶部对齐指南
  • 文本字段的右边缘被限制为距离标签的前边缘 20 磅

基于这些限制,我认为教科书的宽度将由标签的大小决定,并且隐含两者的水平布局。这确实是当我更改按钮大小时这些约束的行为方式,但我仍然在 xcode 中收到以下警告:

enter image description here

我的问题是为什么?宽度和水平位置可以由提供的信息确定,提供额外的信息(如固定宽度)只会打乱界面的灵 active 。

最佳答案

  • 无法根据您应用的约束计算井宽。
  • textField 和 label 都根据内容增长和收缩。
  • 如果在运行时我添加更多文本或增加两个字段的文本(内容),将会发生什么。那么对于哪些字段要填充,哪些要修剪就会产生歧义。

  • 所以需要根据可以计算的其他宽度来固定一件事。

  • 您可以向添加事件添加一个额外宽度约束。
  • 我的额外宽度限制将小于或等于您指定的宽度。它的优先级将高于其领导。

enter image description here

或者您可能想要使用内容拥抱优先级。随着内容拥抱优先级的变化,可以使标签不增长成为可能。 Cocoa Autolayout: content hugging vs content compression resistance priority

如果您不想添加额外宽度约束,则将添加事件的水平拥抱增加到 251(大于文本字段拥抱)将解决不明确的约束问题。

enter image description here

关于ios - 自动布局何时可以推断宽度和水平位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33464033/

相关文章:

android - Android 和 iOS 中的应用程序文件大小差异

ios - 谁能帮我在 Swift 3 中传递数据?

iphone - UITableView 部分标题字体问题

ios - Xcode Storyboard : Why does the iPad storyboard show iPhone sized views?

ios - 景观 subview 未填充 self.view

ios - 从 GPUImageVideoCamera 获取像素颜色

ios - UISearchBar 一旦被点击就会跳出位置

swift - 为什么 UIStackView 调整排列 subview 的大小?

ios - 将前导空间设置为 UIView , swift 崩溃

objective-c - 带有数字格式化程序的 NSTextField 不允许小数输入