使用自动布局创建对齐的表单

Using auto-layout to create an aligned form

我想在 Swift5 iOS 应用程序中创建对齐形式的输入屏幕,看起来像

╔══════════════╦═══════════════════════════════╗
║ Name         ║ [         text field        ] ║
║ Phone number ║ [         text field        ] ║
║ Fax number   ║ [         text field        ] ║
╚══════════════╩═══════════════════════════════╝

(没有线条)这样标签和字段可以针对不同的屏幕尺寸合理缩放。我知道我可以在垂直堆栈视图中使用水平堆栈视图,但要使文本字段对齐,我要么必须为标签提供固定大小,要么为水平堆栈视图提供固定比例。有更好的选择吗?

您不必使用堆栈视图。相反,使用普通约束:

  1. 限制文本字段的左、右和垂直间距 - 彼此(或安全区域)。
  2. 将每个标签基线约束到每个文本字段。
  3. 将标签限制在安全区域。
  4. 使用 >= 关系将每个标签的权利限制在每个文本字段中。